Вопросы по рекомендательным системам на собеседовании
Рекомендации спрашивают как систему целиком: сначала кандидаты, потом ранжирование, потом бизнес-правила. Кандидаты, которые говорят только про матричное разложение, обычно застревают на вопросе про холодный старт.
Из чего состоит тема
Так тема разложена в тренажёре: движок ведёт прогресс по каждой подтеме отдельно и возвращает те, где вы ошибаетесь.
- Коллаборативная фильтрация17
- Метрики рекомендаций14
- Матричная факторизация12
- Ретрив и ранжирование11
Разборы подтем
Конспект по каждой: что это, как отвечать вслух, на чём валятся, плюс вопросы для самопроверки.
- Коллаборативная фильтрация17 вопросов
- Матричная факторизация12 вопросов
- Ретрив и ранжирование в рекомендациях11 вопросов
- Метрики качества рекомендаций14 вопросов
Примеры вопросов с разбором
- Что такое коллаборативная фильтрация в рекомендациях?A)Рекомендации по поведению похожих пользователей и предметов, без опоры на контентные признаки объектаB)Рекомендации строго по описанию и характеристикам самого товара, игнорируя поведение пользователейC)Ручной отбор товаров редакцией сервиса, который потом одинаково показывается всем пользователям без разбораD)Фильтрация каталога по жёстким правилам вроде цены и категории, заданным заранее вручную аналитиком сервиса
показать ответ и разбор
+A)Рекомендации по поведению похожих пользователей и предметов, без опоры на контентные признаки объекта// разбор: Коллаборативная фильтрация опирается на матрицу взаимодействий пользователь×предмет: если люди с похожим поведением любили X, вам тоже порекомендуют X — «похожим нравится похожее». Контентные признаки предмета при этом не нужны, сигнал берётся из коллективного поведения. Это отличает CF от контентных рекомендаций (по описанию товара) и от ручных правил.
- Что делает матричная факторизация в рекомендательной системе?A)Раскладывает матрицу пользователь×предмет на два набора латентных факторов — по одному вектору на юзера и на предметB)Сортирует все товары каталога строго по их итоговой популярности и показывает верхушку этого списка каждому пользователюC)Удаляет из матрицы взаимодействий пустые ячейки, физически уплотняя её до маленького размераD)Перебирает все возможные пары пользователь-предмет и для каждой вручную проставляет заранее заданную оценку
показать ответ и разбор
+A)Раскладывает матрицу пользователь×предмет на два набора латентных факторов — по одному вектору на юзера и на предмет// разбор: Матричная факторизация приближает разреженную матрицу взаимодействий произведением двух низкоранговых матриц: каждому пользователю и каждому предмету сопоставляется вектор латентных факторов. Предсказанная склонность — скалярное произведение этих векторов. Так восстанавливаются пропущенные ячейки (чего пользователь ещё не видел) и получаются рекомендации.
- Зачем промышленные рекомендации делают в два этапа: сначала retrieval (кандидаты), потом ranking?A)Тяжёлой моделью нельзя оценить миллионы товаров на запрос; сперва дёшево отбирают сотни кандидатов, потом точно ранжируют ихB)Два этапа нужны для того, чтобы разделить работу между двумя разными командами внутри компанииC)Retrieval и ranking — это два взаимозаменяемых названия одного и того же прохода по каталогуD)Первый этап выбирает ровно один товар, а второй этап затем добавляет к нему несколько случайных позиций
показать ответ и разбор
+A)Тяжёлой моделью нельзя оценить миллионы товаров на запрос; сперва дёшево отбирают сотни кандидатов, потом точно ранжируют их// разбор: Каталог — миллионы позиций, а тяжёлый ранкер с сотнями признаков нельзя прогнать по всем на каждый запрос за приемлемое время. Поэтому этап retrieval быстрым и дешёвым методом (ANN по эмбеддингам, простые модели) отбирает сотни-тысячи релевантных кандидатов, а точный ranking уже расставляет только их. Это классический трейдофф скорости и точности через каскад.
- Что измеряет Recall@K в оценке рекомендаций?A)Долю релевантных для пользователя предметов, которые попали в топ-K выдачи, от всех его релевантных предметовB)Среднее время в миллисекундах, за которое рекомендательный сервис успевает сформировать топ-K для одного запросаC)Общее суммарное число предметов во всём каталоге сервиса, делённое на выбранный размер выдачи K для нормировкиD)Долю пользователей сервиса, которые за отчётный период хотя бы один раз открыли блок с рекомендациями на странице
показать ответ и разбор
+A)Долю релевантных для пользователя предметов, которые попали в топ-K выдачи, от всех его релевантных предметов// разбор: Recall@K — доля релевантных предметов пользователя, которые модель сумела поднять в топ-K, от всех релевантных для него. Он отвечает на вопрос «сколько из нужного мы нашли в коротком списке». Особенно важен на этапе retrieval, где задача — не потерять релевантных кандидатов. Это метрика полноты выдачи, а не скорости сервиса и не охвата пользователей.
- Чем item-item коллаборативная фильтрация отличается от user-user и почему item-item чаще берут в прод?A)Item-item и user-user — это два разных названия ровно одного и того же алгоритма без какой-либо разницы между нимиB)User-user точнее item-item на многих задачах, а item-item берут из-за нехватки памяти на сервереC)Item-item не требует вообще никаких данных о взаимодействиях пользователей с предметами каталогаD)Похожесть между предметами, а не юзерами; предметы стабильнее и их меньше — лучше масштаб
показать ответ и разбор
+D)Похожесть между предметами, а не юзерами; предметы стабильнее и их меньше — лучше масштаб// разбор: User-user ищет похожих пользователей, item-item — похожие предметы (кто покупал это, покупал и то). Item-item устойчивее: связи между товарами меняются медленнее, чем вкусы и состав пользователей, матрицу похожести предметов можно предрассчитать, а предметов часто меньше, чем пользователей. Отсюда лучшая масштабируемость и стабильность в проде.
- Что содержательно означают латентные факторы, которые выучивает матричная факторизация?A)Это заранее заданные людьми понятные теги вроде жанра и цены, вручную проставленные каждому товару каталогаB)Скрытые измерения вкуса/свойств, выученные из данных; интерпретация не гарантирована, но близость в них отражает схожестьC)Это технические идентификаторы строк и столбцов исходной матрицы, никак не связанные с предпочтениями пользователейD)Точные копии исходных рейтингов пользователей, просто пересохранённые в другом порядке для ускорения доступа к ним
показать ответ и разбор
+B)Скрытые измерения вкуса/свойств, выученные из данных; интерпретация не гарантирована, но близость в них отражает схожесть// разбор: Факторы — это выученные из взаимодействий скрытые измерения: направление в пространстве может неявно соответствовать жанру, стилю, ценовому сегменту, но заранее не размечено и не обязано быть человекочитаемым. Важно не буквальное значение осей, а геометрия: близкие векторы предметов похожи по потреблению, а склонность юзера к предмету — их близость.
- Что такое two-tower (dual encoder) ретривер и почему он быстрый на инференсе?A)Единая модель, которая обязательно пересчитывает совместный скор для каждой пары юзер-товар заново на каждый запросB)Две отдельные башни-энкодера (юзер и товар) в одно пространство; эмбеддинги товаров предрассчитаны, поиск идёт через ANNC)Архитектура из двух последовательных полносвязных слоёв, работающая с картинками товаровD)Модель, которая держит вообще все возможные рекомендации заранее посчитанными в одной гигантской статической таблице
показать ответ и разбор
+B)Две отдельные башни-энкодера (юзер и товар) в одно пространство; эмбеддинги товаров предрассчитаны, поиск идёт через ANN// разбор: Two-tower кодирует пользователя и товар двумя отдельными энкодерами в общее векторное пространство, близость в котором — релевантность. Эмбеддинги всех товаров считаются заранее и складываются в ANN-индекс; на запрос считается только вектор пользователя, а кандидаты ищутся приближённым поиском ближайших соседей. Отсюда скорость: не нужно прогонять тяжёлую совместную модель по всему каталогу.
- Чем NDCG@K лучше, чем Precision@K, для оценки качества ранжирования выдачи?A)NDCG вообще не зависит от порядка элементов в выдаче, зато считается ощутимо быстрее, чем Precision@KB)Precision@K технически неприменима к рекомендациям, поэтому NDCG используют просто за неимением никакой альтернативыC)NDCG учитывает позицию (дисконт за место в списке) и градации релевантности, а Precision@K — нетD)NDCG и Precision@K — это два одинаковых показателя, различающихся своим названием и обозначением
показать ответ и разбор
+C)NDCG учитывает позицию (дисконт за место в списке) и градации релевантности, а Precision@K — нет// разбор: Precision@K считает лишь долю релевантных в топ-K, не различая, стоят они на первом месте или на K-м, и не учитывая степень релевантности. NDCG@K вводит логарифмический дисконт за позицию (что выше — важнее) и работает с градациями релевантности, нормируясь на идеальный порядок. Поэтому для оценки именно ранжирования NDCG информативнее позиционно-слепой Precision@K.
- В чём подвох неявного фидбэка (клики, просмотры) по сравнению с явными оценками (рейтинги)?A)Неявный фидбэк сложно использовать для обучения рекомендательных моделей, годятся явные оценкиB)Неявный фидбэк точнее явных оценок, поэтому рейтинги в современных системах не собираютC)Пропуск ≠ негатив (не увидел ≠ не понравилось); нужны confidence и негативное сэмплированиеD)Клики и просмотры технически не получится сохранить в матрицу взаимодействий, в отличие от числовых явных рейтингов
показать ответ и разбор
+C)Пропуск ≠ негатив (не увидел ≠ не понравилось); нужны confidence и негативное сэмплирование// разбор: У явных оценок есть и позитив, и негатив (1 и 5 звёзд). В неявном фидбэке есть только позитивные сигналы (клик, покупка), а отсутствие сигнала неоднозначно: пользователь мог не увидеть товар, а не отвергнуть его. Поэтому нули трактуют как слабый сигнал с весом-уверенностью (confidence) и подмешивают негативные примеры, а не считают все непросмотренные позиции честным негативом.
это 9 из 54
Ещё 45 вопросов по теме — в тренажёре, с движком повторения
Прочитать разбор и ответить самому — разные навыки. В Сеньорчике вопросы идут сессиями, а движок возвращает подтемы, где вы ошибаетесь, пока они не начнут отскакивать. Бесплатно, лимит по энергии.
Частые вопросы
Как решают проблему холодного старта?
Контентными признаками, популярными и свежими объектами, короткими опросами при онбординге и переносом знаний с похожих пользователей. Важно объяснить, что делать отдельно для нового пользователя и для нового объекта.
Какие метрики используют?
Офлайн ранжирующие вроде NDCG и recall на топ-K, но решает онлайн-эксперимент: клики, конверсия, удержание. На собесе ценят понимание разрыва между офлайн и онлайн.