Социальные сети постоянно меняются ― в них появляются новые возможности, алгоритмы поиска и рекомендации информации, интересной конкретному пользователю. Эта работа проходит незаметно, между тем, команды программистов каждый день анализируют данные, ищут пути оптимизации работы, проверяют гипотезы и вновь оценивают результаты. Чем более совершенные инструменты находятся в руках аналитиков, тем больше информации они могут предоставить разработчикам, которые сделают соцсеть еще удобнее для пользователей.
Университет ИТМО и ВКонтакте сотрудничают на протяжении долгого времени. Соцсеть активно привлекает экспертизу вуза для решения сложных задач, в то время как университет получает важного партнера, заинтересованного в студентах и выпускниках ИТМО.
Очередным этапом сотрудничества стала совместная работа ученых лаборатории «Машинное обучение» и сотрудников команды CoreML ВКонтакте. За прошедший учебный год они реализовали два проекта, направленных на анализ данных и обучение нейросетей.
Анализ метрик
Любой ресурс заинтересован в том, чтобы привлекать новых пользователей, предлагать им интересные новости, поощрять переход по внутренним ссылкам и изучение нового контента. Особенно важно это для социальной сети, созданной для общения людей, обмена информацией, доступа к новостям и интересным фактам.
Количество времени, которое пользователи проводят в социальной сети, частота открытия приложений ― все эти ключевые факторы называются также длинными метриками. Напрямую на них повлиять очень сложно. Однако косвенно ― возможно.
«Есть показатели, метрики, социальной сети, которые ВКонтакте умеет вычислять, ― рассказывает заместитель заведующего лабораторией «Машинное обучение» Университета ИТМО Иван Сметанников. ― Например, среднее число просмотров каких-то постов, лент, лайков ― это короткие метрики. На них в соцсети могут оказывать прямое влияние, например, число лайков под фотографией. Можно подвинуть кнопку лайка подальше или спрятать ее вообще, и число лайков уменьшится. Необходимо понять, как эти короткие метрики, на которые можно повлиять, связаны с длинными метриками, на которые мы хотим влиять. Хочется построить целевую функцию, чтобы мы могли нужным нам образом менять длинные метрики, влияя на короткие».
Однако коротких метрик много, и их влияние на длинные не всегда очевидно. Кроме того, существуют и другие факторы, определяющие пользование соцсетью, поэтому чтобы точнее выдвигать гипотезы относительно экспериментов с той или другой функцией, необходим инструмент, который и планировали разработать ученые Университета ИТМО вместе со специалистами ВКонтакте.
«Мы попробовали несколько подходов и в конечном счете остановились на байесовских сетях ― это способ представления взаимосвязей в виде графовых (граф ― сеть из точек или вершин, линий или ребер, соединяющих их) структур, где вершины ― метрики, а ребра ― зависимости, ― рассказывает Иван Сметанников. ― Однако была сложность: в нашем случае в чистом виде байесовские сети не работали, так как они предполагают, что все вершины графов нам известны. Когда мы говорим о соцсети, понятно, что все метрики мы померить не можем, просто фантазии не хватит. Получилось, что у нас было много скрытых параметров, которые оказывали влияние, но мы их не наблюдаем. И это добавило нам проблем»
Однако в итоге специалисты построили такой граф на основе экспериментальных данных, собранных ВКонтакте. Дальше граф будет внедряться и испытываться на корректность ― в соцсети будут проверять, как меняются короткие метрики и насколько это влияет на длинные.
«Каждый раз, когда мы что-то делаем, мы всегда проводим A/B тестирование: на части пользователей тестируем новую функцию в одном виде, на части ― в другом, а еще на части ― не тестируем ее вообще, ― рассказывает менеджер по образовательным проектам ВКонтакте Лидия Перовская. ― Нам надо отследить, правда ли меняется поведение этих пользователей в зависимости от эксперимента. Это хорошо стыкуется с тем, что было сделано в рамках исследований. Мы берем данные A/B тестов ― у нас их действительно очень много, потому что эксперименты идут буквально каждый день ― и систематизируем их в эту графовую форму, чтобы выявить предполагаемые зависимости».
На проверку графа, созданного сотрудниками Университета ИТМО, еще уйдет определенное время. Однако, как отмечает Перовская, в результате социальная сеть получила универсальный инструмент для анализа имеющихся данных, который можно применять не только для одного разового исследования, но и в дальнейшем.
«Какие-то пользователи лучше реагируют на новости с визуальными данными, картинками, а кто-то с удовольствием читает лонгриды или слушает подкасты, ― поясняет она. ― Мы можем эти параметры учесть при формировании "умной" ленты, что повлияет на то, как много новостей посмотрел пользователь, с каким удовольствием он листает ленту. Это только один из примеров тех зависимостей, которые нам интересно отследить. Благодаря совместному проекту с ИТМО мы теперь, как кажется, умеем это делать, более того, сможем продолжать, даже когда у нас появятся новые характеристики. Прелесть в том, что этот алгоритм универсальный, это разработка не на один раз, и все предстоящие эксперименты будут встраиваться в ту же структуру и выявлять новые связи».
Обучение нейросети
Второй совместный проект лаборатории «Машинное обучение» и команды ВКонтакте был посвящен обучению нейросети, ответственной в том числе за классификацию контента. Именно она отбирает интересные посты для того или иного типа пользователей. Однако до того, как она приступит к этому, ей необходимо обучиться самой.
«Мы разбиваем все новости, которые создаются в соцсети, на категории, ― рассказывает Лидия Перовская. ― Это позволяет пользователям подписываться на них: если тебе нравится туризм, ты всегда можешь получать свою порцию классных картинок и постов про туризм. Одновременно с этим все новые авторы контента могут быстрее добираться до читателей, потому что они могут либо сами указать категорию, либо мы можем определить ее автоматически. Трудность в том, что, чтобы нейросеть определила категорию, какую-то часть данных надо разметить вручную с помощью экспертов, а это большие человеческие ресурсы. Поэтому здесь используется машинное обучение ― какое-то количество данных мы просим распознать вручную, а после этого создаем модель, которая размечает категории автоматически. Фишка в том, что новости меняются, развиваются, могут появляться новые категории, и поэтому время от времени мы снова пользуемся помощью экспертов, чтобы дообучить нашу модель».
Однако как понять, какие именно данные надо попросить экспертов разметить? Кроме того, контент в соцсетях мультимодален ― в одном посте может быть музыка, видео, картинка и текст. Для нейросети это настоящее испытание ― выбрать то, что объединяет эти части, чтобы правильно отнести заметку к определенной категории. Помочь в этом также были призваны сотрудники Университета ИТМО.
«Есть такая штука, как активное обучение, ― поясняет Иван Сметанников. ― В обычном машинном обучении вы берете весь массив данных и по кусочкам "кормите" ими нейросеть. Она постепенно начинает все лучше и лучше распознавать, к примеру, картинки котиков. При активном обучении вы можете "скармливать" нейросети картинки не в случайном порядке, а в каком-то специальном, так, чтобы как можно раньше достигнуть результата. Одна из задач активного обучения состоит в том, чтобы как раз из всего вашего множества данных подбирать те, которые не просто улучшат вашу модель, а сделают это наиболее оптимально. Этот подход мы применили здесь».
При этом нейронная сеть анализировала контент не просто слой за слоем, а вместо этого особым образом переплетала виды контента, чтобы получить нужный результат. Эти два компонента ― мультимодальность и активность обучения ― и применялись для оптимизации труда экспертов, добавляет Иван Сметанников.
Научные результаты
Основные работы по проекту завершены к началу июля. Теперь готовятся научные публикации, касающиеся машинного обучения, обработки данных и других отраслей знания, затронутых проектами. Как подчеркивает Лидия Перовская, подобное сочетание прикладной задачи и возможности продвигать исследования является важным для ВКонтакте.
«Мы как раз работаем над публикациями по организационной и научной части, чтобы у всех была возможность использовать у себя наши результаты, ― рассказывает она. ― Очень здорово, что это одновременно и прикладная история, которая встраивается в повседневную работу социальной сети, экономит ресурсы. И одновременно ― это научная история по теме, в которой сейчас ведется много исследований. Сотрудничество с университетом очень плодотворно, оно позволяет не запирать результаты в компаниях, а двигать науку вперед».