论文地址: ACM (https://dl.acm.org/doi/abs/10.1145/3394486.3403333)
1. 写在前面
许多观众和影评人会对某个导演的电影情有独钟,即使他们曾经拍过烂片,观众待他们依然如初恋,比如拍出了《阳光灿烂的日子》的姜文。
对于 Airbnb 的论文,我也抱有同样的感情。何况从 KDD'18 的最佳论文,到这两年他们将深度学习应用于搜索实践的两篇论文,篇篇佳作,字字珠玑。
本文是 Airbnb 发表于 KDD'20 的论文,是前一篇《Applying Deep Learning to Airbnb Search》的续作,讲述了他们在搜索排序模型迭代方面的尝试。第二节写得尤其好,为科学炼丹做出了良好示范!
本文,我们以论文的第二节为范本,来看看他们是如何做数据分析、如何做模型迭代的。保证原汁原味!(全文约3500字,阅读时长约 20 分钟)
前两篇论文的笔记在这里,诸位同道不妨先看一看,特别是一脉相承的《Applying Deep Learning to Airbnb Search》:
【Papernotes】(KDD'19) Applying Deep Learning to Airbnb Search
【Papernotes】(KDD'18) Real-time Personalization using Embeddings for Search Ranking at Airbnb
2. 模型优化
在正式开始之前,我们先来看一下他们的基线模型,一个双隐层的神经网络:
输入的特征是房源(listing)的基本特征,如价格、历史预订数等,以及一些类别特征的 embeddings;
两个隐藏层分别是 127 维、83 维的全连接层,使用 ReLU 作为激活函数。
这是他们上一个工作1的结论之一:加深模型对于 CNN 这样的模型是有效的优化手段,但是对于他们的场景(搜索排序),模型容量并不是问题,两个隐藏层已经足够了。
既然加深网络不是模型迭代的方向,他们开始尝试一些专用的网络架构,比如 Deep&Wide2、基于注意力机制的网络3等等。但是都失败了。
这里,他们失败的教训与洞见是:特定深度模型的成功应用,与具体业务、产品是高度绑定的。简单的拿来主义——只看到一个模型的成功,却看不到它解决了基线模型的哪些痛点——是危险的。深度学习欠解释的特点,使得理解一个模型究竟解决什么困难、又是如何解决的,变得更加困难。这又使得深度模型的迁移应用变得更加困难。
于是,他们放弃了论文驱动的模型迭代方式(下载论文->复现模型->A/B测试),坚持第一性原理,从用户第一的核心价值观出发,对模型进行迭代优化。
所谓用户第一的模型迭代方式,就是发现并量化用户的问题,以解决用户的问题为目标&