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 模型:
   251   252   253   254   255   256   257   258   259   260   261