Skip to content

Разработка механизма ранжирования комментариев с помощью моделей машинного обучения

Notifications You must be signed in to change notification settings

garick161/vk_cup_challenge

Repository files navigation

Разработка механизма ранжирования комментариев с помощью моделей машинного обучения

Любая социальная сеть это не только просмотр страничек людей и новостной ленты, но и в первую очередь общение. В ходе общения некоторые комментарии оказываются более популярными, чем другие. И как следствие нахотятся выше в ленте. Необходимо выяснить, а что же влияет на то что комментарий будет популярен или нет? Необходимо проинализировать данные и возможно найдутся инсайды, которые ответят на данный вопрос. В дальнейшем эти рекоммендации могут быть выданы пользователям, как писать комментарий, чтобы он был более был популярен. Качественное, интересное, а главное аттрактивное общение может увеличить количество пользоватей в социальной сети, а так же время нахожнения в ней

Постановка задачи

Предложить механизм сортировки комментариев к постам по их популярности на основе методов машинного обучения, чтобы модель могла как можно лучше ранжировать пользовательские комментарии. Для этого:

  1. Провеcти проверку и разведочный анализ данных (EDA) и подумать, какие готовые решения можно использовать для представления текста.
  2. Используя тренировочную и тестовую выборки датасета, обучить модель ранжировать текстовые комментарии в порядке их популярности (от популярных к менее популярным).
  3. Проанализировать полученные результаты и сформулировать полезные инсайты о том, что обычно содержит популярный комментарий, чтобы команда VK могла использовать эту информацию для улучшения комментариев своих пользователей.
  4. Предложите методы взаимодействия с комментаторами, а также механизмы поддержки для разных групп пользователей, включая тех, чьи комментарии непопулярны.

Описание данных

В формате json представлены данные о постах, комметариях, рейтинге. После пребразования json в pandas.DataFrame мы имеем следующие колонки:

post_idx - индекс поста

text - текст поста

comments - комментарий к посту (на каждый пост имеется 5 комментариев с разным рейтингом)

score - рейтинг популярности комментария (от 0 до 4, где 0 - самый популярный)

Метрика оценки качества модели

NDCG

https://scikit-learn.org/stable/modules/generated/sklearn.metrics.ndcg_score.html

Используемые инструменты

ML модель: CatBoostRegressor

EDA: python, pandas, numpy, mathplotlib, seaborn, scikit-learn

Feature engeneering: pytorch, transformers

Файлы в репозитории

vk_challenge.ipynb - ноутбук с ходом исследования и обучениtv модели

Changellenge__Cup IT 2023_Диплом_1.pdf - диплом участника

При необходимости можно запросить дополнительно доступ к исходным данным чемпионата:

CL_Cup IT 2023_Секция DS_Кейс VK.pdf - описание кейса чемпионата от организаторов

ranking_test.jsonl , ranking_train.jsonl - исходные данные

final_j.jsonl - предсказанные значения

data_5000_first_view_right.csv, emo_features.csv, part_data_2_emd - сохраненные промежуточные данные, вычисление которых затратно. Можно загрузить готовыми

Инсайты и предложения

  • Более длинный комментарий в среднем популярнее других. Пользователям лучше писать полный коментарий, в котором раскрывется мысль, что он хотел донести. Возможно использовать какую то аргументацию своей позиции. Пользователю это можно интерактивно подсказывать

  • В наших данных имеются комментарии с использованием подряд спецсимволов (№"%&$...). Это можно интерпретировать как наличие ненормативной лексики. Согласно исследованию, это отрицательно сказывается на популярность комментария. Следовательно пользователю лучше воздержаться от использования нецензурных слов в своих сообщениях. При попытке написать такие слова, пользователю это можно подсвечивать с комментариями

  • Комментарий должен коррелирровать с темой поста, раскрывать и дополнять его тему. В таком случае комментарий будет более популярен

  • Есть зависимость от эмоциональной окраски комментария. В нашем случае получились неутешительные выводы, но соответвущие действительности: негативные комментарии имеют больше внимания (как и рейтинг передач на телевидинии, как Андрей Малахов и др.). С точки срения бизнеса нам невыгодно, чтобы общение сходилось на негатив. Возможно нужно выделить другие эмоциональные составляющие комментариев и проанализивать их в дальнейшем. Эту информацию можно опять использовать и подсвечивать пользователю эмоцианальный окрас сообщения

  • И конечно все рекоммендации должны даваться пользователем ненавязчиво. Иначе это может быть воспринято как посягательство на его свободу. Конечно он в праве писать что угодно и выражать свои мысли как он считает правильным

Результаты

По итогам валидации тестовой выборки и оценки экспертов работа попала в десятку лучших, что позволило пройти в финал чемпионата

About

Разработка механизма ранжирования комментариев с помощью моделей машинного обучения

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published