美文网首页工作生活
Applying Deep Learning To Airbnb

Applying Deep Learning To Airbnb

作者: xiiatuuo | 来源:发表于2019-06-30 16:43 被阅读0次

    背景

    Real-time Personalization using Embeddings for Search Ranking at Airbnb作为embedding的工业级应用非常经典,于是继续follow了这篇Applying Deep Learning To Airbnb Search,主要是阐述airbnb在应用深度学习进行排序的尝试和思考,重点在特征方面(预处理和重要性分析),而不是模型结构上。大家可能会觉得奇怪,深度学习不就是可以天然解决特征工程问题吗,为啥还把重点放在特征工程方向?下面一一解释。

    划重点

    参考文献对于整个论文从头到尾都有比较好的翻译和解释,我就不赘述了。我聊聊我觉得论文比较有代表性的几个点。

    1. 模型结构
    • 本身airbnb的搜索就是一个listwise类型的排序
    • 用lammdarank来直接优化ndcg
    • 对比了gbdt、gvdt+fm+nn和dnn,发现数据达到一定规模的时候,dnn表现就很好了
    1. 特征分布平滑
    • 输入nn的特征平滑分布非常重要,因为他们发现模型的参数层数越往后面越平滑
    • 标准分布就用z-score进行归一化,幂分布就用log进行平滑。
    • 如何测试呢?让某一个,然后特征数据进行n倍的放大,看ndcg的变化。
    • 同时分析特征的分布能发现一些bug或者特征提取没考虑到的地方,比如将item经纬度特征转为用户离item距离的特征就会更平滑很多。
    1. 模型超参数调整
    • Xavier初始化参数很重要
    • LazyAdamOptimizer会更快
    • Batch size设置为200,调整影响不大
    • Dropout没啥用
    1. 特征重要性分析
    • 分数分解,直接把分数分解到特征上,但是有非线性激活函数存在,这种分析不对
    • 单特征法,去掉一个特征看模型变化,大概能观察,但是也不确定
    • 随机打乱,对某个特征的值打乱观察最后的结果变化,不好说
    • topbot分析,就是对结果排序,分析top和bot的item对应特征的取值分布,来比较,证明有效
    1. 失败的尝试
    • id直接编码,过拟合,因为id embedding需要比较多的数据才能更好的学习,但是booking数据太少了,直接优化booking就过拟合了
    • 多任务学习,只提升了long view,booking并没提高

    参考文献

    深度学习在 Airbnb 中的探索与应用
    论文阅读之“Applying Deep Learning To Airbnb Search”
    Airbnb: 深度学习在搜索排序业务中的探索与演进(二)

    相关文章

      网友评论

        本文标题:Applying Deep Learning To Airbnb

        本文链接:https://www.haomeiwen.com/subject/qvebcctx.html