Improving Deep Learning For Airbnb Search(2)

34 阅读3分钟

Improving Deep Learning For Airbnb Search

说明:Airbnb KDD 2020
链接:arxiv.org/pdf/2002.05…
简介:将深度学习应用于搜索排序是Airbnb最大的提升之一。在应用了深度模型之后,有三个未来可以提升的方向:architecture、bias和cold start。

1. OPTIMIZING THE ARCHITECTURE

juejin.cn/post/726923…

2. COLD START

冷启动问题是任何推荐系统必须面对的问题,不论是用户的冷启动还是item 的冷启动。但是对大部分的推荐系统而言其实主要还是关注于item的冷启动问题,包括淘宝等。airbnb这边也是更多的关注于item的冷启动问题。

对airbnb而言使用NDCG量化预订列表在搜索结果中的位置是评价模型性能的可靠指标。airbnb关注到冷启动的问题是因为他们发现新上的list和之前存在的list会有一个6%的差距。而对于context而言,NDCG的差距则缩少在0.7%。也就是说对于模型很难去判断哪些新的list是会被用户下单的。为了验证这个问题,文章做了一个实验,就是舍弃掉所有和用户交互相关的特征,模型下降了4.5%。DNN很依赖与用户和item的交互历史信息。对于新的list而言他们是没有这部分信息的。所以迫使DNN只能去fitting新订单的平均表现。这样子就不能很好的预估哪些新订单是会被用户预定的。

Approaching Cold Start As Explore-Exploit

冷启动问题可以认为是一种E&E问题,exploit ,利用已知的比较确定的用户的兴趣,然后推荐与之相关的内容,explore,除了推荐已知的用户感兴趣的内容,还需要不断探索用户其他兴趣。排序的策略可以通过exploit 以往的订单去优化短期下单。对于长期而言则需要去explore那些新的list。

这种权衡其实就是让新list有更多的曝光机会。这样就能通过很少的代价收集到用户对新订单的反馈。airbnb通过对新订单进行加权让它有更多的曝光机会,最终是有提升了+8.5%的曝光。

单纯的采用 E&E的方案也带来了两个问题

1.搜索结果相关性的降低,短期内会降低用户体验。(新lsit的曝光会导致排序结果相关性的变化)

2.长远来看虽然提升了订单率,但是这种方案缺乏一种明确的目标定义。这样会导致有的人觉得结果好,有的人觉得结果差,不会令人满意。

Estimating Future User Engagement

在airbnb的use case里,与其把cold start当作explore-explicit的问题,不如当作是预测用户参与度的问题。因此,Airbnb在dnn里引进了一个新组块来预测用户和new listing的交互信息,在training和scoring的时候。

步骤:

(1)采样了O(100M)的搜索结果,对于每个搜索结果list,选取top 100 positions。这个list要有用户互动。

(2)用Rreal来表示item的真实ranking,算一个discounted rank

(3)对于每一个sample list,删掉用户engagement信息,用这个estimator的prediction代替。再得到一个rank信息,我们用DRpredicted来表示

(4)对每个list,计算(DRreal - DRpredicted)^2

(5)得到overall error,取平均

迭代这几步,求出engagement estimator。

这个实验效果很好,提升了14%新listing的被浏览率和14%的share rate,总预定量也提高了0.38%。

减少position bias

position feature有一个trick的地方,就是offline training的时候有position数据,但是serving的时候没有这个数据。Airbnb选择给position feature加了一个dropout,即给一定概率的文章的position feature数值设为0;一个dropout rate是0.15。

实验结果带来0.7%预定提升。伴随着预订量增加,在几轮优化之后,提升了1.8%利润。

参考

arxiv.org/pdf/2002.05… zhuanlan.zhihu.com/p/364745821 zhuanlan.zhihu.com/p/156822534