Page 256 - 《软件学报》2021年第12期
P. 256
3920 Journal of Software 软件学报 Vol.32, No.12, December 2021
2.2 DMF模型
为了学习用户和物品之间复杂的高阶非线性交互关系,本文提出了深度矩阵分解模型,该框架如图 1 所示.
预测评分 ˆ y 训练损失 y ui Output layer
ui
全连接 (输出层)
MLP Layer L
ReLU
Hidden layer
MLP Layer 2 (隐藏层)
ReLU
MLP Layer 1
GMF layer
Layer 1 (GMF层)
Element-
p u wise product q i
Embedding layer
用户潜在向量 物品潜在向量 (嵌入层)
P M×K={p uk} Q N×K={q ik}
0 0 0 1 0 0 ... 0 0 0 0 1 0 ... Input layer
(输入层)
User(u) Item(i)
Fig.1 Deep matrix factorization model
图 1 深度矩阵分解模型
该框架主要由为 5 个部分组成:Input Layer(输入层),Embedding Layer(嵌入层),GMF Layer(GMF 层),Hidden
Layer(隐藏层)和 Output Layer(输出层).输入层获取用户和物品数据;在嵌入层,通过嵌入技术得到用户和物品的
潜在特征向量;随后,在 GMF 层通过向量间对应元素相乘建模用户和物品的二阶交互关系;再将结果输入到隐
藏层中,利用深度神经网络对结果进行迭代训练,从而建模用户和物品之间的高阶交互关系;最后,在输出层得
到用户对物品的评分预测.下面分别对模型各个组成模块进行详细阐述.
• Input Layer(输入层)
对于用户(物品)的原始数据,一般通过编码的方式把它转换为数值数据.通常分为两步,即整数编码和 one-
hot 编码.整数编码会给每一个用户和物品都分配一个整数值,比如用 1 表示 user1,2 表示 user2.但是整数之间自
然的排序方式会让模型假设用户(物品)之间也具有某种次序关系,从而可能会影响模型的性能.所以,还需要对
整数表示进行 one-hot 编码,为每个整数值创建二值表示:除了整数的索引为 1 外,其他都是 0,即 one-hot 编码在
任意时候只有一个有效位置.本文将用户编号和物品编号视为两个不同的离散特征进行处理,并且将用户编号
和物品编号分开,分别采用 one-hot 编码进行编码.所以输入层用户表示为 001000…,其中,编码长度为用户数目
M;输入层物品表示为 01000…,其中,编码长度为物品数目 N.
• Embedding Layer(嵌入层)
从输入层得到的 one-hot 编码是高维稀疏的,会严重影响模型训练效率,所以在嵌入层通过 one-hot 编码与
潜在特征矩阵相乘将用户(物品)表示映射到低维密致空间,从而得到潜在特征向量.其中,P M×K 为用户潜在特征
矩阵,M 为用户数目,K 为潜在特征维度,K<<M.Q N×K 为物品潜在特征矩阵,N 为物品数目,K 为潜在特征维度,
K<<N.用户的 one-hot 编码与 P M×K 矩阵相乘,得到 K 维的用户潜在特征向量 p u .物品的 one-hot 编码与 Q N×K 矩阵
相乘,得到 K 维的物品潜在特征向量 q i .
• GMF Layer(GMF 层)
将嵌入层得到的潜在特征向量 p u 和 q i 对应元素相乘,得到 K 维的向量,如公式(1)所示:
s 1 =ϕ(p u ,q i )=p u :q i (1)
虽然通过内积得到用户和物品的二阶交互,但是简单的线性内积不足以建模用户和物品之间复杂的非线
性结构,所以再将内积结果输入到一层神经网络中,如公式(2)所示,由此来学习二阶交互的非线性关系,这就是
GMF 模型: