Назад к подготовке

Эмбеддинги пользователей для matching-рекомендаций

Как обучить эмбеддинги пользователей для matching: какую архитектуру, loss и target выбрать, если пользователям рекомендуются другие пользователи?

Ответить самому

Сначала сформулируйте ответ как на собеседовании, затем откройте разбор и оцените себя.

Загрузка

Короткий ответ

Подходит two-tower/siamese или metric learning: encode каждого пользователя, score пары через dot/cosine или learned head. Target лучше строить не только по one-sided likes, а по reciprocal match, диалогу, ответу или другому mutual outcome с учетом exposure bias.

Полный разбор

Для user-to-user matching естественны two-tower или siamese architectures: одна сеть кодирует каждого пользователя в общий embedding space, а пары оцениваются dot product, cosine similarity или небольшим interaction head. Loss может быть contrastive, triplet, sampled softmax/BPR-style ranking или binary cross-entropy по парам.

Ключевой вопрос - что считать positive. One-sided like удобен, но может оптимизировать показ “самых желанных” профилей и ухудшить reciprocal outcome. Лучше смотреть mutual match, reply, conversation start, meaningful interaction, retention или weighted target из нескольких событий. Негативы должны учитывать exposure: если пользователь не видел профиль, это не настоящий negative.

В serving нужны constraints: география, активность, safety, diversity, freshness, exposure caps и exploration. Для matching особенно важно не только “кого я хочу лайкнуть”, но и вероятность взаимного результата и качество пары для обеих сторон.

Теория

Reciprocal recommendation оптимизирует outcome пары, а не только preference одной стороны.

Типичные ошибки

  • Учиться только на one-sided likes.
  • Считать unseen pairs негативами.
  • Игнорировать attractiveness/popularity bias и exposure.

Как отвечать на собеседовании

  • Рано скажите, что mutual match лучше one-sided like.
  • Назовите two-tower/siamese и contrastive/ranking losses.