Рекомендательная система для поиска (командный проект) — различия между версиями

Материал из Wiki - Факультет компьютерных наук
Перейти к: навигация, поиск
(создание страницы проекта)
 
(Контакты)
 
(не показана одна промежуточная версия ещё одного участника)
Строка 48: Строка 48:
 
=== Критерии оценки ===
 
=== Критерии оценки ===
 
Оценки зависят от итогового результата и вклада каждого участника проекта.
 
Оценки зависят от итогового результата и вклада каждого участника проекта.
 +
 +
=== Контакты ===
 +
email ментора: elric@yandex-team.ru --- Александр Фокин

Текущая версия на 19:44, 15 октября 2017

Компания Яндекс
Учебный семестр Осень 2017
Учебный курс 3-й курс
Максимальное количество студентов, выбравших проект: 2-4



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

Цель проекта: научиться находить документы (веб-страницы) со схожей семантикой. Для этого нужно поработать с технической стороны -- придумать и реализовать систему, позволяющую эффективно производить следующие операции:

  1. вычислять "близость" документов.
  2. выдавать вместе с требуемым документом ссылки на похожие.

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


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

  1. Писать код для десятков тысяч машин в нескольких ДЦ.
  2. Организованная и ответственная работа в команде.
  3. Процесс прохождения review.
  4. Процесс оценивания review коллег.
  5. Взаимодействие с продуктовыми командами компании.
  6. Тестирование своих наработок.

Организация работы

  1. Обязательные review для каждого серьезного нововведения.
  2. Регулярные (раз в неделю) встречи и обсуждение результатов и планов.
  3. Области ответственности распределены: кто-то будет писать код со стороны поиска, кто-то -- со стороны базы поиска.

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

  1. Будем разрабатываться на С++.
  2. Для контроля версий кода будем использовать svn или hg.
  3. Будем писать код для десятков тысяч машин.
  4. Тесты на Python (pytest) и C++.

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

  1. Знание C++.
  2. Знание основ машинного обучения.
  3. Знание основ устройства распределённых вычислительных систем.

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

  1. Виды и принципы работы индексов поиска.
  2. Устройство базы документов поиска.
  3. Основы построения рекомендательных систем.

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

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

Контакты

email ментора: elric@yandex-team.ru --- Александр Фокин