• 【推荐系统 02】DeepFM、YoutubeDNN、DSSM


    1 DeepFM

    在线广告数据集: Criteo Labs

    描述:包含数百万个展示广告的点击反馈记录,该数据可作为点击率(CTR)预测的基准。

    数据集具有40个特征,第一列是标签,其中值1表示已点击广告,而值0表示未点击广告。 其他特征包含13个dense特征和26个sparse特征。

    img

    1.1 特征工程

    • Dense特征:又称数值型特征,例如薪资、年龄。 本教程中对Dense特征进行两种操作:
      • MinMaxScaler归一化,使其取值在[0,1]之间
      • 将其离散化成新的Sparse特征
      • Sparse特征:又称类别型特征,例如性别、学历。本教程中对Sparse特征直接进行LabelEncoder编码操作,将原始的类别字符串映射为数值,在模型中将为每一种取值生成Embedding向量。

    1.2 Torch-RecHub框架

    1. Torch-RecHub框架主要基于PyTorch和sklearn,易使用易扩展、可复现业界实用的推荐模型,高度模块化,支持常见Layer,支持常见排序模型、召回模型、多任务学习;
    2. 使用方法:使用DataGenerator构建数据加载器,通过构建轻量级的模型,并基于统一的训练器进行模型训练,最后完成模型评估。

    1.3 产生背景

    DeepFM 是由华为诺亚方舟实验室在 2017 年提出的模型。

    FMFactorization Machines因子分解机)拟解决在稀疏数据的场景下模型参数难以训练的问题。FM 作为推荐算法广泛应用于推荐系统及计算广告领域,通常用于预测点击率 CTR(click-through rate)和转化率 CVR(conversion rate)。

    https://zhuanlan.zhihu.com/p/342803984

    • 解决DNN(全连接神经网络)局限性:网络参数过大,将One Hot特征转换为Dense Vector
    • FNN(前馈神经网络)和PNN(概率神经网络):使用预训练好的FM模块,连接到DNN上形成FNN模型,后又在Embedding layer和hidden layer1之间增加一个product层,使用product layer替换FM预训练层,形成PNN模型 (不懂)
      在这里插入图片描述

    2 FM 部分

    • FM Layer主要是由一阶特征和二阶特征组合,再经过Sigmoid得到 logitcs

    • 模型公式:
      -在这里插入图片描述

      FM的模型公式是一个通用的拟合方程,可以采用不同的损失函数用于解决regression、classification等问题,FM可以在线性时间对新样本作出预测.

    • 优点:

      1. 通过向量内积作为交叉特征的权重,可以在数据非常稀疏的情况下,有效地训练出交叉特征的权重(因为不需要两个特征同时不为零)
      2. 可以通过公式上的优化,得到 O(nk) 的计算复杂度,计算效率非常高
      3. 尽管推荐场景下的总体特征空间非常大,但是FM的训练和预测只需要处理样本中的非零特征,这也提升了模型训练和线上预测的速度.
      4. 由于模型的计算效率高,并且在稀疏场景下可以自动挖掘长尾低频物料,可适用于召回、粗排和精排三个阶段。应用在不同阶段时,样本构造、拟合目标及线上服务都有所不同“
    • 缺点:只能显示的做特征的二阶交叉,对于更高阶的交叉无能为力。

    3 Deep 部分

    • 模型构成:

      1. 使用全连接的方式将Dense Embedding输入到Hidden Layer,解决DNN中的参数爆炸问题
      2. Embedding层的输出是将所有id类特征对应的embedding向量连接到一起,并输入到DNN中
    • 模型公式:
      在这里插入图片描述

    4 YoutubeDNN

    YouTubeDNN 实现- 知乎

    根据 User embedding和item imbedding使用nearest neighbor search 的方法召回,在softmax采用负采样。

    输入数据高度稀疏,使用embeding和average pooling处理,得到用户的观看/搜索兴趣

    离散型数据可使用embeding处理,连续型数据可使用归一化或分桶方式处理

    • skip-gram:采用中心词预测上下文词的方式训练词向量,模型的输入是中心词,采用滑动窗口的形式获取序列样本,得到中心单词之后,根据词向量的矩阵乘法,得到中心词的词向量,然后与上下文矩阵相乘,得到中心单词与每个单词的相似度,通过softmax得到相似概率,并选择概率最大的index输出。

      将一个单词转换成one-hot向量与嵌入矩阵相乘得到嵌入向量,送进softmax得到预测结果。
      在这里插入图片描述

      构建损失函数(假设维度有10000个):

    在这里插入图片描述

    • YoutubeDNN training:右边部分类似于skip-gram,但是中心词是直接使用embedding得到,左边部分将用户的各特征向量拼接成一个大向量之后进行DNN降维

    5 DSSM

    Deep Structured Semantic Models 双塔模型

    在这里插入图片描述

    在NLP中负采样就是在不是target中采样。k一般取5-20,不能是均匀采样,均匀采样会拿到很多频率高的词,可以用下面这种方式:

    在这里插入图片描述

  • 相关阅读:
    银河麒麟v10x86或者arm离线安装服务
    Altium Designer智能粘贴命令的使用教程
    抓包工具fiddler的基础知识
    C现代方法(第18章)笔记——声明
    java ssm德育分活动报名系统springboot+vue
    重生奇迹MU召唤术师攻略(重生奇迹MU召唤技能)
    Mysql中delete from table、truncate table、drop table的区别
    Labview 2020 版 生成报表的程序,打包时, 运行 exe,出现错误
    pip换源加速下载
    零基础学网络安全要怎么学?五分钟看懂
  • 原文地址:https://blog.csdn.net/weixin_42322991/article/details/125449432