现代电子技术
Modern Electronics Technique
Feb. 2024Vol. 47 No. 4
2024年2月15日第47卷第4期
0 引 言
互联网时代,用户在网络上经常面对海量的商品信息,但过量的数据使得用户难以从中筛选出自己所需要的商品。推荐系统[1]通过估计用户对商品的偏好,向用户推荐可能喜欢的商品,以此缓解用户面临的信息过载问题。
实际应用中,众多推荐系统以用户对项目评分的分值表示用户的偏好程度,分值越大表示用户的偏好程度越高,因此传统推荐模型通常采用均方根误差(Root Mean Squared Error, RMSE )作为指标,将评分预测准确度作为优化方向。但是用户获取推荐项目时更关心推
荐结果是否符合自己的喜好,而非模型预测的分值。实际应用中推荐系统为用户推荐项目往往是返回给用户一个top⁃k 序列,即用户未评分的项目中,模型预测的评DOI :10.16652/j.issn.1004⁃373x.2024.04.031
引用格式:郑升旻,胡林发,漆鑫鑫.融合成对损失函数与分级图卷积网络的协同排名模型[J].现代电子技术,2024,47(4):169⁃175.
融合成对损失函数与分级图卷积网络的协同排名模型
郑升旻, 胡林发, 漆鑫鑫
(昆明理工大学 信息工程与自动化学院, 云南 昆明 650504)
摘 要: 协同排名方法是一类直接优化推荐项目序列的推荐方法,但在显式评分场景中,现有的协同排名算法对用户和项目间的交互信息利用不足,使用的交互函数对用户和项目间的非线性交互关系建模不充分。针对此问题,提出一种融合成对损失函数与分级图卷积网络的协同排名模型。首先根据评分数据构造用户和项目的分级异质交互二部图以及项目间的成对比较集合;之后利用分级图卷积网络挖掘用户和项目间的异质交互关系,并设计相应的自连接操作;接着利用神经网络融合辅助信息以构造两者的嵌入表示,结合神经网络与内积构造用户项目间的交互函数以建模非线性关系;最后基于成对比较数据优化模型,提升模型预测排名质量。在多个公开数据集上与同类方法的对比实验结果表明,所提算法预测排名质量较优。
关键词: 协同排名; 成对损失函数; 图卷积神经网络; 异质交互图; 自连接; 非线性关系
中图分类号: TN926⁃34; TP391.3 文献标识码: A 文章编号: 1004⁃373X (2024)04⁃0169⁃07
Collaborative ranking model based on hierarchical graph convolution
network with pair⁃wise loss
ZHENG Shengmin, HU Linfa, QI Xinxin
(Faculty of Information Engineering and Automation, Kunming University of Science and Technology, Kunming 650504, China)
Abstract : Collaborative ranking methods are a class of recommendation methods that directly optimize the sequence of recommended items, but the existing collaborative ranking algorithms do not make sufficient use of the interaction information between users and items in the explicit scoring scenario, and the interaction functions used do not adequately model the nonlinear interaction between users and items. Therefore, a collaborative ranking model based on hierarchical graph convolution network with pair⁃wise loss is proposed to address this problem. The heterogeneous interaction bipartite graphs of users and items and pairwise comparison sets are first constructed base
d on the rating data. The hierarchical convolutional network with specific self⁃connection operation is used to mine the heterogeneous interactions between users and items and use neural network to fuse
the auxiliary information, so as to construct both embedding representation. Then neural network and inner product are combined to construct the interaction function between users and items to modelling the nonlinear relationship. This model is optimized
based on pairwise comparisons to improve the quality of ranking it predicting. The comparison experiments with similar methods on several public datasets show that the prediction ranking quality of the propsoed algorithm is better.Keywords : collaborative ranking; paired loss function; graph convolutional neural network; heterogeneous interaction
diagram; self connection; nonlinear relationships
收稿日期:2023⁃07⁃04 修回日期:2023⁃08⁃11
169
现代电子技术2024年第47卷
分最高的k个项目。由此可见,相较于预测评分的准确度,项目的排名质量更加关键。而评分预测准确度与预测排名质量之间并不一致,准确度更高并不意味着偏好预测排序质量更好[2⁃3]。
为解决这一问题,出现了直接优化排序质量的协同排名模型(Collaborative Ranking),如List⁃MF(Listwise
Matrix Factorization)[4]。List⁃MF将训练排名序列和模型预测排名序列中项目top⁃1概率的交叉熵作为损失函数来训练排名模型,直接优化预测排名质量。SQL⁃Rank (Stochastic Queuing Listwise Ranking)[3]则考虑具有相同评分的项目之间的位置关系,通过在训练过程中对评分相同的项目随机排序以解决评分相同造成的歧义。但这类直接优化排名的协同排名方法所采用的损失函数具有非凸性,因此只能得到局部最优解,导致预测效果较差[3⁃4]。
近年来,基于成对比较(Pairwise Comparison)的个性化协同排名算法取得了很大的进展。这类方法根据用户评分数据为每个用户构造项目之间的两两相互比较,借此将用户的偏好序列转化为不同项目之间的比较对,通过这种方式将用户偏好排名的优化问题转化为成对比较的分类问题。交替支持向量机(Alternating Support Vector Machine, AltSVM)[5]和Primal⁃CR(Primal Collaborative Ranking)[6]是成对比较类协同排名算法中极富代表性的方法。AltSVM是一种非凸式协同排名算法,它显式地以因子形式对低秩矩阵进行参数化,并最小化合页损失函数。AltSVM算法会交替更新用户和项目的潜在因子,算
法每一步都可以被表示为一个标准的SVM对两个因子中的一个进行更新。Primal⁃CR算法则基于牛顿法快速计算损失函数梯度和Hessian矩阵,之后利用坐标下降法交替更新用户和服务的隐向量,有效地降低了算法的时间复杂度。在Primal⁃CR的基础上,Primal⁃CR++[6]基于用户信息多为评分数据的特点,继续改进梯度计算方法和Hessian向量计算方法,进一步降低了算法的计算速度。
上述协同排名方法一般基于矩阵分解,采用固定的线性函数(如内积)作为交互函数,而这类函数不能拟合非线性关系,但NCF(Neural Collaborative Filtering)[7]等方法已经证实,拟合非线性关系在建模用户和项目交互时具有显著效果。因此,基于生成对抗网络的协同排名模型(Collaborative Ranking Generative Adversarial Network, CRGAN)[7]选择利用全连接网络作为交互函数。CRGAN通过生成对抗网络拟合用户的偏好分布,使用多层全连接神经网络作为模型的生成器与判别器。NCPL(Neural Collaborative Preference Learning)[8]则设计了深层和浅层两种交互函数,将两种交互函数输出的向量通过一层全连接层,得到预测得分。其中浅层的交互函数为Hadamard积,深层的交互函数则包含多层的全连接神经网络。但用户和项目之间的多级邻接关系中具有丰富的交互信息,而上述算法对这些交互信息的挖掘不够充分[9]。
图卷积网络(Graph Convolutional Network, GCN)是一种图结构数据上的特征提取方法,现在已经广泛应用于推荐模型中,如图卷积矩阵补全模型(Graph
Convolutional Matrix Completion, GCMC)[10]通过聚合异质邻接节点的信息,直接从二部图中挖掘用户和项目特征;轻量级图卷积模型(Light Graph Convolution Network, LightGCN)[9]通过多层邻接关系中的信息传递构建用户和项目的嵌入表示,并且利用可学习的权重系数来近似实现自连接。相较于传统方法,图卷积网络能够获取用户和项目之间潜在的交互信息,由此得到质量更好的嵌入表[10]。
基于上述研究,本文提出一种融合成对损失函数与分级图卷积网络的协同排名模型(Hierarchical Graph Convolution Network with Pair⁃Wise Loss, HGCN⁃PW),通过分级图卷积挖掘用户⁃项目二部图中异质节点之间的交互信息,再充分利用用户评分数据中隐含的交互关系,提高嵌入向量的质量。
其次,将评分数据构造成项目间的成对比较,基于成对比较优化模型以直接提高模型预测排序的质量。针对分级图卷积网络设计了对应的自连接策略,实现对用户和项目信息的充分利用;并结合内积与神经网络以作为用户与项目间的交互函数,使其得以拟合非线性关系。
1 融合成对损失函数与图卷积网络的协同排名HGCN⁃PW包括嵌入传播层和预测层。嵌入传播层中的图卷积层利用分级图卷积直接挖掘异质图上的交互信息,相比挖掘用户与项目交互矩阵可利用更多信息;接着通过全连接层融入辅助信息,得到用户和项目的嵌入向量。预测层根据嵌入向量,结合非线性变换与内积预测用户对项目的偏好程度,再利用成对比较数据训练模型。HGCN⁃PW的模型框图如图1所示。1.1 符号及定义
给定用户集合U和项目集合V,其中m=|
|U、n= |
|V分别表示用户数和项目数,并设定相应的评分信息,以构建相应的评分矩阵R∈Z m×n,评分取值范围为R ij∈{1,2,…,L}。按照评分取值范围,为每一类评分构建分级矩阵R l∈Z m×n:
170
第4期
R l ij =ìí
î1, R ij =l
0, R ij ≠l
(1)
式中l ∈{1,2,…,L },由分级矩阵可以得到对应的分级邻
接矩阵A l :
A l
=é
ëêêù
ûúúR l (R l )
T
, l =1,2,…,L
(2)
式中:A l ∈Z (m +n )×(m +n ),每一个分级邻接矩阵都对应着
一个分级交互图。图1中包含用户和项目两种节点,每条边连接着一个用户节点和一个项目节点,表示用户对项目给出的评分为l ,所有分级邻接矩阵集合A ={A l |l =
1,2,…,L }。用户的特征信息为X'U ∈R
m ×d
,项目特征信息为X'V ∈R
n ×d
。为统一用户和项目的特征向量维度,本文中将它们记为X U =[X 'U ,0],X U ∈R m ×d ,X V =[0,X 'V ],X V ∈R n ×d ,
正则化是最小化策略的实现d =d u +d i 。令X =[X T U X T V ]T
表示用户和项目特征信息,x u 和x v 分别表示用户u i 和项目v j 的
特征向量。
图1 融合成对损失函数与分级图卷积网络的协同排名模型框图
为解决协同过滤模型不能直接优化用户偏好序列的问题,本文根据用户评分数据为每个用户构造项目之间非数值的成对比较,基于这些成对比较优化模型。传统的RMSE 独立计算每个预测评分与真实值之间的差距,本质是一种点比较损失函数,因此无法直接优化项目排序。成对比较(Pairwise Comparison )方法将排序转化为项目间成对比较的分类问题:首先由U 、V 可以构造用户和相应项目的成对比较三元组集合Ω=
{(i ,j ,k )|u i ∈U ;v j ,v k ∈V ,j ≠k },(i ,j ,k )表示用户u i 在项目
v j 、v k 中更偏好v j ,如果项目v j 、
v k 的优劣关系正确则为正例,错误即为负例。成对比较方法相对于点比较方法考虑到了项目间的相对位置关系,更加符合优化用户偏好排名的需要。具体的,可根据评分矩阵R 为Ω中每个三元组赋予标签y i j ,k :
y i j ,k =ìí
î1, R i ,j >R i ,k
-1, R i ,j <R i ,k
(3)
式中:R i ,j >R i ,k 表示用户u i 给项目v j 的评分比项目v k 高,
即用户u i 在项目v j 、
v k 中更偏好v j ;y i
j ,k
为1表示对应的三元组(i ,j ,k )为正例,反之为负例;
Y ={y i j ,k }表示Ω中所有成对比较的标签。模型的优化目标是减少错误分类的成对比较数量。1.2 嵌入传播层
1.2.1 异质交互图中的信息传递
GCMC 中所采用的图卷积操作为:对图中每个节点
执行只考虑一阶邻域的局部图卷积操作。这种局部图卷积可以被看作是一种异质节点之间的消息传递[11],节
点的特征向量作为节点信息,以向量形式在交互图中沿着边传递和转换,这样的卷积方式可以通过叠加图卷积层简便地将图卷积范围扩展到高阶邻域。因此本文采用同样的图卷积策略,根据边类型构造不同的交互图,为不同交互图上分配不同的卷积权值参数矩阵,以实现不同的边上具有不同的消息传递方式,即分级图卷积。从项目节点v j 到用户节点u i ,沿着评分为l 的边所传递的信息可表示为:
μv →u ,l =
1
c ij W l x v
(4)
郑升旻,等:融合成对损失函数与分级图卷积网络的协同排名模型171
现代电子技术2024年第47卷
式中:c ij是正则化常量,值为|
|N u||N v,N u是用户u i节点的邻接节点集合,N v是项目v j节点的邻接节点集合;W l是分值l对应的卷
积权值参数矩阵,表示邻接矩阵A l 对应的交互图上的消息转换规则。由用户节点u i到项目节点v j的信息传递为:
μu→v,l=1c ji W l x u(5)在缺失节点特征或者节点特征不足以区分各个不同节点时,以节点序号独热编码(one⁃hot encoding)作为节点特征,输入图卷积层就可获得良好的效果[10]。但不
同分级矩阵下的各用户和项目相关的评分数量往往相差较多,而在以独热编码为节点特征输入图卷积层时,会导致W l的某些列被优化的频率明显低于其他列。因此,需要在不同l对应的W l之间采取某种形式的权重共享,以缓解这一优化问题。本文采用文献[12]所提出的权重共享方案:
W l=∑s=1l T s(6)1.2.2 节点的信息聚合与自连接
消息传递后,需要聚合节点收到的消息。对于用户
u
i
,首先将其在邻接矩阵A l上所有邻接点N u,l的消息求和,得到该节点在A l对应的交互图上的消息向量μu,l;接着将所有交互图上的消息向量聚合为用户的中间向量,具体为:
μu,l=∑v∈N u
,l
μv→u,l(7)
h u=σ[accum(μu,1,μu,2,…,μu,L)](8)式中:accum(·)表示聚合操作,可以通过堆叠stack(·)实现,即将多个向量串联成一个向量,或者通过sum(·)实现,即对所有向量求和;σ(·)则代表一个激活函数,可选择ReLU=max(0,·)或其他形式。
GCMC中直接用h u替换原节点信息,但是这种更新方式并未考虑节点自身信息的作用,当图卷积层多于一层时,相当于丢弃上一层图卷积所聚合的邻接点信息。因此为保证节点自身信息充分表达,需要在聚合邻接节点信息的同时考虑自连接信息。自连接信息的加入方式[9]是:将邻接矩阵与单位矩阵相加,以在图卷积操作中实现自连接,但是本文将评分矩阵转化成多个分级矩阵,直接在每个分级邻接矩阵中加入单位矩阵,这将会使得图卷积过程中重复加入自身节点信息。因此本文不修改分级邻接矩阵,直接对节点的特征向量执行一次特征变换,将其作为自连接信息加入图卷积操作中,其中特征变换矩阵选择权重共享矩阵T L。项目节点也执
行同样操作。
图卷积层最终输出的用户中间向量为:
μu⁃self=W L x u(9)
h u=σ[accum(μu,1,μu,2,…,μu,L,μu⁃self)](10)式中:μu⁃self为节点的特征向量经过一次特征变换后的自连接向量。给定用户⁃项目评分矩阵R∈Z m×n,用户和项目的特征信息为X=[X T u X T i]T。嵌入传播层的矩阵形式为:
é
ë
êù
û
ú
H U
H I=σ
()
XT T L+∑l=1L D-12A l D-12XW T l, A l=éëêêùûúú
0R l
R T l0
(11)1.3 预测层
预测层利用嵌入传播层输出的嵌入矩阵Z U、Z V,预测用户⁃项目排名得分矩阵,即用户和项目之间的交互函数。传统的协同过滤方法中,通常使用内积作为交互函数,但内积作为交互函数有着无法拟合非线性关系的明显缺陷。因此本文在内积的基础上,通过增加非线性激活函数,使得预测层具有拟合非线性关系的能力。同时,由于本文方法只是利用预测分值来得到项目排序,不需要保证预测分值的准确度,因此加入Sigmoid层控制分值预测范围。预测层公式如下:
é
ë
êù
û
ú
E U
E V=f2∘f1
()éëêùûúZ U Z V(12)
Y=E U E T V(13)式中:f1是以ReLU为激活函数的隐层;f2是以Sigmoid为激活函数的隐层;Y是模型预测的排名得分矩阵,包括所有用户对所有项目的预测得分,根据预测得分由高到低排序可得用户的预测偏好排名。
1.4 模型训练
与直接优化RMSE不同,本文基于成对比较数据来优化每个用户对不同项目的偏好排名。因此需要先计算同一用户不同项目间预测得分的差值d i jk:
d i
jk=Y ij-Y ik(14)式中:d i jk>0表示用户u i在项目v j、v k中更偏好v j;反之则更偏好v k。在此基础上,利用Ω中的成对比较来设计排名损失函数,本文采用文献[13⁃14]的合页损失函数(Hinge Loss)来优化模型在Ω上的预测得分差值:
L hinge=∑(i,j,k)∈Ωmax(0,y i j,k(m-d i j,k))(15)式中m为预定义的得分差值间距。
2 实验及结果分析
为了验证HGCN⁃PW的性能,采用Pytorch框架,在Ubuntu 20.04 64位操作系统,PyCharm 2020,
172
第4期
IntelⓇCore TM i7⁃9700F CPU @3.0 GHz,8 GB内存,RTX 2060 GPU, Python 3.8的环境下进行对比实验。
2.1 实验数据集
本文在一些常见的协同过滤基准数据集上,将HGCN⁃PW与其他模型相比较,所采用的数据集包含用户对项目(如电影)的评分。实验数据集情况如表1所示。
表1 数据集基本信息
数据集ML⁃100K Douban Yahoo!R3用户数
943
3 000
15 400
项目数
1 682
3 000
1 000
评分数
100 000
136 891
311 704
表1中:ML⁃100K数据集[10]包含用户和项目的辅助信息(如用户的年龄、职业、项目的时间、类型等);
Douban数据集是由文献[13]提供的Douban数据集的子集,包括3 000用户和3 000项目,并将用户间的社交关系作为辅助信息;Yahoo!R3为雅虎音乐的评分数据集,没有辅助信息[3]。
2.2 评价指标及对比算法
本文采用的评价指标包括归一化折损累计增益NDCG和预测成对比较错误率(Pairwise Error)[6]。其中用户u i的NDCG@K定义为:
NDCG(i)=DCG@K(i,πi)
DCG@K(i,π*i)(16)
DCG@K(i,πi)=∑k=1K2R-1
log2(k+1)(17)式中:πi为用户u i根据预测得分由高到低对项目排序得到的排名;πi(k)为πi中排第k位的项目序号;R ij表示用户u i对项目v j的真实评分;π*i表示根据用户u i的真实评分最大化DCG@K的项目顺序;NDCG@K以预测排名的DCG值与理想的最大化DCG之比表示预测排名的质量,数值越接近1,预测效果越好。这种方法只计算预测排名中的前K个项目,并且由于衰减项,排名越靠前的项目权重越大。
Pairwise Error定义为:Pairwise Error=1||Γ∑
(i,j,k)∈Γ
y=11(Y ij<Y ik)(18)
式(18)表示在测试数据集Γ的所有成对比较中,模型预测错误的成对偏好比较的比例。
AltSVM、PrimalCR、PrimalCR++是近年来成对比较类协同排名算法中极富代表性的方法,三种方法凭借其优秀的推荐效果而常被作为协同排名的基线方法[3]。CRGAN、NCPL是基于神经网络的协同排名模型中的最新方法,因此本文选取这5种方法为对比方法。2.3 实验设置
与文献[6]相同,对于实验中用到的数据集,首先筛选出评分数超过20的用户,然后每个用户随机选取20个评分作为测试集,剩余的评分数据作为训练集。在所有实验中,用户和项目的特征信息都用其序号对
应的独热编码表示,模型嵌入传播层部分由两层图卷积层组成,第一层使用串联聚合消息,第二层采用求和聚合消息,两层网络都加入自连接,失活率都设置为0.7,激活函数都采用LeakyReLU。优化器使用Adam[14],学习率为0.001。模型两层图卷积层的维度分别为64和32,每一轮训练随机选取固定数量的成对比较数据,用于计算损失值。本文所有实验中成对比较数据数量均设置为2 048,得分间距差值m设置为1.5。ML⁃100K数据集运行500轮迭代,Douban、Yahoo!R3运行300轮迭代。
2.4 性能对比
为了评估HGCN⁃PW的性能,本文将其与目前成对比较类CR算法中的AltSVM和PrimalCR、PrimalCR++、CRGAN、NCPL在相同环境下进行比较,NDCG@10作为评价指标。在4个数据集上分别进行10次实验,取其平均值作为实验结果。NDCG@10对比实验结果如表2所示,Pairwise Error对比实验结果如表3所示。
表2 NDCG@10对比实验结果
算法
AltSVM
PrimalCR
PrimalCR++
NCPL
CRGAN
HGCN⁃PW
ML⁃100K
0.757
0.770
0.771
0.765
0.758
0.775
Douban
0.792
0.762
0.760
0.795
0.802
0.814
Yahoo!R3
0.625
0.600
0.602
0.643
0.640
0.655
表3 Pairwise Error对比试验结果
算法
AltSVM
PrimalCR
PrimalCR++
NCPL
CRGAN
HGCN⁃PW
ML⁃100K
0.260
0.224
0.225
0.231
0.257
0.215
Douban
0.179
0.223
0.221
0.183
0.174
0.168
Yahoo!R3
0.226
0.275
0.268
0.206
0.210
0.192
郑升旻,等:融合成对损失函数与分级图卷积网络的协同排名模型173
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论