Svoboda | Graniru | BBC Russia | Golosameriki | Facebook
BBC Russian

Комментарии 4

Привет, несколько вопросов.
1) Что будет лейблом при расчёте MAP@K? Переход от датасета с вложенными категориями к проставлению 0 и 1 для расчёта MAP@K не очень понятен.

2) Я правильно понял пайплайн?
1. Получение/обновление эмбеддингов постов с помощью item2vec. Видимо в оффлайне.
2. Получение краткосрочных и долгосрочных предпочтений. Я понял это как "вектор пользовотеля" через просмотренные посты. Наверное, помимо отбора постов там есть какая-то магия для получения результирующего вектора. Не возникает ли проблем при получении результирующего вектора?
3. Отбор кандидатов для пользователя с помощью краткосрочных и долгосрочных предпочтений - на выходе N векторов по числу товаров. Судя по

> с данными о краткосрочных и долгосрочных вкусах бэкенд обращается в Vector Index, где получает ближайшие посты

вы это в онлайне делаете.
4. Ранжирование xgboost-ом. Тут не очень понятно - вы ранжирование только над векторами постов делаете или что-то из фичей докидываете?

3) В feature store хранятся ID, а сами вектора предпочтений в векторной базе?

1) успехом считается попадание предложенных кандидатов в ту же группу или подгруппу что и пост, по которому мы ищем. Т.е. мы отдельно считаем map для групп и для подгрупп.

2)

2.1 получение эмбеддингов происходит в онлайне (см картинку Загрузка эмбеддингов в Vector Index)

2.2 да, плюс-минус верно, краткосрочные и долгосрочные вкусы пользователя это векторы постов. Краткосрочные вкусы это вектора постов, с которыми пользователь взаимодействовал недавно. Долгосрочные - медоиды кластеров из векторов постов, с которыми пользователь успешно провзаимодействовал за 6 месяцев.

2.3 на выходе для каждого долгосрочного и краткосрочного вкуса мы получаем по N наиболее похожи постов из Vector Index. Это происходит в онлайне.

2.4 Ранжирование происходит путем сбора набора фичей, который выходит за рамки данной статьи, вектора постов как фичи в ранкер не передаются.

3) Наш vector index позволяет искать похожие посты по id поста и по вектору поста. Для краткосрочных и долгосрочных вкусов хранимые данные в feature store отличаются:

  • для краткосрочных мы храним только ID поста,

  • для долгосрочных мы храним вектора постов-медоидов

Какой loss использовали при обучении, как я понял последовательно через модель проходит первый элемент пары, получаем embedding затем пропускаем второй элемент через сеть получаем embedding, затем считаем cosine similarity и используем какой-нибудь CosineEmbeddingLoss, были ли негативные примеры в трейне, или только позитивные ?

  • При обучении использовался триплет-лосс

  • Негативы генерируются случайным образом при обучении

Зарегистрируйтесь на Хабре, чтобы оставить комментарий