Рекомендательная система для поиска (командный проект)
Материал из Wiki - Факультет компьютерных наук
Компания | Яндекс |
Учебный семестр | Осень 2017 |
Учебный курс | 3-й курс |
Максимальное количество студентов, выбравших проект: 2-4 | |
Что это за проект?
Цель проекта: научиться находить документы (веб-страницы) со схожей семантикой. Для этого нужно поработать с технической стороны -- придумать и реализовать систему, позволяющую эффективно производить следующие операции:
- вычислять "близость" документов.
- выдавать вместе с требуемым документом ссылки на похожие.
При решении задачи перед студентами может встать следующая проблема: нельзя загружать каждую машину поиском нужных документов, нужно научиться подавать запрос к конкретному воркеру. Для создания успешного продукта студентам потребуются навыки распределённого программирования и машинного обучения (вероятно, будем использовать knn).
Чему научатся студенты? Что самое интересное в проекте?
- Писать код для десятков тысяч машин в нескольких ДЦ.
- Организованная и ответственная работа в команде.
- Процесс прохождения review.
- Процесс оценивания review коллег.
- Взаимодействие с продуктовыми командами компании.
- Тестирование своих наработок.
Организация работы
- Обязательные review для каждого серьезного нововведения.
- Регулярные (раз в неделю) встречи и обсуждение результатов и планов.
- Области ответственности распределены: кто-то будет писать код со стороны поиска, кто-то -- со стороны базы поиска.
Какие будут использоваться технологии?
- Будем разрабатываться на С++.
- Для контроля версий кода будем использовать svn или hg.
- Будем писать код для десятков тысяч машин.
- Тесты на Python (pytest) и C++.
Какие начальные требования?
- Знание C++.
- Знание основ машинного обучения.
- Знание основ устройства распределённых вычислительных систем.
Темы вводных занятий
- Виды и принципы работы индексов поиска.
- Устройство базы документов поиска.
- Основы построения рекомендательных систем.
Критерии оценки
Оценки зависят от итогового результата и вклада каждого участника проекта.
Контакты
email ментора: elric@yandex-team.ru --- Александр Фокин