«上一篇 下一篇»
  计算机工程  2021, Vol. 47 Issue (8): 54-61  DOI: 10.19678/j.issn.1000-3428.0058631
0

引用本文  

刘峰, 王宝亮, 潘文采. 基于网络表示学习与深度学习的推荐算法研究[J]. 计算机工程, 2021, 47(8), 54-61. DOI: 10.19678/j.issn.1000-3428.0058631.
LIU Feng, WANG Baoliang, PAN Wencai. Research on Recommendation Algorithm Based on Network Representation Learning and Deep Learning[J]. Computer Engineering, 2021, 47(8), 54-61. DOI: 10.19678/j.issn.1000-3428.0058631.

基金项目

赛尔网络下一代互联网技术创新项目(NGII20160206)

作者简介

刘峰(1963-), 男, 副研究员, 主研方向为信号与信息处理;
王宝亮, 高级工程师;
潘文采, 硕士研究生

文章历史

收稿日期:2020-06-15
修回日期:2020-08-08
基于网络表示学习与深度学习的推荐算法研究
刘峰1 , 王宝亮1 , 潘文采2     
1. 天津大学 信息与网络中心, 天津 300072;
2. 天津大学 电气自动化与信息工程学院, 天津 300072
摘要:针对传统基于协同过滤的推荐算法信息提取能力有限的问题,提出基于网络表示学习的卷积协同过滤推荐算法。将二分网络分成物品与用户同质网络,在各自的同质网络上使用GraphSAGE模型得到融合网络空间信息和用户与物品属性信息的矩阵。在此基础上,利用外积运算丰富用户和物品特征向量各维度的相关表示,通过卷积神经网络训练物品和用户的交互信息得到算法模型。实验结果验证了该算法的有效性,且相比ConvNCF算法,其在Movielens数据集上HR@5和NDCG@5分别提升了1.89和2.19个百分点,在Last.fm数据集上HR@5和NDCG@5分别提升了1.09和2.32个百分点。
关键词推荐算法    网络表示学习    深度学习    卷积神经网络    协同过滤    
Research on Recommendation Algorithm Based on Network Representation Learning and Deep Learning
LIU Feng1 , WANG Baoliang1 , PAN Wencai2     
1. Information and Network Center, Tianjin University, Tianjin 300072, China;
2. School of Electrical Automation and Information Engineering, Tianjin University, Tianjin 300072, China
Abstract: The traditional recommendation algorithms based on collaborative filtering information are faced with the bottleneck of the information extraction capability. To address the problem, a recommendation algorithm based on convolution collaborative filtering for network representation learning is proposed. The algorithm decomposes the bipartite network into a homogenous network of users and items, and then uses the GraphSAGE algorithm for the two homogenous networks to obtain feature vectors. On this basis, the outer product operation is performed to enrich the relevant representation of each dimension of the user and item feature vectors. Finally, the convolutional neural network is used to train the interaction information between the item and the user to obtain the algorithm model. The experimental results show that the algorithm is effective, compared with the ConvNCF algorithm, the proposed algorithm improves HR@5 by 1.89 percentage point and NDCG@5 by 2.19 percentage point on the Movielens data set. The improvement of HR@5 is 1.09 percentage point and that of NDCG@5 is 2.32 percentage point on the Last. fm data set.
Key words: recommendation algorithm    Network Representation Learning(NRL)    Deep Learning(DL)    Convolutional Neural Network(CNN)    collaborative filtering    

开放科学(资源服务)标志码(OSID):

0 概述

随着互联网技术的高速发展,人类社会进入了信息爆炸的时代。为缓解信息过载问题,对推荐系统的研究迫在眉睫。推荐系统主要根据用户行为推荐用户偏好的内容[1],在电子商务[2]、新闻[3]、短视频[4]等领域发挥着重要作用。

用户-物品推荐是推荐系统比较常见的运用,其对应于图模型中的二部图。大多数网络表示学习法不能直接应用在二部图模型中研究同质网络问题。网络表示学习法主要构建适合处理节点类型较多的网络知识图谱进而解决异质网络问题,而二部图模型缺乏针对性。文献[5]提出基于图模型的推荐算法可以通过随机游走理论解释,但该算法时间复杂度较高且不能体现用户节点与物品节点的差异性。

将网络表示学习法运用到推荐算法中具有较好的效果[6]。传统网络表示学习法是根据一定的假设构造矩阵,保留了网络结构信息的矩阵,进一步得到节点的低维特征向量,如LLE[7]、IsoMap[8]、Laplacian Eigenmap[9]等方法。以上算法虽然在小网络上具有较好的效果,但时间复杂度较高,在大规模网络上应用困难。近年来,人们提出用于学习图的卷积神经网络结构。

推荐算法需考虑用户与物品大量交互和物品自身属性的丰富性问题。基于领域的推荐算法相似度表达简单;基于矩阵分解的推荐算法相似度表达没有考虑到用户与物品的多维特征;基于协同过滤的推荐算法不能充分提取信息。因此,利用多维特征提高推荐算法的表示能力已成为需要研究的问题。

本文提出基于网络表示学习的卷积协同过滤推荐算法。将二分网络分成用户与物品两个同质网络,并在各自网络上利用GraphSAGE模型进行训练得到两类节点的嵌入表示。在此基础上,采用外积运算得到两类节点的关系矩阵,最终通过卷积神经网络捕捉特征中每一维的交互关系完成推荐任务。

1 本文提出的推荐算法 1.1 GraphSAGE模型

通过使用GraphSAGE[10]模型完成网络表示学习的任务。GraphSAGE模型用于监督式学习和非监督式学习,还可以选择是否使用节点的属性进行训练。该方法适于解决外部信息多样的推荐问题,对于将图加入到新节点时不用重新训练整个模型,提高算法的泛用性。

GraphSAGE模型是针对同质图问题进行构建的,通过节点的属性信息和网络结构信息生成节点的嵌入表示。嵌入表示是每个节点学习各自的聚合函数,通过该函数聚合节点的邻域信息。该算法的前向传播分为采样、聚合、预测3个步骤[10]

在聚合和预测时,每阶邻居节点通过使用不同的函数聚合邻居节点特征,将目标节点特征表示和邻居节点聚合属性连接后通过非线性变换得到目标节点的更新嵌入表示,所有节点逐层进行迭代。该算法提出均值聚合函数(Mean Aggregator)、LSTM Aggregator、池化聚合函数(Pooling Aggregator)。均值聚合函数对采样邻居节点特征向量的每个维度求均值,作为目标节点的特征向量;LSTM Aggregator[11]具有较强的数据表达能力,但对数据顺序敏感。池化聚合函数(Pooling Aggregator)通过对目标节点的邻居节点做非线性变换并进行池化操作。GraphSAGE前向传播算法伪代码如算法1所示。

算法1  GraphSAGE前向传播算法

输入  图$ G\left(V, E\right) $,节点特征向量$ \{{\boldsymbol{x}}_{v}, \forall v\in V\} $,非线性函数$ \sigma $,节点连接权重矩阵$ {\boldsymbol{W}}^{k}, \forall k\in \{\mathrm{1, 2}, \dots , K\} $,聚合深度$ K $,聚合函数$ \mathrm{A}\mathrm{G}\mathrm{G}\mathrm{E}\mathrm{R}\mathrm{G}\mathrm{A}\mathrm{T}{\mathrm{E}}_{k}, \forall k\in \left\{\mathrm{1, 2}, \dots , K\right\} $,邻居函数$ N $

输出  节点嵌入表示$ {z}_{v} $

1. $ {\mathrm{h}}_{\mathrm{v}}^{0}\leftarrow {\mathrm{x}}_{\mathrm{v}}, \forall \mathrm{v}\in \mathrm{V} $

2. for $ \mathrm{k}=\mathrm{1, 2}, \dots , \mathrm{K} $ do

3. for $ \mathrm{v}\in \mathrm{V} $ do

4. $ {\mathrm{h}}_{\mathrm{N}\left(\mathrm{v}\right)}^{\mathrm{k}}\leftarrow \mathrm{A}\mathrm{G}\mathrm{G}\mathrm{R}\mathrm{E}\mathrm{G}\mathrm{A}\mathrm{T}{\mathrm{E}}_{\mathrm{k}}\left(\right\{{\mathrm{h}}_{\mathrm{u}}^{\mathrm{k}-1}, \forall \mathrm{u}\in \mathrm{N}\left(\mathrm{v}\right)\left\}\right) $

5. $ {\mathrm{h}}_{\mathrm{v}}^{\mathrm{k}}\leftarrow \mathrm{\sigma }({\mathrm{W}}^{\mathrm{k}}\cdot \mathrm{C}\mathrm{O}\mathrm{N}\mathrm{C}\mathrm{A}\mathrm{T}({\mathrm{h}}_{\mathrm{v}}^{\mathrm{k}-1}, {\mathrm{h}}_{\mathrm{N}\left(\mathrm{v}\right)}^{\mathrm{k}}\left)\right) $

6. end for

7. $ {\mathrm{h}}_{\mathrm{v}}^{\mathrm{k}}\leftarrow {\mathrm{h}}_{\mathrm{v}}^{\mathrm{k}}/\left|\right|{\mathrm{h}}_{\mathrm{v}}^{\mathrm{k}}|{|}_{2}, \forall \mathrm{v}\in \mathrm{V} $

8. end for

9. $ {\mathrm{z}}_{\mathrm{v}}\leftarrow {\mathrm{h}}_{\mathrm{v}}^{\mathrm{K}}, \forall \mathrm{v}\in \mathrm{V} $

其中,$ \{{h}_{u}^{k-1}, \forall u\in N(v\left)\right\} $表示在k-1层中节点$ v $的邻居节点特征,$ {h}_{N\left(v\right)}^{k} $表示在第k层,节点$ v $的邻居节点特征聚合表示,$ {h}_{v}^{k} $表示在第k层节点$ v $的特征。

对于反向传播部分,采用非监督学习方式。参考SkipGram模型,采用基于图的损失函数使相邻节点有更相似的特征表达,损失函数如式(1)所示:

$ \begin{array}{l}{L}_{G}\left({z}_{u}\right)=-\mathrm{e}\mathrm{x}\mathrm{p}\left(\sigma \left({z}_{u}^{\mathrm{\top }}{z}_{v}\right)\right)-\\ Q\cdot {E}_{{v}_{n}\sim {P}_{n}\left(v\right)}\mathrm{e}\mathrm{x}\mathrm{p}\left(\sigma \left(-{z}_{u}^{\mathrm{\top }}{z}_{{v}_{n}}\right)\right)\end{array} $ (1)

其中,$ {z}_{u} $为节点$ u $通过GraphSAGE生成的嵌入表示,节点$ v $为节点$ u $k层采样内得到的邻居,$ \sigma $为sigmoid函数,$ {P}_{n} $为负采样的概率分布,$ Q $为负样本数目。

1.2 算法的设计与实现 1.2.1 算法的整体设计

对于用户与物品二分网络的问题,本文算法将二部图分解成物品与物品的同质网络和用户与用户的同质网络,利用GraphSAGE模型将用户的网络特征结构和属性特征融合,得到具有相同维度的嵌入表达。对用户与物品的特征向量进行外积运算,即通过矩阵表示用户与物品特征每个维度之间的关系。最终通过卷积神经网络提取物品与用户的潜在关系。本文算法流程如图 1所示。

Download:
图 1 本文推荐算法流程 Fig. 1 Procedure of the proposed recommendation algorithm

在用户与物品推荐场景下,通常物品和用户的属性信息和物品与用户的交互信息是已知的。在这种环境下,通过图的结构来表示它们之间的关系。用户和物品节点是图的节点,物品与用户的交互关系是图的连边。通过这些映射就形成了物品与用户的二部图模型。假设推荐场景中包含$ m $个用户、$ n $个物品,用户节点集合用$ U=\left\{{u}_{1}, {u}_{2}, \cdots , {u}_{m}\right\} $表示,物品节点集合用$ V=\left\{{v}_{1}, {v}_{2}, \cdots , {v}_{n}\right\} $表示。上述推荐问题对应的用户-物品二部图表示为$ G=\left(U, V, E, \boldsymbol{W}\right) $$ E $为图$ G $中所有边的集合,$ {e}_{ij} $表示节点$ {u}_{i} $$ {v}_{j} $的连边;$ \boldsymbol{W} $为图$ G $中用户与物品的交互权重矩阵,$ {w}_{ij} $为图$ G $$ {e}_{ij} $对应的权重。

同质网络问题包括用户网络和物品网络两部分。以物品网络为例,不同的物品有着相似的适用群体,如乒乓球和球拍有很强的关联性。对于用户网络,如果两个用户都是运动爱好者,则两者有着相似的爱好。因此,同质网络也有着深刻的联系。

将用户-物品二部图分解为两个同质图。对于图$ G $,定义用户节点的一阶相似度$ {w}_{ij}^{U} $为:

$ {w}_{ij}^{U}=\sum\limits_{k\in V}{w}_{ik}{w}_{jk} $ (2)

定义物品节点的一阶相似度$ {w}_{ij}^{V} $为:

$ {w}_{ij}^{V}=\sum\limits_{k\in U}{w}_{ki}{w}_{kj} $ (3)

得到$ \left|V\right|\times \left|V\right| $维的物品相似度矩阵$ {\boldsymbol{W}}^{V}=\left[{w}_{ij}^{V}\right] $$ \left|U\right|\times \left|U\right| $维的用户相似度矩阵$ {\boldsymbol{W}}^{U}=\left[{w}_{ij}^{U}\right] $,根据$ {\boldsymbol{W}}^{V} $和W^U构建用户同质图$ {G}^{U} $和物品同质图$ {G}^{V} $。在使用$ {\boldsymbol{W}}^{U} $$ {\boldsymbol{W}}^{V} $构建用户同质图与物品同质图之前,根据$ {\boldsymbol{W}}^{U} $$ {\boldsymbol{W}}^{V} $中权重分布情况适当去掉权重过低的边,避免噪声干扰影响后续计算结果。

构建用户及物品属性特征需考虑用户及物品的属性信息类型。对于结构化数据,将其中的非离散数据离散化,进行one-hot编码得到特征编码;对于非结构化数据,若为本文信息常使用TF-IDF[12]或LDA算法[13]进行结构化处理,若为音频、视频、图像等信息则使用相对应的深度学习方法转化为结构化数据。通过GraphSAGE模型得到的用户属性特征矩阵$ {\boldsymbol{A}}^{U} $、物品属性特征矩阵$ {\boldsymbol{A}}^{V} $转换为用户特征矩阵$ {\boldsymbol{M}}^{U} $$ {\boldsymbol{M}}^{V} $,表示如下:

$ {\boldsymbol{M}}^{U}={F}_{\mathrm{G}\mathrm{r}\mathrm{a}\mathrm{p}\mathrm{h}\mathrm{S}\mathrm{A}\mathrm{G}\mathrm{E}}({G}^{U}, {\boldsymbol{A}}^{U}) $ (4)
$ {\boldsymbol{M}}^{V}={F}_{\mathrm{G}\mathrm{r}\mathrm{a}\mathrm{p}\mathrm{h}\mathrm{S}\mathrm{A}\mathrm{G}\mathrm{E}}({G}^{V}, {\boldsymbol{A}}^{V}) $ (5)

假设得到的嵌入表示维度都为$ t $,则可以表示用户特征矩阵$ {\boldsymbol{M}}^{U}\in {\mathbb{R}}^{m\times t} $和物品特征矩阵$ {\boldsymbol{M}}^{V}\in {\mathbb{R}}^{n\times t} $

利用外积运算得到用户与物品特征交互矩阵,对于用户$ \mathrm{u} $与物品$ \mathrm{i} $$ {\boldsymbol{m}}_{\mathrm{u}}^{U} $表示用户$ \mathrm{u} $的特征向量,$ {\boldsymbol{m}}_{\mathrm{i}}^{V} $表示物品$ \mathrm{i} $的特征向量,则$ {M}_{\mathrm{u}, \mathrm{i}} $的计算公式如下:

$ {M}_{\mathrm{u}, \mathrm{i}}={m}_{\mathrm{u}}^{U}\otimes {m}_{\mathrm{i}}^{V}=\left[\begin{array}{cccc}{m}_{\mathrm{u}1}^{U}{m}_{\mathrm{i}1}^{V}& {m}_{\mathrm{u}1}^{U}{m}_{\mathrm{i}2}^{V}& \cdots & {m}_{\mathrm{u}1}^{U}{m}_{\mathrm{i}t}^{V}\\ {m}_{\mathrm{u}2}^{U}{m}_{\mathrm{i}1}^{V}& {m}_{\mathrm{u}2}^{U}{m}_{\mathrm{i}2}^{V}& \cdots & {m}_{\mathrm{u}2}^{U}{m}_{\mathrm{i}t}^{V}\\ ⋮& ⋮& & ⋮\\ {m}_{\mathrm{u}t}^{U}{m}_{\mathrm{i}1}^{V}& {m}_{\mathrm{u}t}^{U}{m}_{\mathrm{i}2}^{V}& \cdots & {m}_{\mathrm{u}t}^{U}{m}_{\mathrm{i}t}^{V}\end{array}\right] $ (6)

在协同过滤中,通常使用矩阵分解表示物品与用户的关系并对物品与用户的关系做内积,只使用$ {\boldsymbol{M}}_{u, i} $中对角线上的信息。因多层感知机(Multilayer Perceptron,MLP)算法在理论上可以拟合任何函数关系,但是需要大量数据进行训练。在用户与物品推荐系统中,每个用户的行为信息是有限的,所以本算法未采用直接拼接用户、物品特征后通过MLP进行学习的方案。利用有限数据训练的深层网络会降低其性能,且很难保证MLP收敛到真实模型。同时在实验部分,直接拼接用户、物品特征不经过卷积神经网络训练,直接通过MLP进行对比实验,进一步说明加入卷积神经网络增强了算法的效果。

本算法使用外积对物品与用户的信息交互进行建模,并利用卷积神经网络进行训练,减少了训练所需数据量的同时也减少了模型中需要训练的参数。

1.2.2 卷积神经网络结构设计

卷积神经网络(Convolutional Neural Network,CNN)模型中的参数定义比传统模型更复杂,其参数设计的一般规律可总结为以下4个方面:

1)卷积层一般使用较小的卷积核,卷积核越大,输出的特征图越小,难以提取数据的特征,而且卷积核越小,相应的参数也越小。

2)卷积步长一般设置较小,便于更好地提取特征。

3)池化层常使用2×2的池化窗口。池化层的作用是对输入数据进行空间降维,当池化操作过大时,数据信息易丢失,最终导致网络性能下降。

4)全连接层的层数一般不宜超过3层,全连接层数越多,训练难度越大,越容易造成过拟合和梯度消散。

本模型的CNN部分如图 2所示。采用常见的卷积网络模型进行设计,为避免丢失过多的结构信息,没有使用卷积层和池化层将矩阵数据压成一维。模型由3层全连接层和6层卷积层组成,卷积核大小均为3×3,步长为1×1。为了使输入输出的特征图大小不变,将进行填充操作。每2层卷积层后加入池化层进行最大值池化,池化核大小为2×2,步长为2×2。对特征图进行下采样,并在之后2个卷积层中将通道数翻倍,以此类推,在最后的卷积层添加Flatten层将数据压平并连接MLP网络,逐渐将输出维度缩小到一维。整个流程用式(7)表示,其中$ {\widehat{y}}_{\mathrm{u}\mathrm{i}} $为最终神经网络的输出。

$ {\widehat{y}}_{\mathrm{u}\mathrm{i}}=\sigma \left({w}_{n}^{\mathrm{\top }}\right(\sigma \left({w}_{n-1}^{\mathrm{\top }}\right(\cdots \sigma \left({w}_{1}^{\mathrm{\top }}\mathrm{C}\mathrm{N}\mathrm{N}\right({M}_{\mathrm{u}, \mathrm{i}})+{b}_{1})\mathrm{ }\cdots )+{b}_{n-1}))+{b}_{n}) $ (7)
Download:
图 2 卷积神经网络示意图 Fig. 2 Schematic diagram of convolutional neural network

其中,$ \sigma $为非线性函数,除最后一层全连接层为sigmoid激活函数外,其余所有卷积层与全连接层均使用ReLu激活函数。总体的模型参数如表 1所示。

下载CSV 表 1 卷积神经网络部分模型参数 Table 1 Convolutional neural network partial model parameter
1.2.3 损失函数设计

模型损失函数主要是平方损失函数,定义该函数的前提是观察的结果服从高斯分布。在实际问题中,用户与物品的交互信息不一定服从高斯分布。本算法采用二分类的思想,将用户与物品的关系采用“0”和“1”表示,0表示不相关,1表示相关。$ {\widehat{y}}_{\mathrm{u}\mathrm{i}} $表示卷积网络的输出,代表预测物品$ \mathrm{i} $与用户$ \mathrm{u} $相关的可能性。为了使$ {\widehat{y}}_{\mathrm{u}\mathrm{i}} $具有概率性的含义,将其取值范围限制在[0, 1],因此在神经网络的最后一层激活函数选用sigmoid函数,使用的损失函数如式(8)所示:

$ L=-\sum\limits_{(\mathrm{u}, \mathrm{i})\in Y\bigcup {Y}^{-}}{y}_{\mathrm{u}\mathrm{i}}\mathrm{e}\mathrm{x}\mathrm{p}{\widehat{y}}_{\mathrm{u}\mathrm{i}}+(1-{y}_{\mathrm{u}\mathrm{i}})\mathrm{e}\mathrm{x}\mathrm{p}\mathrm{ }(1-{\widehat{y}}_{\mathrm{u}\mathrm{i}}) $ (8)

其中,$ Y $为正采样集合,$ {Y}^{-} $为负采样集合,$ {y}_{\mathrm{u}\mathrm{i}} $表示用户$ \mathrm{u} $与物品$ \mathrm{i} $的联系,$ {\widehat{y}}_{\mathrm{u}\mathrm{i}} $表示卷积网络最后的输出。

最终模型训练时采用Adam优化算法[14],模型在MLP部分添加Dropout层以解决训练过拟合的问题[15],增强模型泛化能力。

2 实验与结果分析 2.1 实验数据集

Movielens-100k数据集包含用户提供的电影评分数据。该数据集包括10万组用户电影评分信息,评分为1~5的整数,以及用户的性别、年龄等类别标签信息。

Last.fm-2k数据集包括近10万组用户对歌手的收听信息,用户对某歌手的关系权值是用户对该歌手所有作品的播放次数,还有1万组用户间好友关系,以及近20万组用户对歌手添加的标签信息。Movielens和Last.fm的基本统计信息如表 2所示。

下载CSV 表 2 实验数据集信息统计 Table 2 Experimental data set information statistics
2.2 对比算法

为验证本文算法的有效性,实验部分选取了具有代表性的ItemKNN[16]、BPR[17]、MF[18]、NeuMF[19]、ConvNCF[20]算法作为对比算法。

2.3 实验设置

实验在ubuntu-16.04环境下进行,使用python-3.6.5开发,使用的库包主要为numpy-1.14.3、networkx-2.3、keras-2.0.5、sklearn-0.20.0。

模型训练时需要提供正负样本进行学习,本文对Movielens与Last.fm数据集进行相同的处理。在排除实验测试集所需正样本后,对考虑每一位用户,假设其包含的正样本数为n,设定负采样系数为ns。对于该用户将从其没有发生过交互的物品集中随机抽取ns×n个物品作为负样本,保证对于每个用户其正负样本比例都是一样的,以下实验数据中如没有特殊说明ns的取值均为4。将全部样本的90%作为训练集,10%作为验证集。

2.4 实验指标

为验证算法在推荐问题下的性能,选用HR@k与NDCG@k作为评价指标,以综合衡量算法结果在无序评价指标和有序评价指标下的性能。

1)召回率  

$ R\left(\mathrm{u}\right) $是测试集上为用户u产生的推荐列表,$ T\left(\mathrm{u}\right) $是用户发生过交互行为的物品列表。召回率定义为推荐列表中用户最终发生交互的物品在测试集中的占比,计算公式如下:

$ {R}_{\mathrm{e}}=\frac{\sum\limits_{u\in U}\left|R\left(\mathrm{u}\right)\bigcap T\left(\mathrm{u}\right)\right|}{\sum\limits_{u\in U}\left|T\left(\mathrm{u}\right)\right|} $ (9)

$ {R}_{\mathrm{e}} $值越大,表示推荐算法的召回率越高。由于$ {R}_{\mathrm{e}} $的值与推荐列表的长度密切相关,因此常写作$ {R}_{\mathrm{e}} $@k以直接表明条件设置,表示为HR@k。

2)归一化折损累计增益  

归一化折损累计增益(Normalized Discounted Cummulative Gain,NDGG)对推荐结果在列表中的排名增加了惩罚,计算公式如下:

$ {D}_{k}=\sum\limits_{i=1}^{k}\frac{{2}^{\mathrm{r}\mathrm{e}{\mathrm{l}}_{i}}-1}{\mathrm{l}\mathrm{b}\left(i+1\right)} $ (10)

其中,$ \mathrm{r}\mathrm{e}{\mathrm{l}}_{i} $表示位置$ i $推荐结果的相关性,$ k $表示推荐列表的长度。考虑到评价指标需要衡量推荐算法对不同用户的推荐效果,因此提出NDCG评价指标,对用户u的NDCG@k的计算公式如下:

$ {N}_{\mathrm{u}}@k=\frac{{D}_{\mathrm{u}}@k}{{I}_{\mathrm{u}}} $ (11)

其中,I@K为推荐算法为某一用户返回的最佳推荐结果列表,最终N@k的计算公式为:

$ N@k=\frac{\sum\limits_{u\in U}{N}_{\mathrm{u}}@k}{\left|U\right|} $ (12)

NDCG的取值范围是[0, 1],且越接近1,推荐效果越好。

2.5 结果分析 2.5.1 性能分析

以下实验数据均为5次独立实验结果的平均值。本文与对比算法在Movielens数据集上的结果如表 3所示,在Last.fm数据集上的结果如表 4所示。根据实验数据可以看出,本文提出的算法较ItemKNN算法的性能有显著提升,而基于神经网络的NeuMF算法在Movielens与Last.fm上的表现均比传统方法要好。ConvNCF算法与本算法都优于其他对比算法,说明利用卷积神经网络进行协同过滤是有效的。与ConvNCF算法相比,本文算法在Movielens数据集上将HR@5提升了1.89个百分点、NDCG@5提升了2.19个百分点,在Last.fm数据集上将HR@5提升了1.09个百分点,NDCG@5提升了3.32个百分点。因此,本算法在用户-物品二分网络的推荐问题上可以提升性能。

下载CSV 表 3 对比算法在Movielens数据集上的实验结果 Table 3 Experiment results of comparison algorithm on Movielens datasets
下载CSV 表 4 对比算法在Last.fm数据集上的实验结果 Table 4 Experiment results of comparison algorithm on Last.fm datasets
2.5.2 聚合器选择对算法性能的影响分析

在上述2个数据集上,Mean、LSTM、Pooling这3种聚合器的表现对比如图 3所示,其中NG是NDCG的缩写。Pooling聚合器的性能最好,Mean聚合器的性能最差,LSTM聚合器的性能与Pooling较为接近。由于LSTM聚合器构成邻居节点序列时具有不确定性,因此LSTM聚合器性能偶尔优于Pooling聚合器性能。LSTM训练学习时间较长,因此,使用Pooling聚合器的效果最佳。

Download:
图 3 3种聚合器性能对比 Fig. 3 Performance comparison of three aggregators
2.5.3 算法收敛性分析

式(7)是本文推荐算法的基本模型,由于是二分类问题,因此可用“0”和“1”表示是否为推荐的物品。选择sigmoid函数将结果限制在0和1之间得到具体的损失函数,如式(8)通过最小化损失函数训练模型参数。

通过实验验证本模型的收敛性。在训练学习过程中,采用早停法避免过拟合现象的发生。在Movielens数据集上训练500次迭代,实验结果如图 4所示。HR@10在训练学习时比NDCG@10更稳定。随着训练次数的增加,两者均表现出稳定的状态,因此本算法的收敛性能良好。

Download:
图 4 训练损失、HR@10与NDCG@10的训练结果 Fig. 4 Training loss, HR@10 and NDCG@10 training results
2.5.4 参数敏感性分析

参数敏感性是衡量算法的指标。本算法主要分析卷积层数对推荐效果的影响。将物品与用户的交互矩阵压缩成一维向量,采用MLP替代卷积神经网络,作为卷积神经网络的消融实验。调整卷积神经网络的层数使输出的特征图尺寸依次为16×16、8×8、4×4、2×2、1×1,将其压成一维。根据维度大小设计合适的MLP并完成后续训练。将上述5组实验依次称为Conv1~Conv5,在上述2个数据集上完成的实验结果如图 5所示。在协同过滤学习中加入卷积神经网络比单独使用MLP的效果更好。随着卷积层数的增加和特征图尺寸的缩小,HR@10与NDCG@10都存在极值点,呈现先上升后下降的趋势。因此,适当调整网络层数与最终保留特征图的尺寸能获得最有效的信息。

Download:
图 5 卷积层数的敏感性分析 Fig. 5 Sensitivity analysis of convolution layers

本文推荐问题是一种二分类问题,其负采样较灵活,因此需考虑负采样比例对模型性能的影响。设置负采样系数ns为2、4、6、8、10。在2个数据集上进行实验实验结果如图 6所示。ns为4~6较为合理。

Download:
图 6 训练集负采样个数的敏感性分析 Fig. 6 Sensitivity analysis of the number of negative samples in the training set

用户、物品的节点嵌入维度也会影响模型的效果。本实验将嵌入维度调整为8、16、32、64。实验结果如表 5所示,整体上各项评价指标随着维度的增加而增加。增大嵌入维度可以更好地保留有效信息,但当维度过大时,训练参数会急剧增加,从而导致训练时间大大增加。在实际情况下,需要结合需求选择合适的维度。

下载CSV 表 5 用户、物品节点嵌入维度的敏感性分析 Table 5 Sensitivity analysis of embedded dimensions of user and item nodes
3 结束语

本文提出基于网络表示学习与深度学习的推荐算法。将二部图模型运用于网络表示学习法,将用户与物品二分网络分解为两个同质网络。通过外积运算表示用户与物品特征每一维的关系矩阵,使用卷积神经网络捕捉特征中每一维的高阶交互关系。与其他算法相比,在数据集上测试的推荐算法召回率和折损率都有相应的提升并具有良好的收敛性。下一步将节点的属性信息考虑进网络表示学习法,并进行对比实验研究。

参考文献
[1]
TU C, LIU H, LIU Z, et al. CANE: context-aware network embedding for relation modeling[C]//Proceedings of the 55th Annual Meeting of the Association for Computational Linguistics. San Diego, USA: Association for Computational Linguistics, 2017, (1): 1722-1731.
[2]
HAN Q Y. The study of personalized recommendation algorithm in e-commerce system[J]. International Journal of Education and Economics, 2020, 3(2): 1-6.
[3]
HU L M, LI C, SHI C, et al. Graph neural news recommendation with long-term and short-term interest modeling[EB/OL]. [2020-07-05]. https://arxiv.org/abs/1910.14025?context=stat.ML.
[4]
ABUL-FOTTOUH D, SONG M Y, GRUZD A. Examining algorithmic biases in YouTube's recommendations of vaccine videos[J]. International Journal of Medical Informatics, 2020, 140: 104385.
[5]
HAVELIWALA T H. Topic-sensitive pagerank: a context-sensitive ranking algorithm for Web search[J]. IEEE Transactions on Knowledge and Data Engineering, 2003, 15(4): 784-796. DOI:10.1109/TKDE.2003.1208999
[6]
GROVER A, LESKOVEC J. Mode2vec: scalable feature learning for networks[C]//Proceedings of the ACM SIGKDD International Conference on Knowledge Discovery and Data Mining. New York, USA: ACM Press, 2016: 855-864. https://dl.acm.org/doi/10.1145/2939672.2939754
[7]
SUN X F, GUO J, DING X, et al. A general framework for content-enhanced network representation learning[EB/OL]. [2020-07-03]. https://arxiv.org/abs/1610.02906.
[8]
TENENBAUM J B, DE SILVA V, LANGFORD J C. A global geometric framework for nonlinear dimensionality reduction[J]. Science, 2000, 290(5500): 2319-2323. DOI:10.1126/science.290.5500.2319
[9]
BELKIN M, NIYOGI P. Laplacian eigenmaps and spectral techniques for embedding and clustering[C]//Proceedings of Advances in Neural Information Processing Systems. Cambridge, USA: MIT Press. 2002: 585-591. https://dl.acm.org/doi/10.5555/2980539.2980616
[10]
HAMILTON W, YING Z, LESKOVEC J. Inductive representation learning on large graphs[C]//Proceedings of Advances in Neural Information Processing Systems. Cambridge, USA: MIT Press. 2017: 1024-1034. https://dl.acm.org/doi/10.5555/3294771.3294869
[11]
HOCHREITER S, SCHMIDHUBER J. Long short-term memory[J]. Neural Computation, 1997, 9(8): 1735-1780. DOI:10.1162/neco.1997.9.8.1735
[12]
TAS O, KIYANI F. A survey automatic text summarization[C]//Proceedings of the 2nd World Conference on Technology, Innovation and Entrepreneurship. Istanbul, Turkey: Press Academia Procedia, 2007, 5(1): 205-213.
[13]
BLEI D M, NG A Y, JORDAN M I. Latent dirichlet allocation[J]. Journal of Machine Learning Research, 2003, 3(1): 993-1022.
[14]
KINGMA D P, BA J. Adam: a method for stochastic optimization[EB/OL]. [2020-07-06]. https://arxiv.org/pdf/1412.6980.pdf.
[15]
KRIZHEVSKY A, SUTSKEVER I, HINTON G E. Imagenet classification with deep convolutional neural networks[C]//Proceedings of Advances in Neural Information Processing Systems. Cambridge, USA: MIT Press, 2012: 1097-1105.
[16]
SARWAR B, KARYPIS G, KONSTAN J, et al. Item-based collaborative filtering recommendation algorithms[C]//Proceedings of the 10th International Conference on World Wide Web. Berlin, Germany: Springer, 2001: 285-295. https://dl.acm.org/doi/10.1145/371920.372071
[17]
RENDLE S, FREUDENTHALER C, GANTNER Z, et al. BPR: Bayesian personalized ranking from implicit feedback[C]//Proceedings of the 25th International Conference on Uncertainty in Artificial Intelligence. Washington D.C., USA: IEEE Press, 2009: 452-461. https://dl.acm.org/doi/10.5555/1795114.1795167
[18]
KOREN Y, BELL R, VOLINSKY C. Matrix factorization techniques for recommender systems[J]. Computer, 2009, 42(8): 30-37. DOI:10.1109/MC.2009.263
[19]
HE X, LIAO L, ZHANG H, et al. Neural collaborative filtering[C]//Proceedings of the International Conference on World Wide Web. Berlin, Germany: Springer, 2017: 173-182. https://dl.acm.org/doi/abs/10.1145/3038912.3052569
[20]
HE X N, DU X Y, WANG X, et al. Outer product-based neural collaborative filtering[EB/OL]. [2020-07-04]. https://arxiv.org/pdf/1808.03912.pdf.