【推荐系统】RecHub推荐系统项目学习

学习总结

一、RecHub框架

在这里插入图片描述
datawhale rechub项目学习:https://github.com/datawhalechina/torch-rechub
复现的论文:https://www.wolai.com/rechub/cNwGzNJpaouirvs3b8qxN

1.1 项目结构

  • 接受pandas的DataFrame、Dict数据输入,上手成本低
  • 高度模块化,支持常见Layer,容易调用组装成新模型
    • LR、MLP、FM、FFM、CIN
    • target-attention、self-attention、transformer
  • 支持常见排序模型
    • WideDeep、DeepFM、DIN、DCN、xDeepFM等
  • 支持常见召回模型
    • DSSM、YoutubeDNN、YoutubeDSSM、FacebookEBR、MIND等
  • 丰富的多任务学习支持
    • SharedBottom、ESMM、MMOE、PLE、AITM等模型
  • GradNorm、UWL、MetaBanlance等动态loss加权机制
  • 聚焦更生态化的推荐场景
    • 冷启动
    • 延迟反馈
    • 去偏
  • 支持丰富的训练机制
    • 对比学习
    • 蒸馏学习
  • 第三方高性能开源Trainer支持(Pytorch Lighting)

1.2 数据层

(1)特征类

在这里插入图片描述

1.3 模型层

通用layer:
在这里插入图片描述
例子介绍:
在这里插入图片描述
initializer是初始化方式;vocab_size表示词表向量大小等等。

注:
(1)几乎所有模型都会用到embedding层和MLP层,可以看具体模块代码。
(2)项目中对数值型特征、类别型特征命名为sparse、dense,在很多教程中也会命名为continous、category特征等。

1.4 训练层

在这里插入图片描述

二、精排模型

2.1 DeepFM模型

python run_criteo.py --model_name deepfm

模型代码所在部分:from torch_rechub.models.ranking import WideDeep, DeepFM, DCN

2.2 DIN模型

  • DIN基于注意力机制,利用激活单元计算出用户对于不同历史商品的注意力权重,针对当前广告商品,作出更有针对性的预测。该激活单元将历史行为商品的 Embedding和候选广告商品的 Embedding作外积得到向量(是法向量)后送入MLP。这里的激活单元实际上在计算广告和历史行为 相关性,即广告物品与历史物品的相关性,也可以使用DeepFM中特征交叉方法。
  • 序列模型更注重对序列类行为的模拟和预测。如兴趣进化序列模型 DIEN 对用户购买兴趣进化过程(演化过程)的模拟。应用场景如电商平台的下次购买,视频网站的下次观看,音乐 App 的下一首歌曲等。DIEN其中改进的部分的输出是一个 h’(T) 的 Embedding 兴趣向量。
  • DIEN模型生成兴趣向量的结构是:Behavior Layer行为序列层(等同于embedding层)、Interest Extractor Layer兴趣抽取层、Interest Evolving Layer兴趣进化层。后两层都用到序列模型,比如LSTM、GRU、RNN和这两年很火的transformer。
  • DIEN也不是什么银弹,它有效的应用场景是:一是应用场景存在“兴趣的进化”。二是用户兴趣的进化过程能够被数据完整捕获。最适合业务特点和数据特点的模型才是最合适的

在阿里巴巴的应用场景下,用户的兴趣进化路径能够被整个数据流近乎完整的保留。作为中国最大的电商集团,阿里巴巴各产品线组成的产品矩阵几乎能够完整地抓住用户购物过程中兴趣迁移的过程。当然,用户有可能去京东、拼多多等电商平台购物,从而打断阿里巴巴的兴趣进化过程,但从统计意义上讲,大量用户的购物链条还是可以被阿里巴巴的数据体系捕获的。

在这里插入图片描述

三、召回模型

3.1 DSSM双塔模型

双塔模型的鼻祖。

3.2 YoutobeDNN模型

在这里插入图片描述

四、多任务模型

后面补看赖神之前的多任务直 播。
在这里插入图片描述

4.1 ESMM模型

4.2 MMOE模型

五、负样本相关

负样本:https://zhuanlan.zhihu.com/p/456088223

(正负样本的划分):https://www.zhihu.com/question/334844408

附:时间规划

  • 初级目标:使用在不同的数据集上使用模型训练,基于torch-rechub封装好的数据层和训练层,使用pytorch复现模型。
  • 高级目标:不掉包直接torch复现模型,甚至复现更多的推荐算法模型。
任务信息 截止时间
06月13日正式开始
Task01:熟悉Torch-RecHub框架设计与使用方法(2天) 直播讲解 周一周二(14号截止)
Task02:精排模型:DeepFMDIN(5天) 代码 周三~周日,6月19日周日截止
Task03:召回模型:DSSMYoutubeDNN(4天)代码 周一~周四,6月23日周四截止
Task04:多任务模型:ESMMMMOE(4天)代码 周五~周一,6月27日周一截止

Reference

[1] https://github.com/datawhalechina/torch-rechub
[2] 推荐系统(十四)多任务学习:阿里ESMM(完整空间多任务模型)
[3] 推荐系统(十五)多任务学习:谷歌MMoE(Multi-gate Mixture-of-Experts )

猜你喜欢

转载自blog.csdn.net/qq_35812205/article/details/125156074
今日推荐