Airbnb 召回算法#

Note

Airbnb 发表的 《Real-time Personalization using Embeddings for Search Ranking at Airbnb》很经典,其中介绍了 listing embedding(基于点击找出相似房源) 和 user/listing-type embedding(基于预定找出用户长期偏好) 两种召回方法。

Listing embedding#

这是一个 i2i 的召回

Near#

类似于 word2vec,将用户点击序列看成是一个句子,认为滑动窗口的中心 item 与滑动窗口的其他 items 是相似的。
另外,因为每个预定会话中只有最后一个房源是被预定的房源,为了将这个预定行为引入目标函数,不管这个被预定房源在不在 word2vec 滑动窗口内,都假设这个被预定房源与滑动窗口的中心房源是相关的。

Far#

绝大多数负样本还是随机采样生成的。但是,Airbnb 发现,用于点击 listing 多是同城的,随机采样的负样本多是异地的。为此,Airbnb 还增加了同一地区的随机负样本作为 hard negative。

Embedding#

类似于 word2vec

loss#

sampled softmax loss

User/listing-type embedding#