Improving Deep Learning For Airbnb Search

68 阅读5分钟

Improving Deep Learning For Airbnb Search

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

1. OPTIMIZING THE ARCHITECTURE

在review了深度学习一系列的进展之后,架构上最直接的优化想法是——加层。但是当继续进行添加网络和数据转化时,比如ResNet、batch norm,并没有取得收益。结论是,当模型容量足够的时候,增加层数来提升效果将不再适用。既然加深网络没用,那就寻找更加专门的结构。尝试了比如Wide&Deep这种query与lists之间的显示交叉,采用各种attention结构,希望从query的隐层集中注意力于lists隐层的某些部分,也跪了。一个成功的神经网络结构往往与业务密切相关,巨大提升往往是因为解决了base的某些缺陷,但是鉴于深度学习的不可解释性,很难说清它解决了什么问题以及我们自己的业务中有没有相似的问题可以用它解决,因此,他们摒弃了 下载论文->复现->上ab 的循环, 而基于数据驱动,users lead, model follows 。

Users lead, model follows

先量化用户问题,然后模型跟随。

我们观察到之前一系列成功的模型落地不仅与订单量的增加有关,并且伴随着平均价格的降低,数据分析发现,用户更倾向于低价的房源,然而模型能不能学到这一点并不确定。

Enforcing Cheaper Is Better

DNN的模型,它不像LR,或者GBDT可以计算特征权重,模型可解释性较差。为了让模型具有解释性,文章做了了如下改变: image.png 这个−tanh()项允许我们通过提高价格来单调地降低产出分数,从而实现更便宜更好。易于解释的w和参数b使我们能够描绘出价格的确切影响。对于参数的学习值,w=0.33和b=−0.9。把这个模型进行AB实验,发现搜索结果的平均价格低了5.7%,但代价是订单量也下降了1.5%,猜测价格特征与其他特征有着比较强的交互,导致模型欠拟合了,佐证是NDCG指标有所下降。

广义单调性

为了保留cheaper is better 同时让价格特征和其它特征进行交互。文章就开始研究一些能让输入特征单调的架构。Lattice networks提供了一种很好的解决方案,但是如果将整个结果转换成 Lattice 的话是比较麻烦的。所以文章设计了一个这样的解决方案,将price特征抽取出来,单独和price无关的特征交互。 image.png 就是说通过结构既保证了价格单调,越便宜越好,也保证了与其他特征的交互。结果也造成了订单量的下降,说明价格单调的约束过于严格。

软单调

软单调中,一般会考虑pairwise的损失。也就是说训练样本包含一个正例,一个负例在同一个query下: image.png 为了增加价格的影响,增加一个软提示“越便宜越好”,对于每个训练样本引入了表示价格高低的第二个label,这样子loss就会变成两个损失的和: image.png

从而依据最小值调整alpha参数,在线下的测试中,可以得到和Baseline一样的NDCG,这允许在不伤害相关性的情况下push “越便宜越好”的想法,在线上的A\B测试中,价格有平均3.3%的下降,在booking上又0.67%的下降。

Putting Some ICE 个体条件期望

上文中提到了,一个自相矛盾的问题,价格下降了但是用户却不喜欢了。为了探究新模型为啥效果变差了,就有必要比较两个模型之前如何利用价格特征的。但是DNN对于特征的利用性是不可解释的。

所以airbnb只能去减少DNN的可解释问题。文章没有试图就DNN的价格影响做出一般性陈述,而是着重于解释一次搜索的一次结果。借鉴了individual conditional expectation的想法,从单个搜索结果中获取列表,在保持所有其他功能不变的情况下横扫价格范围,并构建了模型得分图。 image.png 从图中可以看出之前两层的模型已经学到了cheaper was better

Two Tower Architecture

当我们采用用户搜索结果的中位数价格与他们预订的价格之间的差异,并计算出按城市分组的平均值时,就能得到图5的结果。不出所料,各城市之间存在差异。但是,与主要城市相比,尾部城市的差异要大得多。尾部城市也一般位于发展中市场。 文章就提出了另一个假设就是模型结果由头部用户所影响,而这些用户一般会对价格和质量进行一个权衡,而这个权衡一般取决于那些订单比较多的城市。而这个结果泛化到尾部城市会导致模型的失败。也就是说价格和质量以及位置是息息相关的。 一个新的想法就是模型已经学到cheaper was better,但是他可能没有理解各个位置之间的差异。这样就延伸出了三塔模型

image.png

参考

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