@互联网大厂推荐算法实战

想法

  • 作者知乎上面的文章合理,值的一看,用心的是书中所有的图都是统一的风格绘制。

阅读记录


推荐算法的"五环之歌"

#card 第一维度 记忆与扩展

  • 记忆与扩展是推荐系统的两大永恒主题。推荐模型要能记住高频、常见模式以应对“红海”​,也能够扩展发现低频、小众模式以开拓“蓝海”​。

  • 这个观点在3.1节讲Embedding的前世今生时已经提到过,4.2.3节将会讲到,经典的Wide & Deep模型就是记忆与扩展在模型设计中的体现。

#card 第二维:Embedding

  • Embedding技术将推荐算法由根据概念的精确匹配(生搬硬套)升级为基于向量的模糊查找(举一反三)​,极大增强了模型的扩展能力,是推荐系统中所有深度学习模型的基础。

  • 将特征、函数转化为待优化变量

  • CTR 从精确匹配到模糊搜索

#card 第三维 高维、稀疏的类别特征

  • {{embed 稀疏的类别/ID类特征,稀疏地存储、传输、运算,提升运算效率
    }}

  • 数值特征离散化分桶

    • 为什么不用“特征是用户过去1小时观看的视频数,数值是3”这个方案,而是采用“特征是用户过去1小时观看小于10个视频,数值是1”的方案?#card

      • 增加模型鲁棒性

      • 减少数据稀疏

      • 将连续数值特征变换为离散特征,相当于将特征变换到更高维度的空间,更有利于模型对特征的进行区分(尤其对于线性模型)。

    • 特征和目标不是线性关系

    • LR 预测时只需要累加不需要做乘法

    • 模型存储小以及线上预测速度快

  • [[Parameter Server]] 解决存储问题和预测问题

    • 同步 batch 中覆盖的及少数特征
  • [[FTRL]] 每一维特征自适应调整学习率,[[DIN]] 每维特征自适应调节正则系数。

#card 第四维 特征交叉

  • 高阶交叉 DNN

  • 混合交叉 [[Wide&Deep]] 记忆和扩展

    • [[DCN]]浅层高阶交叉没有太多意义

#card 第五维 Field & Pooling 特征集合/用户行为序列建模

  • 解决特征直接 concat 问题后维度过高问题,同一个 Filed 的 Feature Embedding Pooling 成 Field Embedding

  • Pooling 方法

    • mean max

    • [[NFM]] Bi-interaction

    • 加权平均 Attention

    • 时序特征 RNN

      • RNN 等时间间隔
  • 推荐系统的核心任务是猜测用户喜欢什么,而用户在App内部的各种行为(比如浏览、点击、点赞、评论、购买、观看、划过)组成的序列,隐藏着用户最真实的兴趣,是尚待我们挖掘的宝藏。

  • 因此,基于用户行为序列的兴趣建模是推荐模型的重中之重。用户行为序列数据量大(短期行为几十、上百,长期行为成千上万)​,单个行为包含的信息有限而且随机性强,将这些行为序列压缩成一个或几个固定长度的用户兴趣向量绝非易事。