сеньорчикОткрыть в Telegram
← все вопросывопросы для собеседований · Рекомендательные системы

Вопросы по рекомендательным системам на собеседовании

Рекомендации спрашивают как систему целиком: сначала кандидаты, потом ранжирование, потом бизнес-правила. Кандидаты, которые говорят только про матричное разложение, обычно застревают на вопросе про холодный старт.

54 вопросов в банке·4 подтем·ниже разбор 9

Из чего состоит тема

Так тема разложена в тренажёре: движок ведёт прогресс по каждой подтеме отдельно и возвращает те, где вы ошибаетесь.

Разборы подтем

Конспект по каждой: что это, как отвечать вслух, на чём валятся, плюс вопросы для самопроверки.

Примеры вопросов с разбором

  1. #cf_basics1 / 9
    Что такое коллаборативная фильтрация в рекомендациях?
    A)Рекомендации по поведению похожих пользователей и предметов, без опоры на контентные признаки объекта
    B)Рекомендации строго по описанию и характеристикам самого товара, игнорируя поведение пользователей
    C)Ручной отбор товаров редакцией сервиса, который потом одинаково показывается всем пользователям без разбора
    D)Фильтрация каталога по жёстким правилам вроде цены и категории, заданным заранее вручную аналитиком сервиса
    показать ответ и разбор
    +A)Рекомендации по поведению похожих пользователей и предметов, без опоры на контентные признаки объекта

    // разбор: Коллаборативная фильтрация опирается на матрицу взаимодействий пользователь×предмет: если люди с похожим поведением любили X, вам тоже порекомендуют X — «похожим нравится похожее». Контентные признаки предмета при этом не нужны, сигнал берётся из коллективного поведения. Это отличает CF от контентных рекомендаций (по описанию товара) и от ручных правил.

  2. #matrix_factorization2 / 9
    Что делает матричная факторизация в рекомендательной системе?
    A)Раскладывает матрицу пользователь×предмет на два набора латентных факторов — по одному вектору на юзера и на предмет
    B)Сортирует все товары каталога строго по их итоговой популярности и показывает верхушку этого списка каждому пользователю
    C)Удаляет из матрицы взаимодействий пустые ячейки, физически уплотняя её до маленького размера
    D)Перебирает все возможные пары пользователь-предмет и для каждой вручную проставляет заранее заданную оценку
    показать ответ и разбор
    +A)Раскладывает матрицу пользователь×предмет на два набора латентных факторов — по одному вектору на юзера и на предмет

    // разбор: Матричная факторизация приближает разреженную матрицу взаимодействий произведением двух низкоранговых матриц: каждому пользователю и каждому предмету сопоставляется вектор латентных факторов. Предсказанная склонность — скалярное произведение этих векторов. Так восстанавливаются пропущенные ячейки (чего пользователь ещё не видел) и получаются рекомендации.

  3. #ranking_retrieval3 / 9
    Зачем промышленные рекомендации делают в два этапа: сначала retrieval (кандидаты), потом ranking?
    A)Тяжёлой моделью нельзя оценить миллионы товаров на запрос; сперва дёшево отбирают сотни кандидатов, потом точно ранжируют их
    B)Два этапа нужны для того, чтобы разделить работу между двумя разными командами внутри компании
    C)Retrieval и ranking — это два взаимозаменяемых названия одного и того же прохода по каталогу
    D)Первый этап выбирает ровно один товар, а второй этап затем добавляет к нему несколько случайных позиций
    показать ответ и разбор
    +A)Тяжёлой моделью нельзя оценить миллионы товаров на запрос; сперва дёшево отбирают сотни кандидатов, потом точно ранжируют их

    // разбор: Каталог — миллионы позиций, а тяжёлый ранкер с сотнями признаков нельзя прогнать по всем на каждый запрос за приемлемое время. Поэтому этап retrieval быстрым и дешёвым методом (ANN по эмбеддингам, простые модели) отбирает сотни-тысячи релевантных кандидатов, а точный ranking уже расставляет только их. Это классический трейдофф скорости и точности через каскад.

  4. #recsys_metrics4 / 9
    Что измеряет Recall@K в оценке рекомендаций?
    A)Долю релевантных для пользователя предметов, которые попали в топ-K выдачи, от всех его релевантных предметов
    B)Среднее время в миллисекундах, за которое рекомендательный сервис успевает сформировать топ-K для одного запроса
    C)Общее суммарное число предметов во всём каталоге сервиса, делённое на выбранный размер выдачи K для нормировки
    D)Долю пользователей сервиса, которые за отчётный период хотя бы один раз открыли блок с рекомендациями на странице
    показать ответ и разбор
    +A)Долю релевантных для пользователя предметов, которые попали в топ-K выдачи, от всех его релевантных предметов

    // разбор: Recall@K — доля релевантных предметов пользователя, которые модель сумела поднять в топ-K, от всех релевантных для него. Он отвечает на вопрос «сколько из нужного мы нашли в коротком списке». Особенно важен на этапе retrieval, где задача — не потерять релевантных кандидатов. Это метрика полноты выдачи, а не скорости сервиса и не охвата пользователей.

  5. #cf_basics5 / 9
    Чем 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 устойчивее: связи между товарами меняются медленнее, чем вкусы и состав пользователей, матрицу похожести предметов можно предрассчитать, а предметов часто меньше, чем пользователей. Отсюда лучшая масштабируемость и стабильность в проде.

  6. #matrix_factorization6 / 9
    Что содержательно означают латентные факторы, которые выучивает матричная факторизация?
    A)Это заранее заданные людьми понятные теги вроде жанра и цены, вручную проставленные каждому товару каталога
    B)Скрытые измерения вкуса/свойств, выученные из данных; интерпретация не гарантирована, но близость в них отражает схожесть
    C)Это технические идентификаторы строк и столбцов исходной матрицы, никак не связанные с предпочтениями пользователей
    D)Точные копии исходных рейтингов пользователей, просто пересохранённые в другом порядке для ускорения доступа к ним
    показать ответ и разбор
    +B)Скрытые измерения вкуса/свойств, выученные из данных; интерпретация не гарантирована, но близость в них отражает схожесть

    // разбор: Факторы — это выученные из взаимодействий скрытые измерения: направление в пространстве может неявно соответствовать жанру, стилю, ценовому сегменту, но заранее не размечено и не обязано быть человекочитаемым. Важно не буквальное значение осей, а геометрия: близкие векторы предметов похожи по потреблению, а склонность юзера к предмету — их близость.

  7. #ranking_retrieval7 / 9
    Что такое two-tower (dual encoder) ретривер и почему он быстрый на инференсе?
    A)Единая модель, которая обязательно пересчитывает совместный скор для каждой пары юзер-товар заново на каждый запрос
    B)Две отдельные башни-энкодера (юзер и товар) в одно пространство; эмбеддинги товаров предрассчитаны, поиск идёт через ANN
    C)Архитектура из двух последовательных полносвязных слоёв, работающая с картинками товаров
    D)Модель, которая держит вообще все возможные рекомендации заранее посчитанными в одной гигантской статической таблице
    показать ответ и разбор
    +B)Две отдельные башни-энкодера (юзер и товар) в одно пространство; эмбеддинги товаров предрассчитаны, поиск идёт через ANN

    // разбор: Two-tower кодирует пользователя и товар двумя отдельными энкодерами в общее векторное пространство, близость в котором — релевантность. Эмбеддинги всех товаров считаются заранее и складываются в ANN-индекс; на запрос считается только вектор пользователя, а кандидаты ищутся приближённым поиском ближайших соседей. Отсюда скорость: не нужно прогонять тяжёлую совместную модель по всему каталогу.

  8. #recsys_metrics8 / 9
    Чем NDCG@K лучше, чем Precision@K, для оценки качества ранжирования выдачи?
    A)NDCG вообще не зависит от порядка элементов в выдаче, зато считается ощутимо быстрее, чем Precision@K
    B)Precision@K технически неприменима к рекомендациям, поэтому NDCG используют просто за неимением никакой альтернативы
    C)NDCG учитывает позицию (дисконт за место в списке) и градации релевантности, а Precision@K — нет
    D)NDCG и Precision@K — это два одинаковых показателя, различающихся своим названием и обозначением
    показать ответ и разбор
    +C)NDCG учитывает позицию (дисконт за место в списке) и градации релевантности, а Precision@K — нет

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

  9. #cf_basics9 / 9
    В чём подвох неявного фидбэка (клики, просмотры) по сравнению с явными оценками (рейтинги)?
    A)Неявный фидбэк сложно использовать для обучения рекомендательных моделей, годятся явные оценки
    B)Неявный фидбэк точнее явных оценок, поэтому рейтинги в современных системах не собирают
    C)Пропуск ≠ негатив (не увидел ≠ не понравилось); нужны confidence и негативное сэмплирование
    D)Клики и просмотры технически не получится сохранить в матрицу взаимодействий, в отличие от числовых явных рейтингов
    показать ответ и разбор
    +C)Пропуск ≠ негатив (не увидел ≠ не понравилось); нужны confidence и негативное сэмплирование

    // разбор: У явных оценок есть и позитив, и негатив (1 и 5 звёзд). В неявном фидбэке есть только позитивные сигналы (клик, покупка), а отсутствие сигнала неоднозначно: пользователь мог не увидеть товар, а не отвергнуть его. Поэтому нули трактуют как слабый сигнал с весом-уверенностью (confidence) и подмешивают негативные примеры, а не считают все непросмотренные позиции честным негативом.

это 9 из 54

Ещё 45 вопросов по теме — в тренажёре, с движком повторения

Прочитать разбор и ответить самому — разные навыки. В Сеньорчике вопросы идут сессиями, а движок возвращает подтемы, где вы ошибаетесь, пока они не начнут отскакивать. Бесплатно, лимит по энергии.

Частые вопросы