Ранжирование. 🟠 medium
🧑💻 Как же мы можем победить проблемы из предыдущего поста, который был посвящен Pointwise подходу? Напомню, что мы, во-первых, хотим именно прогнозировать значение релевантности (а не просто брать косинус) и, во-вторых, обращать внимание на контекст товаров.
Существуют также Pairwise (попарный) и Listwise (списочный) подходы.
🧑💻 Из названий можно догадаться, что в случае pairwise-подхода мы семплируем пары товаров и обучаем модель прогнозировать релевантность элементов в паре. Как их собрать, в целом, очевидно: разметить похожие записи, а потом насемплировать непохожие записи.
Также можно обучать модель максимизировать разницу между positive и negative семплами:
P(f(X, Xi) > f(X, Xj)) <= 1 - вероятность отранжировать Xi элемент выше элемента Xj.
Какие модели? RankNet, MART, Lambda SMART, KNRM...
🧑💻 Listwise подход предполагает одновременное ранжирование всех элементов базы. Звучит как что-то очень сложное и не очень эффективное. Конечно, этот вариант вряд ли можно применить в качестве кандидатной модели, однако, в качестве реранжирующей модели этот подход точно заслуживает внимания.
Плюс этого подхода в том, что мы по максимуму учитываем контекст в базе, то есть взаимоотношения между всеми позициями. Например, мы можем идти по "кандидатам" при помощи LSTM, Attention или их модификаций и для каждой позиции выдавать скор релевантности.
Какие модели? DLCM, SetRank...
😢 Ну как? Готовы к харду?
#Ботаем
Post #694
1.13K
- 🔥 8
- ❤ 3
- 👍 1