深度学习在 Airbnb 中的探索与应用

一、效果概览
深度学习在 Airbnb 中的探索与应用文章插图
分为离线和在线俩部分 。 其中 , 一个重要指标是 NDCG 标准化文档累计增益 , NDCG = DCG/IDCG。
二、模型演进
演进1:SimpleNN
超简单网络结构 , 其特点:

  • 一层隐含层 , 32个 ReLUunits
  • 所有用到的特征 GBDT 一样
  • 训练目标与 GBDT 一致 , 最小化均方误差用户预定了就是1 , 没有预定就是0
结论:
  • SimpleNN 相对 GBDT 排序效果提升较小
  • 验证 NN 的线上可行性
演进2:LambdaRankNN
深度学习在 Airbnb 中的探索与应用文章插图
网络结构保持不变:
  • 改用 pairwise 损失 , 并在训练的时候最小化 crossentropy loss
  • 使用 listing 对调带来的 delta NDCG 作为 pairwiseloss 的权重 , 得到最终的损失函数
结论:
线下小幅度提升 NDCG
线上大幅度提升
演进3:GBDT/FM NN
在研究 NN 模型的同时 , Airbnb 还探索了 GBDT 和 FM 模型 。 三者线下表现差不多 , 但是得到的排序结果却很不相同 。 所以 , Airbnb 尝试了将三种模型进行模型结构的融合 , 也算是常用的做法:
  • 将 GBDT 的每一颗树的预测结果在叶节点中的 index, 作为 categorical feature, 输入到 NN 中;
  • 将 FM 的预测点击概率结果 , 直接作为特征放到 NN 中 。
  • 单隐层全连接使用 ReLU 激活函数

深度学习在 Airbnb 中的探索与应用文章插图
结论:
  • GBDT/FM/SimpleNN 效果基本一致
  • 单纯排序结果三者差异性较大
  • 融合后线上收益较高
演进4:Deep NN
引入复杂深度模型探索特征空间:
  • 195个 features 输入 ( 还是把类别型特征 embedding 之后的 )
  • 两层 hiddenlayer。 第一层 127Units 输出 , 第二层 83Units 输出 , 使用 ReLU 激活函数 。
  • 数据量增加了10倍后效果显现

深度学习在 Airbnb 中的探索与应用文章插图
结论:
  • 离线/在线均获得较大收益
  • 离线训练量达到10亿量级时 , 训练与测试之间的效果 gap 消失
  • 强调在 DL 中数据重要性
三、失败尝试
1. 失败 Embedding List
类比 item2vec 对 list ( 这里也是指某 item ) 进行 embedding :
  • 直接使用用户 booking 顺序 , 产出 list2vec
  • 考虑现实情况 , 单条 booking 顺序中没有大量的重复数据 ( 低频触发 )
  • 考虑现实冲突 , 某个 house 一年最多 booking 365次

深度学习在 Airbnb 中的探索与应用文章插图
结论:
  • 应用于线上带来大量过拟合 , 更大规模的训练数据也无法消灭低频
  • Airbnb 的现实场景导致 item 冲突约束性 , 大量房子预订量极低
2. 尝试挽救
发现:
  • Item 预定量低频 , 但浏览量不低
  • 长时间浏览行为 , 与 booking 预定行为强相关

深度学习在 Airbnb 中的探索与应用文章插图
尝试:
  • 多任务训练 , 以预定/浏览时长为多任务目标
  • 隐层共享 , 利用 view 浏览时长数据修正过拟合 , 促进 embedding 效果

深度学习在 Airbnb 中的探索与应用文章插图
结论:
  • 线上实验 longview 大幅提升 , 预订量无显著提升
  • 人工分析 , 优先推荐:① 高端但价格高的 item② 特别而滑稽的 item③ 文字描述很长的 item
四、特征工程
1. 深度学习也要做特征工程!
认知:
1 ) GBDT 考虑的是有序分裂点 , 对归一化不敏感
【深度学习在 Airbnb 中的探索与应用】2 ) DL 对特征的绝对数值 较为敏感
  • 较大的数值变化 , 会在 BP 学习中带来较大的梯度变化
  • 较大数值在 ReLU 作为激活层时 , 甚至会导致其永久关闭
3 ) 满足一定条件的输入数据 , 会让深度学习模型表现得更好
  • 特征值映射到 [-1,+1] 区间 , 中值为0
  • 输入值尽量稠密平滑 , 去除输入毛刺点
归一化方法:
1 ) 将满足正太分布的特征归一化:
深度学习在 Airbnb 中的探索与应用文章插图
2 ) 将满足幂度分布的特征归一化:
深度学习在 Airbnb 中的探索与应用文章插图
2. 特征平滑
深度学习在 Airbnb 中的探索与应用文章插图