基于知识图谱的推荐算法早期多通过知识图谱嵌入[1]以增强项目表示, 降低了知识图谱的高维性和异构性, 但忽视了实体间的连通性. 随后众多学者使用元路径丰富用户项目间的交互, 提升了推荐结果的可解释性, 但元路径需要手动设计[2]. 这些方法虽然提高了推荐的准确性和推荐结果的可解释性[3], 但存在泛化能力差、性能不稳定[4]等问题. 图卷积网络(graph convolutional network, GCN)在图结构数据上具有良好的信息提取和表示能力, 逐步成为推荐系统中的研究热点[5, 6], 其强大的信息传播能力能够挖掘实体间的高阶语义关系[7], 提升模型表达能力. 然而, 引入图卷积网络的推荐算法仍存在模型复杂度高, 项目端和用户端建模程度不平衡等问题.
因此, 论文构建KLGC (knowledge graph and light graph convolution)模型. 在用户端引入用户邻居集合以增强用户特征表示; 采用轻量图卷积网络[8]捕获实体间的高阶关系, 简化标准GCN中非线性激活和特征转换模块, 用于降低模型复杂度. 在数据集Book-Crossing和Yelp2018上完成对比实验, 验证了该模型的有效性.
1 相关研究基于知识图谱的推荐方法可以分为: 基于嵌入的方法、基于路径的方法和混合方法[9]. 基于嵌入的方法主要包括Trans系列算法[10, 11], 此类方法多应用于知识图谱补全和链路预测等任务, 然而在推荐任务中性能表现较差. 基于路径的方法关注实体间的联系, 利用图谱中实体的连接模式完成推荐. Hu等[12]使用卷积神经网络和元路径获得用户和项目的向量表示. 此类方法依赖于手动设计元路径, 应用于不同场景时缺乏可伸缩性. 基于嵌入的方法主要学习知识图谱中的语义信息, 基于路径的方法主要关注实体间的连接关系, 都未充分利用知识图谱中蕴含的信息. 因此, 学者们开始尝试混合多种算法提升推荐效果. Wang等[13]将基于嵌入的方法和基于路径的方法结合提出RippleNet模型, 以用户的历史兴趣为基础沿着知识图谱中的路径传播, 捕捉用户的偏好信息, 增强用户特征表示. 这种方法忽视了实体间关系的重要性、存在计算冗余的问题, 难以保证推荐质量.
知识图谱以图结构的形式展示实体和关系, 图卷积网络可以有效整合知识图谱结构特征, 学习项目间语义关系和用户潜在偏好[14]. 文献[15]融合知识图谱和图卷积网络提出KGCN模型, 采用GCN有偏差地聚合实体表示, 并利用知识图谱中高阶链接在项目端聚合项目的属性信息, 丰富了项目端的特征表示, 然而, 该模型没有考虑用户端的用户属性信息. 针对这个问题, 文献[16]在KGCN基础上提出了DEKGCN模型, 在用户端添加辅助信息, 使用图卷积网络分别聚合用户端和项目端的属性信息, 从而提高了推荐性能. 但是该模型在聚合用户信息时, 使用人口统计学信息来构建用户属性图, 用户端嵌入表示时语义丰富度较低.
上述融合知识图谱和图卷积网络的推荐方法利用了实体嵌入和高阶连接信息, 但在信息传播过程中侧重于优化更新用户端或项目端一端的表示, 对用户端和项目端建模程度不均, 且采用了标准的图卷积网络模型, 使得模型相对复杂. 因此, 本文基于KGCN提出KLGC模型, 对用户和项目双端建模, 在用户端引入用户邻居集合增强用户特征, 采用轻量图卷积网络分别聚合用户端和项目端信息以提高推荐性能.
2 KLGC模型KLGC模型的总体框架如图1所示. 用户表征计算过程, 以用户-项目交互矩阵和知识图谱作为输入, 将用户浏览记录作为种子集在知识图谱中传播, 获取用户偏好信息, 使用轻量聚合器聚合得到用户嵌入表示. 项目表征计算过程, 以用户嵌入表示和知识图谱作为输入, 使用注意力机制获取目标用户u与知识图谱三元组中各关系的影响权重, 有选择地聚合邻域信息得到项目嵌入表示. 最后, 基于用户嵌入表示和项目嵌入表示计算交互概率.
在推荐模型中, 用户集合和项目集合分别设置为
用户-项目交互矩阵不仅能增强用户表示, 还可以根据用户间的相似性探索项目特征[17]. KLGC模型利用用户-项目交互矩阵生成用户邻居集合扩展实体的邻域信息.
定义用户邻居集合为Su, 使用皮尔逊相关系数[18]计算用户u与用户v的相似度:
$ sim(u, v) = \frac{{\displaystyle\sum\limits_{i \in {I_{uv}}} {({u_i} - \bar u)({v_i} - \bar v)} }}{{\sqrt {\displaystyle\sum\limits_{i \in {I_{uv}}} {{{({u_i} - \bar u)}^2}} } \sqrt {\displaystyle\sum\limits_{i \in {I_{uv}}} {{{({v_i} - \bar v)}^2}} } }} $ | (1) |
其中, Iuv表示用户u、v共同评分项目集合, ui和vi分别表示用户u、v对交互项目i的兴趣度,
$ {S_u} = \{ {{{u}}_1}, {{{u}}_2}, \cdots , {{{u}}_n}\} $ | (2) |
假设用户u与项目i存在交互, 则
$ N_u^{{k}} = \{ (h, r, t)|(h, r, t) \in G\;{\rm{and}}\;h \in {{N}}_u^{{{k - 1}}}\} $ | (3) |
其中, 当k为0时:
$ N_u^0 = \{ (h, r, t)|(h, r, t) \in G\;{\rm{and}}\;h \in Y_u^n\} $ | (4) |
给定用户u的偏好集合
$ {\pi} (h, r, t) = {({W_r}{e_t})^{\rm T}}\tanh ({W_r}{e_{{h}}} + {{{e}}_{{r}}}) $ | (5) |
其中, W为可训练的参数. 将相邻实体嵌入权重归一化表示为
$ \tilde {\pi} (h, r, t) = \frac{{\exp ({\pi} (h, r, t))}}{{\displaystyle\sum\limits_{(h, r, t) \in N_u^k} {\exp ({\pi} (h, r, t))} }} $ | (6) |
得到嵌入权值后, 将
$ {u_{N_u^k}} = \sum\limits_{e \in N_u^k} {\tilde {\pi} (h, r, t)e} $ | (7) |
其中, e为尾实体的向量表示.
为了得到更准确的用户偏好信息, 将节点的注意力权值排序, 采样排名前ku的样本作为邻域:
$ N_u^k = \{ e|e \sim top{k_u}(\tilde {\pi} (h, r, t))\} $ | (8) |
最后, 将用户表示u和其k阶邻域表示向量
$ ag{g_u} = \sum\limits_{k = 0}^k {{a_k}{u_{N_u^k}}^{(k)}} + u $ | (9) |
其中, k为迭代次数, ak为第k层嵌入权重.
2.2 项目表征计算为探索项目的高阶信息, 项目表征计算以用户嵌入表示和知识图谱作为输入, 利用注意力机制获得不同关系对用户的重要程度, 使用LightGCN[8]聚合邻域信息, 得到项目的特征表示.
给定项目i与知识图谱G, 将i在G中的邻域信息表示为Ni. 由于不同用户其兴趣爱好不同, 为了提高用户对推荐结果的满意度, 故在聚合邻居实体时, 引入用户u对关系r的偏好, 其公式为:
$ {\pi} _r^u = a(u, r) $ | (10) |
其中,
$ \tilde {\pi} _{{r_{i, e}}}^u = \frac{{\exp ({\pi} _{{r_{i, e}}}^u)}}{{\displaystyle\sum\limits_{{\text{e}} \in {N_i}} {\exp ({\pi} _{{r_{i, e}}}^u)} }} $ | (11) |
其中, e为集合Ni中实体的向量表示, ri,e表示项目i与实体e间的关系.
为得到项目i的邻域拓扑信息, 对Ni中的实体和用户关系之间的权值加权求和, 其公式为:
$ i_{{N_i}}^u = \sum\limits_{e \in {N_i}} {\tilde {\pi} _{{r_{i, e}}}^ue} $ | (12) |
由于项目的信息偏多, 为了选取更符合用户喜好的项目, 将用户关系权值排序, 采样排名前ki的样本作为邻域:
$ {N_i} = \{ e|e \sim top{k_i}(\tilde {\pi} _{{r_{i, e}}}^u)\} $ | (13) |
最后, 使用轻量聚合器聚合项目表示i和其k阶邻居拓扑信息
$ agg_i^u = \sum\limits_{k = 0}^k {{a_k}i{{_{{N_i}}^u}^{(k)}}} + i $ | (14) |
其中, k为迭代次数, ak为第k层嵌入权重.
2.3 预测部分由第2.1节和第2.2节得到用户表示u和项目表示iu, 计算用户u点击项目i的概率
$ {\hat y_{ui}} = \sigma ({u^{{{\rm{T}}}}}{i^u}) $ | (15) |
其中,
为优化模型性能, 采用负采样训练模型, 损失函数如下:
$ L = \sum\limits_{u \in U} {\left(\sum\limits_{(u, i) \in Y} {{ T}({y_{ui}}, {{\hat y}_{ui}})} - \sum\limits_{k = 1}^{{N_u}} {{{ E}_{{I_k} \sim p({i_k})}}{ T}({y_{ui}}, {{\hat y}_{ui}})} \right) + \lambda ||F||_2^2} $ | (16) |
其中,
为了验证KLGC模型在不同场景的推荐性能, 实验选用两个公开数据集Book-Crossing和Yelp2018, 这两个数据集被广泛应用于评估推荐算法性能. Book-Crossing数据集是一个包含大约14万次图书评级的公开数据集. Yelp2018数据集是Yelp网站相关业务、商户评论和用户数据的子集, 包含超过118万个商户评论. Book-Crossing的用户项目交互数据相对于Yelp2018数据集来说比较稀疏, 可以用来验证KLGC模型解决冷启动和数据稀疏问题的能力. 数据集的详细数据见表1.
3.2 实验设置
本文实验以6:2:2的比例将数据集随机划分为训练集、验证集和测试集. 用户和物品表示向量的维度d为64, 使用Adam优化器优化模型, 学习率默认为0.001, batch-size默认设置为256, L2正则化系数λ为1E−4, 层组合系数ak设置为
(1)点击率(CTR)预测
将测试集放入训练后的模型, 使用ROC曲线下方面积(AUC)和准确率(ACC)指标评估CTR预测性能. AUC的值通过对ROC曲线横轴进行积分获得, ROC曲线横坐标为假阳率, 纵坐标为真阳率. ACC的计算公式如下:
$ ACC = \frac{{TP + TN}}{{TP + TN + FP + FN}} $ | (17) |
(2) Top-K推荐
将测试集放入训练后的模型, 向用户推荐点击率排名前K的物品, 使用预测率(precision)和召回率(recall)指标评估模型推荐性能.
precision 指标主要是指向用户推荐的项目中, 用户感兴趣的项目占的比例. 计算公式如下:
$ precision = \frac{{TP}}{{TP + FP}} $ | (18) |
recall 指标主要是指向用户推荐的项目中用户感兴趣的项目占用户交互项目总数的比例. 计算公式如下:
$ recall = \frac{{TP}}{{TP + FN}} $ | (19) |
其中, TP (true positive)表示正样本被预测为正; TN(true negative)表示负样本被预测为负; FP (false positive)表示负样本被预测为正; FN(false negative) 表示正样本被预测为负.
3.3 对比模型为评估KLGC模型的性能, 本文使用轻量图卷积网络模型LightGCN[8], 经典的知识图谱推荐模型RippleNet[13]、融合知识图谱和图卷积网络的新近推荐模型KGCN[15]和SPGCN[19]作为对比的基线模型.
LightGCN[8]: 该模型去除了传统图卷积网络中的特征变换和非线性激活模块, 在不影响推荐性能的前提下极大地降低了模型复杂度.
RippleNet[13]: 该模型首次将基于嵌入的方法和基于路径的方法结合, 通过在知识图谱上传播用户偏好, 扩展用户潜在兴趣, 在增强用户表示方面表现良好.
KGCN[15]: 利用图卷积网络聚合知识图谱中实体的邻域信息, 丰富物品端的表示, 得到用户对物品端的偏好概率.
SPGCN[19]: 在KGCN模型基础上, 简化了图卷积网络中的非线性激活模块和特征变换模块, 提升了模型预测的准确性.
3.4 实验结果分析 3.4.1 性能分析表2为基线模型在CTR预测上的结果, 观察表中数据可知, KLGC模型在两个数据集上均产生了最佳性能. 在数据集Book-Crossing中, KLGC模型相比于最优算法, AUC提升了1.8%, ACC提升了2.3%. 在数据集Yelp2018中, 相比于最优算法, AUC提升了1.2%, ACC提升了1.4%. 同时, 在Top-K推荐中推荐性能也优于其他模型. Top-K推荐中, K的取值会影响推荐结果, 将K设置为{1, 5, 10, 20, 30, 50}, 观察预测率和召回率的变化. 从图2和图3可以看出, 在数据量较小的数据集Book-Crossing上, K=10时, 推荐性能最优. 对于数据量较大的Yelp2018数据集, K=20时获得最优性能.
从图2和图3可以看出, KLGC模型在两个数据集中的准确率和召回率都优于其他的基线模型. 通过对比实验分析可知, RippleNet通过用户的浏览记录建模用户偏好, 学习了用户表示但没有学习项目表示. 与RippleNet类似, KGCN利用卷积网络聚合知识图谱的信息, 但忽略了对用户偏好的建模. 两个基线都没有同时利用用户向量表示和项目向量表示预测评分, 故其性能相对于KLGC较差.
基线SPGCN优于KGCN, 说明在传统GCN上去除特征转换和非线性激活模块并不影响推荐性能, 同时, SPGCN推荐效果优于LightGCN表明在推荐系统中引入知识图谱有利于提升推荐性能. SPGCN在KGCN基础改进, 同样忽视了对用户端的建模, KLGC同时对用户和项目两端建模, 更好地挖掘了用户的潜在兴趣, 使推荐结果更准确.
3.4.2 参数设置由表3可知, 邻居数n在(10, 20)时, 推荐性能最佳. 邻居数n很小时, 如果邻居集合中存在用户与目标用户的偏好差距很大, 推荐结果将存在较大误差; 当邻居数n很大时, 邻居集合中有很多与用户爱好有较大偏差的用户, 增加不可预测的噪声数据, 进而使得性能下降.
表4表示卷积层数对AUC的影响, 从表中可以看出, 卷积层从1增加到2时, 模型的性能效果提升, 表明增加层数可以聚合更多邻域信息; 随着层数持续增加, 模型引入大量噪声, 推荐性能开始下降.
3.4.3 消融实验
为验证非线性激活函数和特征变换模型对性能的影响, 用KLGC+f表示在KLGC模型上引入特征转换模块, KLGC+w表示在KLGC模型上引入非线性激活模块, 非线性激活函数选择LeakyReLU.
由表5观察可知, 在数据集Book-Crossing和Yelp2018上实验, 在KLGC上加入激活函数或特征变换, 都会影响模型性能. 相比较而言, KLGC模型性能最优, 与LightCCN的实验结果一致. 将KLGC模型平均迭代一次的时间(time)设置为1, 计算出KLGC+f和KLGC+w与KLGC迭代一次所需时间的对比度. 由表可知, KLGC运行时间最短, 这表明在传统的图卷积网络中去掉特征变换和非线性激活模块不仅降低了模型复杂度, 而且提高了模型推荐性能.
4 结论与展望
本文提出融合知识图谱和轻量图卷积网络的推荐算法(KLGC). 算法引入用户邻居集合和轻量图卷积网络来缓解用户-项目交互数据稀疏和模型复杂度高的问题, 提升推荐性能. 不同用户对项目的偏好不同, 模型从用户和项目两端建模; 在用户端, 利用知识图谱捕获用户偏好信息, 挖掘用户潜在兴趣得到用户表示. 在项目端, 利用知识图谱获取用户偏好的项目信息, 聚合项目邻域信息生成嵌入表示. 通过在两个公开数据集上的实验分析, 相较于对比模型KLGC模型的推荐性能更优, 适用于个性化推荐场景, 如学习资源推荐、就业推荐等. 但模型没有考虑个性化推荐场景中用户兴趣动态变化的问题, 在后续研究中将考虑结合动态推荐模型捕获用户的动态兴趣, 进一步提升推荐性能.
[1] |
Ai QY, Azizi V, Chen X, et al. 2018. Learning heterogeneous knowledge base embeddings for explainable recommendation. Algorithms, 2018, 11(9): 137. DOI:10.3390/a11090137 |
[2] |
Tian X, Ding Q, Liao ZH, et al. Survey on deep learning based news recommendation algorithm. Journal of Frontiers of Computer Science and Technology, 2021, 15(6): 971-998. DOI:10.3778/j.issn.1673-9418.2007021 |
[3] |
Zhu K, Xiao YY, Zheng WG, et al. A novel context-aware mobile application recommendation approach based on users behavior trajectories. IEEE Access, 2021, 9: 1362-1375. DOI:10.1109/ACCESS.2020.3046654 |
[4] |
Du YT, Zhu XJ, Chen L, et al. HAKG: Hierarchy-aware knowledge gated network for recommendation. Proceedings of the 45th International ACM SIGIR Conference on Research and Development in Information Retrieval. Madrid: ACM, 2022. 1390–1400.
|
[5] |
Zhai FB, Li BZ. Point of interest recommendation based on graph convolutional neural network. Journal of Physics: Conference Series, 2021, 1883(1): 012132. DOI:10.1088/1742-6596/1883/1/012132 |
[6] |
郭晓旺, 夏鸿斌, 刘渊. 融合知识图谱与图卷积网络的混合推荐模型. 计算机科学与探索, 2022, 16(6): 1343-1353. DOI:10.3778/j.issn.1673-9418.2110057 |
[7] |
朱冬亮, 文奕, 万子琛. 基于知识图谱的推荐系统研究综述. 数据分析与知识发现, 2021, 5(12): 1-13. |
[8] |
He XN, Deng K, Wang X, et al. LightGCN: Simplifying and powering graph convolution network for recommendation. Proceedings of the 43rd International ACM SIGIR Conference on Research and Development in Information Retrieval. Xi’an: ACM, 2020. 639–648.
|
[9] |
Shi C, Hu BB, Zhao WX, et al. Heterogeneous information network embedding for recommendation. IEEE Transactions on Knowledge and Data Engineering, 2019, 31(2): 357-370. DOI:10.1109/TKDE.2018.2833443 |
[10] |
Ma C, Ma LH, Zhang YX, et al. Knowledge-enhanced top-K recommendation in Poincaré ball. Proceedings of the 35th AAAI Conference on Artificial Intelligence. Palo Alto: AAAI Press, 2021. 4285–4293.
|
[11] |
Cao YX, Wang X, He XN, et al. Unifying knowledge graph learning and recommendation: Towards a better understanding of user preferences. Proceedings of the 28th International World Wide Web Conference. San Francisco: ACM, 2019. 151–161.
|
[12] |
Hu BB, Shi C, Zhao WX, et al. Leveraging meta-path based context for top-N recommendation with a neural co-attention model. Proceedings of the 24th ACM SIGKDD International Conference on Knowledge Discovery & Data Mining. London: ACM, 2018. 1531–1540.
|
[13] |
Wang HW, Zhang FZ, Wang JL, et al. RippleNet: Propagating user preferences on the knowledge graph for recommender systems. Proceedings of the 27th ACM International Conference on Information and Knowledge Management. Torino: ACM, 2018. 417–426.
|
[14] |
Cai HY, Zheng VW, Chang KCC. A comprehensive survey of graph embedding: Problems, techniques, and applications. IEEE Transactions on Knowledge and Data Engineering, 2018, 30(9): 1616-1637. DOI:10.1109/TKDE.2018.2807452 |
[15] |
Wang H, Zhao M, Xie X, et al. Knowledge graph convolutional networks for recommender systems. Proceedings of the 28th International World Wide Web Conference. San Francisco: ACM 2019. 3307–3313.
|
[16] |
李想, 杨兴耀, 于炯等. 基于知识图谱卷积网络的双端推荐算法. 计算机科学与探索, 2022, 16(1): 176–184.
|
[17] |
Zhang LS, Kang Z, Sun XX, et al. KCRec: Knowledge-aware representation graph convolutional network for recommendation. Knowledge-based Systems, 2021, 230: 107399. DOI:10.1016/j.knosys.2021.107399 |
[18] |
Chang C, Wang QY, Jiang JC, et al. Lithium-ion battery state of health estimation using the incremental capacity and wavelet neural networks with genetic algorithm. Journal of Energy Storage, 2021, 38: 102570. DOI:10.1016/j.est.2021.102570 |
[19] |
马甜甜, 杨长春, 严鑫杰, 等. 融合知识图谱和轻量级图卷积网络推荐系统的研究. 智能系统学报, 2022, 17(4): 721-727. DOI:10.11992/tis.202107016 |