网站源码下载 用户注册,网络营销师证书含金量,网页制作入门,营销型的物流网站一、EmbeddingMLP模型
EmbeddingMLP 主要是由 Embedding 部分和 MLP 部分这两部分组成#xff0c;使用 Embedding 层是为了将类别型特征转换成 Embedding 向量#xff0c;MLP 部分是通过多层神经网络拟合优化目标。——用于广告推荐。 Feature层即输入特征层#xff0c;是模…一、EmbeddingMLP模型
EmbeddingMLP 主要是由 Embedding 部分和 MLP 部分这两部分组成使用 Embedding 层是为了将类别型特征转换成 Embedding 向量MLP 部分是通过多层神经网络拟合优化目标。——用于广告推荐。 Feature层即输入特征层是模型的input部分如上图的Feature#1是向上连接到embedding层而Feature #2是直接连到stacking层。——前者代表类别型特征经过one-hot编码后生成的特征向量——过于稀疏不适合直接输入网络中进行学习所以先接入embedding层转为稠密向量而后者是数值型特征。Stacking 层中文名是堆叠层也叫连接Concatenate层作用是把不同的 Embedding 特征和数值型特征拼接在一起形成新的包含全部特征的特征向量。MLP 层的作用是让特征向量不同维度之间做充分的交叉让模型抓取到更多的非线性特征和组合特征的信息使深度学习模型在表达能力上较传统机器学习模型大为增强。Scoring 层它也被称为输出层为了拟合优化目标。对于CTR 预估这类二分类问题Scoring 层往往使用的是逻辑回归模型输出层使用 sigmoid 函数作为激活函数输出一个介于 0 和 1 之间的概率值而对于图像分类等多分类问题Scoring 层往往采用 softmax 模型使用 softmax 函数作为激活函数输出每个类别的概率值。 深度学习模型DeepCrossing——一个经典的EmbeddingMLP模型结构——微软提出。属于EmbeddingMLP模型的进阶在 Embedding MLP 的基础上增加了交叉层以更好地模拟特征之间的高阶交互。
二、WideDeep模型——线性模型Wide和深度神经网络Deep
推荐算法面临一个和搜索排序系统一个类似的挑战——记忆性和泛化性的权衡。
记忆能力可以被理解为模型直接学习并利用历史数据中物品或者特征的“共现频率”的能力。也可以简单地理解成对商品或者是特征之间成对出现的一种学习由于用户的历史行为特征是非常强的特征特征之间的直接线性关联对于特征间的简单关系很有效。
泛化能力可以被理解为模型传递特征的相关性以及发掘稀疏甚至从未出现过的稀有特征与最终标签相关性的能力。对于泛化能力来说它的主要来源是特征之间的相关性以及传递捕捉复杂特征组合中的隐形关系、非线性关系。利用特征之间的传递性就可以探索一些历史数据当中很少出现的特征组合获得很强的泛化能力。
GooglePlay提出的WideDeep是比较经典的一个深度学习模型它使模型既具有想象力又具有记忆力——线性模型Wide使模型既具有记忆力和深度神经网络Deep使模型既具有泛化性。 WideDeep架构示意图
WideDeep模型的工作流程
特征工程首先对原始数据进行预处理和特征工程生成一系列可用于模型训练的特征。Wide 部分将一部分特征直接输入到线性模型中用于捕捉直接的线性关系——通常采用的是逻辑回归或线性回归模型仅考虑每个特征对目标变量的直接贡献而不考虑特征之间的交互。每个特征的权重都是独立计算的不涉及与其他特征的相互作用——可以手动设置简单的二阶特征交叉。Deep 部分将另一部分特征输入到深层神经网络中用于学习特征之间的非线性关系。本项目中输入全部特征联合训练Wide 和 Deep 两部分的输出会被合并起来通常是在最后一层通过加权求和的方式进行融合。输出层最后的输出层会根据Wide和Deep部分的融合结果生成最终的预测值。
举个简单的例子电影推荐系统——预测用户是否会喜欢一部电影。
Wide 部分
特征包括用户的年龄、性别、电影类型、导演等。
这些特征之间可能有直接的关系比如年轻观众可能更喜欢动作片。
使用Wide部分例如逻辑回归来捕捉这些直接关系。
Deep 部分
特征包括用户的观看历史、评分历史等。
这些特征之间的关系更为复杂例如用户观看历史中的模式可能是非线性的。
使用Deep部分例如多层神经网络来学习这些复杂的模式。
如何工作
输入用户特征和电影特征作为输入。
Wide 部分直接使用特征进行线性预测。
Deep 部分使用神经网络学习特征间的非线性关系。
合并Wide和Deep的预测结果在最后一层合并。
输出预测用户是否会喜欢这部电影。
结果
预测结合了记忆性Wide部分和泛化性Deep部分可以更准确地预测用户喜好。
优势能够处理简单和复杂的关系提高推荐系统的准确性。
三、DeepFM模型
DeepFM是由哈工大和华为公司联合提出的深度学习模型。DeepFM模型包含因子分解机 (FM) 和深度神经网络 (DNN)。
FM 部分处理了一阶特征每个特征的独立贡献和二阶特征交互特征之间的相互作用——相对于WideDeep中的Wide部分多出二阶特征交互的部分——可以自动捕捉所有的可能的特征二阶交互。——DeepFM用FM替换原来的Wide部分加强了浅层网络部分特征组合的能力。Deep 部分通过 MLP 处理高阶特征交互这里的高阶交互指的是通过神经网络自动学习得到的复杂特征组合。合并输出将 FM 部分的一阶和二阶特征交互与 Deep 部分的高阶特征交互结果合并得到最终的预测。 DeepFM架构示意图
DeepFM VS WideDeep
假设我们有一个推荐系统需要预测用户是否会点击某个广告。我们的特征包括用户的年龄、性别、所在城市、广告类型等。
DeepFM 的FM部分会考虑年龄与所在城市的交互效应。例如年龄较大的用户在某些城市可能更倾向于点击某种类型的广告。
Wide Deep 的Wide部分仅考虑年龄、性别、所在城市等特征各自对点击率的贡献而不考虑它们之间的交互。
DeepFM 通过FM部分捕捉特征间二阶交互效应更好处理复杂的数据关系。Wide Deep 的Wide关注每个特征一阶效应快速学习每个特征的重要性。
这两种模型各有优势数据集非常稀疏且需要捕捉复杂的特征交互那么DeepFM可能更适合;数据集包含丰富的特征并希望通过显式特征工程来捕捉特征间的交互那么Wide Deep可能更适合。
四、NeuralCF神经网络协同过滤
NeuralCF 结合了传统矩阵分解的优点记忆性和深度学习的能力泛化能力通过MLP代替内积操作来提高推荐准确性——新加坡国立学者提出。 NeuralCF的模型结构图 出自论文Neural Collaborative Filtering
最经典的是输入用户和物品id转化成One-hot编码后经过简单的Embedding后生成稠密向量然后将用户塔和物品塔拼接一起送进MLP层中充分交叉获取更高阶的特征然后输出。
双塔模型——NeuralCF 的扩展
双塔模型是在经典 NeuralCF 基础上的扩展其中增加了更多的特征信息并且在每个塔内进行了更充分的特征交叉。这种扩展能够使模型更好地理解用户和物品之间的复杂关系提高推荐的准确性。
多特征输入不仅限于用户ID和物品ID还包括其他相关的特征信息。特征交叉每个塔内的 MLP 能够处理更多特征的交叉增强模型的学习能力。独立建模用户和物品分别在独立的塔中建模最后通过某种方式如点积进行交互。
交互方式用户Embedding-物品Embedding:
如果数据集较小或者特征比较简单捕捉线性相似度使用点积可能会更有效率同时避免过拟合的风险。如果数据集较大或者特征之间存在复杂的非线性关系使用 MLP 进行交互可以更好地捕捉这些关系尽管这可能会增加计算复杂度。