Спикер о работе:
С ростом популярности социальных сетей, миллионы пользователей создают отношения и строят онлайн сообщества с своими лидерами и последователями. Распознавание этих иерархических отношений является важной задачей, потому что это поможет понять социальные сети, предсказать будущие тенденции, улучшить рекомендации, рекламу, и повысить безопасность. В этой работе мы представляем методы основанные на отличиях в стиле общения которые раскрывают информацию о пользователях.
Презентация: https://drive.google.com/file/d/1InZX90UdH2g8GQNzpHriny2zOuO-7vyl/view?usp=sharing
Запись: https://youtu.be/WiiUGH33Eck
(00:00:00) (Начало записи)
Дмитрий Меньшиков: Добрый день, коллеги. Меня зовут Дмитрий Меньшиков. Я data scientist компании «НТР». Я приветствую вас на очередном вебинаре, который мы проводим совместно с Высшей IT-школой Томского государственного университета. У нас сегодня в гостях Денис Катеренчук, университет города Нью-Йорк, Соединенные Штаты Америки. Он нам расскажет сегодня про анализ социальных сетей с помощью лингвистического анализа. Мы будем разбираться, какие пользователи влияют на онлайн сообщество, правильно, Денис?
Денис Катеренчук: Да.
Дмитрий Меньшиков: Тогда я передаю вам слово.
Денис Катеренчук: Спасибо вам за представление, за приглашение. Меня зовут Денис Катеренчук. Я кандидат наук при университете города Нью-Йорк. Сегодня я представлю один из проектов, над которым мы сейчас работаем. Он связан с анализом социальных сетей. Сегодня мы расскажем про мотивацию, почему этот проект интересный, представим проблему, разберем методы, которые мы используем и покажем, каких результатов мы добились.
Начнем с того, что мы, люди, очень социальные существа. Нам нужно общение. Обычно, когда мы встречаемся с нашими друзьями или коллегами, мы на подсознательном уровне строим социальные иерархии. В наших комьюнити или офисах есть лидеры, и есть последователи. Очень важно отличать, кто есть кто.
Одна из ситуаций. Вы заходите на свое первое рабочее интервью, вы никого не знаете, и вам нужно узнать, кто будет вашим начальником, кто будет вашим коллегой, потому что вы не хотите задать очень спокойный тон с вашим начальником, тон должен быть более профессиональный. Если у вас чересчур профессиональный тон с вашими коллегами, это может не понравиться людям
Что интересно, мы, люди, довольно хорошо умеем считывать ситуации. Мы основываем наше понимание иерархи из социального статуса на разные аспекты, такие, как речь, как мы говорим что-либо, наш body language, как мы жестикулируя, просто динамику определенной группы. Мы это всё наблюдаем и обрабатываем на подсознательном уровне. Люди могут довольно хорошо определять, кто главный человек в этой группе, а кто нет.
Так как последнее время социальные сети набирают всё больше и больше популярности, мы переводим наше общение из более повседневной жизни в онлайн жизнь. Как ни странно, мы приносим в онлайн жизнь те же структурные иерархии, которые мы организовываем при повседневной жизни.
Проблема в том, когда мы передвигаем эту сферу в онлайн направление, мы теряем большинство информации, которую мы используем в повседневной жизни. Онлайн мы не можем следить за тоном голоса, за жестикуляцией человека. То, что у нас остается – только текст, но при этом проблема распознавания иерархических отношений довольно-таки важна, потому что социальные сети становятся более популярны. Сегодня существует огромное количество сетей, и с каждым днем их становится всё больше и больше.
Эта проблема является очень важной. Зная иерархию людей, мы можем использовать эту информацию в разных направлениях, таких, как безопасность, когда существуют какие-то группы, которые собираются в будущем сделать что-то плохое, и надо узнать, кто их лидер, и в каком направлении движется разговор.
Рекламодатель давать больше средств на продвижение рекламы людям, которые более влиятельны в той или другой структуре.
(00:05:07)
При распознавании E-commerce, кода большинству бизнесов нужно понимать пользовательскую группу, и за кем следовать, чтобы правильно модифицировать свои продукты, чтобы предотвращать неправдивую информацию в политике.
Подход к обработке социальных сетей можно разбить на две категории. Первая – это text analysis (анализ текста), вторая – graph analysis. Если мы думаем про social network analysis, скорее всего, мы представляем анализы графов. И это правильно, потому что анализ графов – очень эффективный способ для того, чтобы понимать, кто есть ваши пользователи, кто является пользователем с высоким статусом.
Анализ графов был в использовании достаточно давно. Несмотря на то, что social network analysis – новая проблема в нашем понимании, но первое применение анализа графов было сделано еще в 1932 году Джейкобом Морено, когда он применил первый в истории анализ графов на проблеме частной школы. По-моему, в Лондоне была знаменитая частная школа, из которой начали убегать дети, и никто не знал, в чём причина. Он долго не мог узнать, до тех пор, пока он не представил связи между детьми, которые убегали, как социальную сеть, где он доказал, что это больше связано с конкретной группой людей, чем со школой.
После этого было много разных применений аналихарафов, особенно основанных на разных centrality measures, таких, как degree centrality, closeness centrality, Betweennes centrality, eigenvector centrality. Они все были высоко коррелированы с показателями иерархии в одной или другой структуре.
Агарвал показал, что в результате анализа переписки компании Enron closeness centrality и eigenvector centrality были связаны с высоким статусом внутри компании.
В последние годы с популярностью нейронных сетей мы видим всё больше и больше анализа и применения разных graph neural networks, и они работают еще лучше.
Подход с точки зрения анализа графов довольно-таки эффективный. Что интересно, он иногда может быть очень ограничен, особенно когда у нас нет доступа ко всей информации. В 2017 году Джонсен показал, что для того, чтобы узнавать статус пользователей, можно использовать текст и анализ графов. Но, к сожалению, если мы уменьшаем количество данных, как сейчас многие социальные сети ограничивают доступ к пользовательским данным, у нас нет возможности собирать aggregated data или у нас очень ограниченные данные, такой способ анализа, как graph analysis, к сожалению, не дает хороших результатов. Поэтому нам приходится обращаться к анализу речи.
Анализ речи изначально был основан больше на психологическом и social linguistic factors. К сожалению, в последние годы он потерял интерес, потому что всё больше интереса проявляется к нейронным сетям.
В этой работе мы хотим показать, что мы используем не только нейронные сети, мы можем использовать мотивацию их предыдущих исследований, чтобы улучшить работу наших нейронных сетей. Приступим непосредственно к данным и к задаче, которую мы пытаемся решить.
(00:10:00)
В этой работе мы используем данные с Reddit сайта. Reddit – это социальная платформа, где пользователи могут заходить и общаться на разные темы. Темы могут быть довольно свободные. Они распределяются на subreddit по тематическим общениям. Любой пользователь может сделать пост, или задать вопрос, или сделать какой-то комментарий, выложить фотографию или видео, и остальные пользователи могут оставлять под ним комментарии, дискутировать.
Мы подумали, что это хорошая платформа для того, чтобы попробовать создать систему, который может определять социальный уровень пользователей внутри этой платформы.
Первый вопрос, который нужно решить – как мы обозначаем социальный уровень того или иного человека. Мы решили построить K-index, где в одном conversational thread мы анализируем количество комментариев, сделанных одним пользователем. Каждый комментарий должен иметь, как минимум, такое же количество лайков. Это очень похоже на H- index. Если вы связаны с академией, именно так измеряется количество публикаций на Google Scholar.
В итоге, когда мы собрали данные, мы взяли данные, которые были использованы и собраны до этого при университете UW. Они сделали небольшую аннотацию Reddit data. Мы используем их dataset для нашего анализа. Что интересно, когда мы создали labels для каждого пользователя, мы увидели, что эти данные довольно-таки проблематичные
Во-первых, K-index имеет довольно-таки длинный хвост. Большинство пользователей имеют всего один лайк и один пост in one thread, и там много outliers. Аналогично там очень много пользователей с одинаковыми очками, поэтому нам нужно придумать, во-первых, как почистить данные, как правильно objective function для того, что мы делаем в этом анализе.
Что интересно, мы видели, что существуют некоторые пользователи, которые сделали в одном discussion thread около 300 комментариев, и каждый комментарий получил, как минимум, 300 лайков, что довольно-таки впечатляет и удивляет, насколько длинные были изначально discussion thread в данных.
Но так как это может привести к проблемам в нашем алгоритме, мы решили использовать только discussion threads, которые, имеют, как минимум, 50 комментариев и не больше. Мы игнорировали общение между пользователями, где меньше 50 комментариев, и мы игнорировали комментарии, которые идут последние, так как мы решили, что первые 50 комментариев – довольно-таки хороший показатель, чтобы сделать наш анализ.
Таким образом мы немножко улучшили наши данные. У нас до сих пор существуют длинный хвост, но при этом уже не присутствуют outliers, которые будут ухудшать наш алгоритм.
При этом нам всё равно нужно задуматься, как мы будем справляться и правильно анализировать наши данные. В этой проблеме решили использовать разные measures. Один называется nDCG и RankDCG. NDCG (normalized discounted cumulative gain) – довольно-таки популярный способ измерения результатов, особенно в направлении information extraction, когда из потока информации вам нужно выбирать информацию, которая более relevant к вашей задаче, как search results.
(00:15:11)
Но мы заметили, что nDCG имеет несколько характеристик, которые нам не подходят. Во-первых, у них nDCG function нет четкого lower и upper bound, потому что когда у нас есть сет пользователей с какими-то K-index, даже самый плохой результат нашей системы всё равно вернет какой-то score, который тяжело понимать. Поэтому мы решили нормализовать эту функцию и создали RankDCG. Больше результатов можно увидеть в нашей статье.
Здесь мы хотим подчеркнуть, что RankDCG имеет хороший upper bound, который равен одному, lower bound, который равен нулю, при этом делает больше ставку на определение пользователей с высоким K-index.
При этом, если наша система неправильно угадает 10 пользователей с низким уровнем, это не настолько плохо, как не угадать правильно одного пользователя с высоким уровнем. Таким образом, в конце, когда мы будем смотреть результаты, будем использовать эти две measures.
До того, как начать, нам нужна какая-то мотивация, как начать работу над этой проблемы. Во-первых? в одной из наших предыдущих работ мы работали над эмбеддингом фильмов и актеров, чтобы создать систему, которая может рекомендовать актеров со скрипта фильма.
Эта система довольно-таки хорошо работала, мы получили хорошие результаты. Мы добились этого, мы разбивали актеров, персонажей и фильмы с точки зрения отдельных структур. Если у нас есть эмбеддинг для какого-то персонажа, персонаж обычно очень четко следует какому-то типу. Есть персонажи, которые играет роль злодея, есть персонажи, которые играют роль мудреца. Когда мы взяли все действия, которые делают персонажи, мы создали embeddings таким образом смогли показать, что эта система может работать. Проблема в том, что когда мы работаем больше в онлайн области, люди не следуют конкретным образам персонажей. Нам остается смотреть на другие факторы.
В этой работе мы решили посмотреть на более человеческие факторы, такие, как возраст, пол человека и психологический фактор, о чём они говорят. Мы хотим создать систему, которая будет распределять не только, кто более главный в том или ином аргументе, но так же будет отличать более человеческие факторы.
Делая обзор предыдущей литературы, особенно психологии social linguistics, было много исследований, которые показали, что существует много факторов, которые определяют, как пользователи с высоким статусом общаются друг с другом. Это такие факторы, как hedges, politeness, display of power, в том числе, age и gender. Мы для себя решили посмотреть на такие факторы, как пол, возраст, тип личности, hedges and semantics.
Для этой работы у нас, к сожалению, нет доступа к настоящим labels, чтобы аннотировать наши данные. Мы все знаем, что аннотация данных – довольно тяжелый и дорогой процесс, поэтому мы решили найти корпус, который похож на наш. Существует Pandora корпус, который был выпущен в 2020 году.
(00:20:06)
Они аннотировали пользователей с точки зрения пола, возраста и разных типов личности. Мы решили натренировать отдельные модели для каждой из этих систем и использовать предсказания этих моделей наши так называемые псевдо labels. Мы рассмотрели разные системы, такие, как CNN, LSTM.
Более конкретно мы остановимся на индивидуальных характеристиках. Мы все знакомы с такими проблемами, как sentiment analysis, когда нужно узнать, позитивные или негативные комментарии, topic analysis, когда мы анализируем топик одного или другого предложения или темы. Но вопрос заключается в том, можем ли мы предсказать с точки зрения анализа текста, был этот текст написан мужчиной или женщиной, или кем-то определенного возраста.
К счастью, у нас был опыт работы в этом направлении. Мы показали, что это возможно и довольно-таки успешно. В этом модели мы просто взяли их данные, перетренировали, создали модели, которые можно легко натренировать и использовать, чтобы генерировать псевдо labels для наших непосредственных данных.
Удивительно, модель довольно хорошо работает и на платформе Reddit мы можем предсказать с Area Under Curve metric, она похожа на _____ (00:21:50), с вероятностью 75% мы можем предсказать пол человека, можем угадать возраст в absolute area в пределах 6-7 лет. Модель себя довольно-таки хорошо показывает. Мы решили использовать эти модели в наших экспериментах, чтобы генерировать псевдо labels.
Когда мы рассматриваем personality types, каждый человек может характеризоваться с точки зрения introvert, extravert, intuitive, thinking, perceiving мы разбили каждого пользователя на индивидуальные категории. Для каждой из этих точек мы натренировали отдельную модель с комментариями.
Эта проблема оказалась немножко более сложной. Мы можем предсказать с вероятностью почти 57%, человек introverted или extraverted, intuitive с вероятностью 58%. Perceiving показал очень плохие результаты. Thinking человек или нет с вероятность 65%. Тем не менее, мы всё равно будем использовать данные, чтобы натренировать лучшую репрезентацию наших пользователей.
Еще одна вещь, которую мы заметили, что hedge phrases, которые часто используются, чтобы показать свой статус и силу в той или иной ситуации тоже играют очень большую роль. Чтобы показать, что такое hedge phrases, можете представить себе сообщение, когда вы получаете письмо от вашего начальника, который говорит, что “Whenever you have time, let’s give it a try!”, что переводится «Когда у тебя будет минутка, посмотри на эту проблему». Мы все знаем, что это означает «Делай это сейчас. Не тогда, когда тебе будет удобно, а надо что-то делать сейчас».
Эти hedge phrases очень часто используются для того, чтобы делать какие-то указания более мягкими, часто предотвращают какие-либо конфликты. Также они демонстрируют, когда человек говорит что-то, в чём не уверен.
Вот маленький отрывок из интервью с Адамом Ньюманом. Он был СЕО of WeWork. WeWork распался, первый сигнал был, когда SoftBank отошел от их договора и перестал давать им больше средств. Это первое интервью после этой новости. Адам говорит следующие вещи. Несмотря на то, что Адам говорит, что «он думает, что чем дольше продляться их отношения, тем сильнее они станут», он использует так называемую hedge phrase “I think”, которая говорит, что всё, что следует за этим, не имеет никакого значения.
(00:25:21)
Поэтому очень важно понимать hedges. Для этой проблемы мы создали систему, которая работает параллельно. Мы называем ее Joint Part of Speech and Word model, где мы создаем две параллельные модели нейронных сетей. Одна основывается на LSTM, другая основывается на GLU. Одна использует Part of Speech text, просто части речи, таким образом, мы извлекаем семантический стиль предложения, с другой стороны, мы извлекаем слова.
Мы показали в работе, что эта модель работает довольно-таки хорошо. Что интересно, даже когда мы используем только части речи, эта модель показывает довольно высокие accuracy.
Напоследок мы бы хотели еще проанализировать семантическую часть составляющего. Когда мы тренируем модель, мы можем извлечь hidden embedding. Мы решили натренировать модель на то, чтобы она узнавала и предсказывала K-index другого пользователя. Мы извлекли embeddings, чтобы посмотреть, имеет ли это какой-то смысл.
К сожалению, в данный момент там особо не видим никакого результата, что было довольно удивительно. Но при этом мы хотели посмотреть, как отличается речь одного или другого пользователя при общении.
Мы взяли пользователя, который имеет высокий статус в одном ил другом discussion, и пользователя, который имеет низкий статус, и сравнили, как они общаются с использованием внутреннего embeddings. Мы заметили, что, во-первых, когда пользователи с высоким статусом пишут комментарии к чьему-то комментарию, они часто меняют тему, хотя разница небольшая. Эти числа представляют точки в multidimensional space, где числа представляют собой equal distance.
Мы видим, во-первых, что пользователи с более высоким статусом часто отвечают на комментарии, которые немного отличаются, чем пользователи, который не имеет высокого статуса, они больше исследуют тему. Пользователи с высоким статусом могут привнести новую информацию или изменить тему.
Аналогичная ситуация показывает, что пользователи с высоким статусом часто не следуют топику одной или другой discussion. Они часто меняют разные направления.
Когда мы взяли все комментарии одного пользователя, у нас была теория, что пользователи часто любит обсуждать одинаковые темы, у них есть знания, которые показывают только в одном направлении, мы видим, что пользователи с более высоким статусом часто общаются на разные темы. Это было довольно-таки интересно.
В конце вопрос – как мы собираемся всё это соединить. Как я говорил изначально, мы используем все системы, которые были представлены сверху, кроме topic analysis, мы пока не используем. Мы используем gender, age, разные personality traces и hedge detection как индивидуальные таски для нашей модели.
В этой работе мы используем small BERT model Transformer из-за того, что довольно-таки удобно тренировать. Если мы добавим полный BERT или более сложные модели, мы улучшим результаты. Но для просто исследовательской работы эта модель очень хорошо подходит.
(00:30:17)
Единственная вещь, которую хотелось бы напомнить, мы все знаем, что тренировать BERT довольно-таки легко, но существует проблема catastrophic forgetting. Когда мы представляем новые задачи, часто у нас новые задачи преподносят очень высокий уровень gradience, который прыгает through the network, и мы теряем информацию, которую несла в себе эта сеть.
Модель была построена таким образом, что мы, во-первых, создаем сверху нашего трансформера отдельные classification heads и тренируем их отдельно. После того как мы их натренировали, мы создаем модель, где transformer model не замерзший, где можно проводить тренинг. Таким образом мы добиваемся довольно высокого результата.
Но проблема была намного тяжелее. Тяжело было подобрать разные loss coefficients – коэффициенты loss function для каждого таска. Что мы сделали? Мы создали loss function для нашего главного таска – K-index identification, равный одному, а остальные мы fine-tune через _____ (00:31:45) tuner, найти оптимальную дистрибьюцию коэффициентов для нашей функции.
В конце хотел бы показать наши результаты. После того, как мы сделали всю эту работу, мы демонстрируем, когда мы добавляем multi-task learning, наши коэффициенты улучшаются. Мы показываем результат один mean absolute error, потому что эта задача представлена как regression problem, где мы предсказываем уровень K-index пользователя с одного комментария. Таким образом мы видим, что, когда мы добавляем multi-task learning, наш mean absolute error идет вниз и RankDCG идет вверх.
К сожалению, RankDCG показывает немного другие результаты. Но это из-за того, что RankDCG основывается на том, что чем больше пользователей правильно идентифицированы, тем больше результатов они получают, в то время, как RankDCG делает бóльшую ставку на узнавание пользователей и правильную идентификацию пользователя с высоким статусом, который очень редкок в нашей проблеме.
В конце я хочу поставить summary of our contributions, где можете почитать отдельные статьи и углубиться в том или ином направлении в наши предыдущие работы. Спасибо за внимание. Я хочу ответить на ваши вопросы.
Дмитрий Меньшиков: Спасибо, Денис. Очень интересная тема и очень непростая задача. Пока наши коллеги, наши участники думают и пишут вопросы, я начну. Не могли бы вы отмотать на 23 слайд? Там у вас были пользовательские эмбеддинги, которые разложены через PCA или что-нибудь вроде этого.
Вы отметили, что не очень получилось разложить пользователей. Однако тут достаточно заметно выражено два кластера, один очень отдаленный. Не могли бы вы прокомментировать?
Денис Катеренчук: Мы не рассматривали, почему эти кластеры видно. Скорее всего, кластер распределяется по топикам. Возможно, произошло какое-то событие, которое пользователи довольно-таки сильно обсуждают. Мы надеялись увидеть больше различия по статусу, чем по топикам. Но так как нейронные сети, особенно BERT, построены как _____ (00:34:57) model. Таким образом мы больше наблюдаем разницу по разным топикам, но не с точки зрения класса пользователя.
(00:35:07)
Дмитрий Меньшиков: Спасибо. Еще вопрос от меня. Вы оцениваете статус пользователя по K-индексу. Это совокупность активностей пользователя и насколько он лайкаем?
Денис Катеренчук: Да.
Дмитрий Меньшиков: Правильно ли я понимаю, что вы учили модель по небольшому фрагменту текста, буквально 32 слова, оценить этот индекс?
Денис Катеренчук: Да.
Дмитрий Меньшиков: Пробовали ли вы сделать что-нибудь вроде contrastive learning, когда высказывания одного пользователя объединялись?
Денис Катеренчук: Хороший вопрос. Это то, что мы планируем сделать. Мы рассматривали разницу, как пользователи отвечают друг другу и делали более сематический анализ. Мы планируем сделать contrastive learning, потому что, во-первых, разница существует, но модель не натренирована под эту реальную проблему.
Если уточнить проблему, как первый комментарий одного пользователя, когда он отвечает комментарию другого пользователя, как меняется их стиль. С добавлением contrastive learning мы надеемся получить бóльшую разницу улучшить модель.
Дмитрий Меньшиков: На данной диаграмме, что на слайде, разница достаточно невелика. Вы оценивали статистическую значимость?
Денис Катеренчук: Да, разница невелика. Но мы также работаем в multidimensional space, где мы не можем интерпретировать equal distance так, как мы привыкли. Мы знаем, что когда очень много размерности в сети, точки находятся очень далеко друг от друга. Они находятся больше на концах сети, поэтому разница может быть существенная.
Дмитрий Меньшиков: Тут я соглашусь. Коллеги, у кого-нибудь возникли вопросы? Пока Алексей Помазов говорит: «Большое спасибо за прекрасное выступление». Если вопросов нет, Денис, мне остается только поблагодарить вас за интересный доклад, пожелать вам дальнейших успехов в этой очень тяжелой теме.
Стоп. Возник вопрос от Виталия Безуглова. Пробовали ли вы убрать данные из секции personality? Раз вероятность почти 0,5, может быть, они вносят больше ошибок, чем пользы?
Денис Катеренчук: Это хороший поинт. Мы планируем сделать больше анализ, какие данные играют роль или нет. Там можно анализировать через _____ (00:39:09) values или просто анализ сетей как gradient propagate back. Через такие способы мы планируем проанализировать более конкретно.
В данный момент мы были ограниченными ресурсами, потому что тренировать много разных моделей, чтобы узнать, какие работают, какие нет, довольно трудоемкий процесс. Можно будет запустить на несколько недель, на месяц и посмотреть, что получится.
Дмитрий Меньшиков: Так же поступил вопрос от Пол Л. Можете рассказать более широкий аспект потребностей в этой задаче? Задача кажется более прикладной.
(00:40:05)
Денис Катеренчук: Да, задача более прикладная, много разных приложений, где она может существовать. Самые легкие, которые легко применять, это при advertisement, когда рекламодатель будет платить больше средств за каждый клик или для того, чтобы привлечь пользователей, которые является лидером в той или иной группе. Возможно, их продукт будет более популярным.
Компания, которая занимается бизнесом онлайн, производит какое-то software, возможно, большинство пользователей хотят одну фичу, в то время, как более главные пользователи будут диктовать условия вашего продукта. Если вы не угадаете будущие тренды, что нужно пользователям, то можете прогореть. Довольно-таки много приложений этой проблемы, где ее можно применит.
Дмитрий Меньшиков: Спасибо. Пол, я надеюсь, Денис ответил на вопрос. Еще вопрос. Анализировали ли вы активность? В каждой цепочке topic thread есть topic starter. У этого topic starter подразумевается более высокая активность, нежели чем у других участников, я лишь предполагаю. Не анализировали ли вы, как активность topic starter может повлиять на dataset? Dataset может быть несколько _____ (00:39:09) в пользу topic starters.
Денис Катеренчук: Reddit начинается с post, когда пользователь создает discussion thread, где люди общаются. Это пост может быть или текстом, или картинкой, или видео, или линком на другой вебсайт, источник. К сожалению, его тяжелее анализировать. Было бы интересно проанализировать, если это просто текст, это возможно. А если другой источник, то тяжелее было бы совместить топик или анализы.
Мы пытаемся не смотреть на информацию вне текста комментариев. Если есть один комментарий, что мы можем о нём сказать? Мы можем сказать, кто пользователь. В данном построении задачи мы можем сказать, какого пола пользователь, сколько ему лет и тому подобное.
Дмитрий Меньшиков: У Пола возникает еще вопрос. Был ли интерес самого Reddit к вашему исследованию?
Денис Катеренчук: Пока нет.
Дмитрий Меньшиков: Еще не вечер. Будем ожидать. Коллеги, есть ли еще вопросы? Похоже, что все вопросы заданные и отвечены. Денис, большое вам спасибо, что заглянули к нам на огонек. Было очень интересно. Желаем больших успехов в дальнейших исследованиях.
Денис Катеренчук: Огромное спасибо за приглашение. Мне было очень приятно презентовать свою работу. Будем чаще к вам забегать. Здесь проходят очень интересные лекции.
Дмитрий Меньшиков: Обязательно. Заходите в качестве гостя. Я со всеми прощаюсь. Всем хорошего вечера и рабочей недели. До следующего вторника.
(00:44:16) (Конец записи.)