范式组件02

作者: Nefelibatas | 来源:发表于2022-03-29 00:06 被阅读0次

深度矩阵分解(DMF)模型

深度矩阵分解模型(Deep Matrix Factorization Model,DMF)是以传统的矩阵分解(MF)模型为基础,再与 MLP 网络组合而成的一种模型。

DMF 模型的框架图如下所示:该模型的输入层为交互矩阵 Y,其行、列分别对应为对用户和对物品的打分,并采用 multi-hot 形式分别表征用户和物品。


Cgp9HWGRwmuAKK6MAAHkyP0qQBM202.png

Relevance measured by cosine similarity:余弦相似度计算 Latent representation:隐向量表征 Multi-layer non-linear projection:多层非线性投影 Interaction Matrix:交互矩阵 Layer1N:层1N

双塔结构

双塔结构是一种被广泛使用的采用深度模型进行表征学习的范式组合方式,因为这样的模型画出来像一个“塔”,所以称之为“双塔”。

关于双塔结构中所谓的“塔”指的是 DNN 结构,通过在模型中加入 DNN 结构实现“降维”。在双塔结构中,靠进输入侧的参数越多,靠近输出侧的参数越少。

我们主要使用“双塔”结构,各自构建两种类型的隐向量表征,例如用户和物品的隐向量表征、Query 和 Doc 的隐向量表征等,然后通过一定的计算方式(如点积)计算二者的匹配得分。

Tips:因为最后我们需要通过相对简单的计算方式,衡量两个向量之间的距离,所以两个塔输出的向量维度必须相同。而且因为双塔结构讲究两个塔之间的平衡性,所以两个塔的参数配置通常也需要保持相同。

双塔结构为什么只通过相对简单的计算方式衡量两个向量之间的距离呢?

这是因为复杂的神经网络计算一般使用离线的方式进行计算,再将双方的隐向量表征进行存储,而线上服务只计算向量之间的距离,这样就可以缩短线上服务的响应时间,从而减少线上服务的计算量。但这也不能一概而论,例如 Query 和 Doc 的匹配计算遇到长尾 Query 时,我们就需要实时计算 Query 的隐向量。

对于算法工程师而言,算法模型可谓是他们手中的一件强有力兵器。在十八般兵器中,有人使用双枪左右开弓,必然会有人使用单枪破双枪法。

神经网络协同过滤(NFC)模型

神经网络协同过滤 (Neural Collaborative Filtering, NFC) 是一个端到端的模型。

传统的矩阵分解模型(MF)。

传统的矩阵分解模型(MF)将用户物品交互矩阵分解为两个低秩稠密的矩阵 p 和 q,计算公式如下

f_{MF}(u,i|p_u,q_i) = p^T_uq_i = \sum^K_{k=1}p_{u,k}q_{i,k}

传统 MF 模型相当于把稀疏的用户和物品 ID 向量转化为了稠密的隐向量表征,模拟了浅层神经网络的作用。其中,p 代表用户的隐因子矩阵,q 代表物品的隐因子矩阵。通过这两个矩阵,我们就可以预测用户对物品的评分。

了解了传统的 MF 模型后再来看看 NCF 模型,框架如下图所示:

CioPOWGRw3GAOVpkAAHP24bLVdg958.png

Output Layer:输出层 Neural CF Layer:神经协同过滤层 mbedding Layer:表征层 Input Layer(Sparse):稀疏输入层 Training:训练 Target:目标 Score:分数 Layer1X:层1X User:用户 Item:物品 User Latent Vector:用户隐向量 Item Latent Vector:物品隐向量

模型输入端利用类 MF 的浅层神经网络将稀疏的用户和物品 ID(one-hot)转化为用户隐向量和物品隐向量。

NCF 模型整体操作过程:首先,利用类 MF 的结构获得用户和物品交互关系的隐向量表征,并加上用户画像和物品画像特征的向量表征,二者连接后作为 MLP 的输入;然后,我们利用 MLP 拟合用户和物品间的非线性关系。

对比双塔结构使用 MLP 对用户和物品的特征进行了隐向量提取,NCF 模型对 MLP 的使用有了本质变化。

NCF 模型由 MF+MLP 单塔串联组合而成,并以精确拟合匹配分数为目标。其中,MF 之后添加辅助信息(side information),MLP 用来拟合打分。

相比于 DMF 模型的双塔结构而言,NCF 模型主要使用 MLP 单塔拟合效用函数,然后产出端到端的预测结果。虽然该模型丧失了一些表征学习的灵活性,却获得了精确拟合匹配分数的能力。

神经矩阵分解(NeuMF)模型(混合结构)

神经矩阵分解 (Neural Matrix Factorization, NeuMF)模型在 NCF 模型的基础上增加了通用矩阵分解 GMF(General Matrix Factorization)部分。

CioPOWGRw6yAcaFdAAJJ9Ckf3Pc292.png

NeuMF Layer:神经矩阵分解层 Concatenation:拼接 GMF Layer:通用矩阵分解层 Element-wise Product:点积 Training:训练 Target:目标 Score:分数 MLP Layer1X:MLP层1X User:用户 Item:物品 MF User Vector:矩阵分解用户向量 MLP User Vector:MLP用户向量 MF Item Vector:矩阵分解物品向量 MLP Item Vector:MLP物品向量

图中左边为 GMF 部分,它是以用户 ID 和物品 ID 的 one-hot 形式进行输入,然后利用一层网络生成用户和物品的低阶隐向量表征,再通过向量点积和一层网络输出线性交互特征。

图中右边为多层感知器,它同样是以用户 ID 和物品 ID 的 one-hot 形式进行输入,然后经过多层网络输出非线性交互特征。最后,它将 GMF 和 MLP 的输出进行连接,并经过最后一个激活函数为 Sigmoid 的全连接层,输出推荐分数。

NeuMF 模型是在 MF 通过接入 GMF+MLP 模型并联而成,再接 FC 层进行输出。该模型。采用 GMF+MLP 的并联结构,使得模型同时具备低阶和高阶特征提取的双重能力,并以精确拟合匹配分数为目标。虽然这种并联结构不平衡,但是也有一定的好处。

说到不平衡的结构模型,其中影响最为深远的要数广深(Wide&Deep)模型了。

广深(Wide&Deep)模型(不平衡结构模型)

Output Units:输出单元 Hidden Layers:隐藏层 Dense Embeddings:稠密表征 Sparse Features:稀疏特征

Wide

属于广义线性部分,它对用户或者物品 ID 这类高频低阶特征使用少量参数即可学习,故记忆能力好;但是对没有见过的 ID 学习能力较差,故泛化能力差。这是因为特征从输入到输出比较通透,保留了大量的原始信息,因此模型捕捉的特征更加具体。

例如 58 同城 App 本地服务推荐业务中,如果训练数据中望京和酒仙桥的家政帖子共现频率较高,模型一旦记住了望京和酒仙桥这两个商圈 ID 的关联关系,那么就会在用户点击酒仙桥的家政帖子时,同时赋予望京的家政帖子更高的排序权重。而这种直接从历史数据挖掘的特征相关性,属于低层特征信息。当用户复现某个历史行为,模型能够拟合用户兴趣,这是对特征的良好记忆能力的一种体现。

Deep

属于神经网络 MLP 部分,它主要用于学习样本中的长尾部分,因为它对出现较少或者没有出现过的特征组合都能够做出预测,所以需要的人工参与较少,且泛化能力强。

例如 58 同城 App 本地服务推荐业务中,家政的帖子信息进入 MLP 经过多层信息抽取后,模型挖掘到的用户兴趣会偏向高层特征信息抽象表征。如果用户产生的历史数据没有出现过新的行为,模型能够做到非零预测,这就是对特征的良好泛化能力的一种体现。

由此可见,Wide&Deep 模型同时具备记忆能力(Memorization)和泛化能力(Generalization)。

总结:Wide&Deep 模型由 LR+MLP 两部分并联组成,综合了传统机器学习和深度学习的长处。

Wide 部分根据历史行为数据推荐与用户已有行为直接相关的物品;

Deep 部分负责捕捉新的特征组合,从而提高推荐的多样性。

相关文章

网友评论

    本文标题:范式组件02

    本文链接:https://www.haomeiwen.com/subject/gcnmjrtx.html