Представления текстов в рекомендательных системах (командный проект)

Материал из Wiki - Факультет компьютерных наук
Перейти к: навигация, поиск
Компания Яндекс.Дзен
Учебный семестр Осень 2017
Учебный курс 3-й курс
Максимальное количество студентов, выбравших проект: 2-4



Что это за проект?

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

В проекте мы предлагаем решить две серьёзные проблемы текущего подхода:

1. Сейчас представления — это вещественные векторы. Хранить такие векторы, искать ближайшие к ним, вычислять скалярные произведения — достаточно трудоёмкие операции. Нужно изучить и сравнить способы бинаризации или сжатия векторов, которые позволяют ускорить вычисления без больших потерь в качестве.

2. В текущей версии представления обучаются достаточно примитивными способами. Их можно улучшить, если воспользоваться глубинными нейронными сетями — тогда можно взять все данные по статье (текст, изображения) и по пользователю (история посещений) и обучить на этом совместные представления для документов и для пользователей.

Чему научатся студенты? Что самое интересное в проекте?

1. Работа с данными сервиса, которым ежедневно пользуются более 7 миллионов человек.

2. Обучение сложных нейросетевых моделей на больших объёмах данных.

3. Ускорение моделей — тема, которая слабо покрывается в классических курсах по машинному обучению, но которая очень важна в индустрии при разработке высоконагруженных сервисов.

Организация работы (Как студенты будут работать в команде?)

1. Регулярные встречи с менторами (раз в 1-2 недели).

2. Ревью кода.

3. Каждый студент поработает как над аналитической частью (анализ данных, построение моделей), так и над инженерными задачами (внедрение моделей, проверка качества). При этом возможно и разделение — кто-то больше занимается работой с моделями, кто-то концентрируется на инфраструктурных вопросах.

Компоненеты (Из каких частей состоит проект?)

Какие будут использоваться технологии?

1. Python для обучения и сравнения моделей.

2. Java для внедрения моделей.

3. Внутренние технологии Яндекса для распределённых вычислений.

4. Git для совместной работы над кодом.

Какие начальные требования?

1. Понимание основ машинного обучения, приветствуется опыт работы с нейронными сетями в TensorFlow/Keras.

2. Знание Python.

3. Знание C++ или Java.

Темы вводных занятий

1. Машинное обучение в рекомендательных системах.

2. Работа с логами и пользовательскими данными.

3. Архитектура рекомендательных систем.

Критерии оценки

Оценки зависят от итогового результата и вклада каждого участника проекта.

Похожие проекты

Контактная информация

esokolov@hse.ru

telegram: @esokolov