
基于对比学习和语义增强的多模态推荐算法
张凯涵, 冯晨娇, 姚凯旋, 宋鹏, 梁吉业
基于对比学习和语义增强的多模态推荐算法
Multimodal Recommendation Algorithm Based on Contrastive Learning and Semantic Enhancement
产品的多模态数据通常被作为额外的辅助信息引入推荐算法中,丰富用户与产品的表示特征,有效融合用户与产品的交互信息和多模态信息是关键研究内容之一.现有方法在特征融合与语义关联建模上仍存在不足,对此,文中从特征融合视角出发,构建基于对比学习和语义增强的多模态推荐算法.首先,采用图神经网络与注意力机制充分融合协同特征与多模态特征.然后,以协同信息中的交互结构为指导,学习各模态内的语义关联结构.同时,采用对比学习范式捕捉跨模态的表征依赖关系,在对比损失中引入可靠性因子,自适应调整对多模态特征的约束强度,抑制数据噪声的影响.最后,联合优化上述任务,生成推荐结果.在4个真实数据集上的实验表明文中算法的优越性.
The multimodal data of items is typically introduced into recommendation algorithms as additional auxiliary information to enrich the representation features of users and items. How to effectively integrate the interaction information with multimodal information of users and items is a key issue to the research. Existing methods are still insufficient in feature fusion and semantic association modeling. Therefore, a multimodal recommendation algorithm based on contrastive learning and semantic enhancement is proposed from the perspective of feature fusion. Firstly, the graph neural network and attention mechanism are adopted to fully integrate collaborative features and multimodal features. Next, the semantic association structures within each modality are learned under the guidance of the interaction structure in collaborative information. Meanwhile, the contrastive learning paradigm is employed to capture cross-modal representation dependencies. A reliability factor is introduced into the contrastive loss to adaptively adjust the constraint strength of the multimodal features, consequently suppressing the influence of data noise. Finally, the aforementioned tasks are jointly optimized to generate recommendation results. Experimental results on four real datasets show that the proposed algorithm yields excellent performance.
推荐系统 / 多模态推荐算法 / 图神经网络 / 对比学习 {{custom_keyword}} /
Recommender System / Multimodal Recommendation Algorithm / Graph Neural Network / Contrastive Learning {{custom_keyword}} /
表1 数据集统计信息Table 1 Statistics of datasets |
名称 | 用户 数量 | 产品 数量 | 交互 数量 | 稀疏 程度/% | 模态 | 特征 维度 |
---|---|---|---|---|---|---|
Tiktok | 9319 | 6710 | 59541 | 99.904 | 视觉 文本 音频 | 128 768 128 |
Allrecipes | 19805 | 10067 | 58922 | 99.970 | 视觉 文本 | 2048 20 |
Amazon Baby | 19445 | 7050 | 139110 | 99.899 | 视觉 文本 | 4096 1024 |
Amazon Sports | 35598 | 18357 | 256308 | 99.961 | 视觉 文本 | 4096 1024 |
表2 各算法在4个数据集上的指标值对比Table 2 Index value comparison of different algorithms on 4 datasets |
算法 | Tiktok | Allrecipes | Amazon Baby | Amazon Sports | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
R@20 | P@20 | N@20 | R@20 | P@20 | N@20 | R@20 | P@20 | N@20 | R@20 | P@20 | N@20 | |
MF-BPR | 0.0346 | 0.0017 | 0.0130 | 0.0137 | 0.0007 | 0.0053 | 0.0440 | 0.0024 | 0.0200 | 0.0430 | 0.0023 | 0.0202 |
NGCF | 0.0604 | 0.0030 | 0.0238 | 0.0165 | 0.0008 | 0.0059 | 0.0591 | 0.0032 | 0.0261 | 0.0695 | 0.0037 | 0.0318 |
LightGCN | 0.0653 | 0.0033 | 0.0282 | 0.0212 | 0.0010 | 0.0076 | 0.0698 | 0.0037 | 0.0319 | 0.0782 | 0.0042 | 0.0369 |
SGL | 0.0603 | 0.0030 | 0.0238 | 0.0191 | 0.0010 | 0.0069 | 0.0678 | 0.0036 | 0.0296 | 0.0779 | 0.0041 | 0.0361 |
NCL | 0.0658 | 0.0034 | 0.0269 | 0.0224 | 0.0010 | 0.0077 | 0.0703 | 0.0038 | 0.0311 | 0.0765 | 0.0040 | 0.0349 |
HCCF | 0.0662 | 0.0029 | 0.0267 | 0.0225 | 0.0011 | 0.0082 | 0.0705 | 0.0037 | 0.0308 | 0.0779 | 0.0041 | 0.0361 |
VBPR | 0.0380 | 0.0018 | 0.0134 | 0.0159 | 0.0008 | 0.0056 | 0.0486 | 0.0026 | 0.0213 | 0.0582 | 0.0031 | 0.0265 |
LightGCN-M | 0.0679 | 0.0034 | 0.0273 | 0.0235 | 0.0011 | 0.0081 | 0.0726 | 0.0038 | 0.0329 | 0.0705 | 0.0035 | 0.0324 |
MMGCN | 0.0730 | 0.0036 | 0.0307 | 0.0261 | 0.0013 | 0.0101 | 0.0640 | 0.0032 | 0.0284 | 0.0638 | 0.0034 | 0.0279 |
GRCN | 0.0804 | 0.0036 | 0.0350 | 0.0299 | 0.0015 | 0.0110 | 0.0754 | 0.0040 | 0.0336 | 0.0833 | 0.0044 | 0.0377 |
LATTICE | 0.0843 | 0.0042 | 0.0367 | 0.0268 | 0.0014 | 0.0103 | 0.0829 | 0.0044 | 0.0368 | 0.0915 | 0.0048 | 0.0424 |
CLCRec | 0.0621 | 0.0032 | 0.0264 | 0.0231 | 0.0010 | 0.0093 | 0.0610 | 0.0032 | 0.0284 | 0.0651 | 0.0035 | 0.0301 |
MMGCL | 0.0799 | 0.0037 | 0.0326 | 0.0272 | 0.0014 | 0.0102 | 0.0758 | 0.0041 | 0.0331 | 0.0875 | 0.0046 | 0.0409 |
SLMRec | 0.0845 | 0.0042 | 0.0353 | 0.0317 | 0.0016 | 0.0118 | 0.0765 | 0.0043 | 0.0325 | 0.0829 | 0.0043 | 0.0376 |
MMSSL | 0.0921 | 0.0046 | 0.0392 | 0.0367 | 0.0018 | 0.0135 | 0.0962 | 0.0051 | 0.0422 | 0.0998 | 0.0052 | 0.0470 |
CLSMRec | 0.1041 | 0.0052 | 0.0462 | 0.0424 | 0.0021 | 0.0167 | 0.0970 | 0.0051 | 0.0427 | 0.1007 | 0.0053 | 0.0481 |
p-value | 4.57e-7 | 2.48e-7 | 2.3e-7 | 1.44e-8 | 2.02e-8 | 3.88e-9 | 7.43e-7 | - | 6.9e-7 | 5.80e-6 | 4.36e-6 | 1.86e-6 |
提升率/% | 13.03 | 13.04 | 17.86 | 15.53 | 16.67 | 23.70 | 0.83 | - | 1.18 | 0.90 | 1.92 | 2.34 |
表3 CLSMRec和各变体在4个数据集上的消融实验结果Table 3 Ablation experiment results of CLSMRec and its variants on 4 datasets |
算法 | Tiktok | Allrecipes | Amazon Baby | Amazon Sports | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
R@20 | P@20 | N@20 | R@20 | P@20 | N@20 | R@20 | P@20 | N@20 | R@20 | P@20 | N@20 | |
CLSMRec-CL_u | 0.0998 | 0.0050 | 0.0456 | 0.0417 | 0.0019 | 0.0163 | 0.0966 | 0.0050 | 0.0418 | 0.0994 | 0.0049 | 0.0465 |
CLSMRec-CL_i | 0.1016 | 0.0051 | 0.0458 | 0.0419 | 0.0019 | 0.0164 | 0.0955 | 0.0050 | 0.0415 | 0.1001 | 0.0050 | 0.0466 |
CLSMRec-Str | 0.0989 | 0.0049 | 0.0443 | 0.0420 | 0.0020 | 0.0164 | 0.0935 | 0.0048 | 0.0413 | 0.0999 | 0.0050 | 0.0465 |
CLSMRec-ζ | 0.1015 | 0.0051 | 0.0457 | 0.0421 | 0.0020 | 0.0166 | 0.0953 | 0.0049 | 0.0413 | 0.1003 | 0.0051 | 0.0472 |
CLSMRec-GCN | 0.0674 | 0.0034 | 0.0276 | 0.0240 | 0.0012 | 0.0088 | 0.0788 | 0.0041 | 0.0342 | 0.0927 | 0.0047 | 0.0423 |
CLSMRec | 0.1041 | 0.0052 | 0.0462 | 0.0424 | 0.0021 | 0.0167 | 0.0970 | 0.0051 | 0.0427 | 0.1007 | 0.0053 | 0.0481 |
表4 L对算法性能的影响Table 4 Effect of L on performance of different algorithms |
L | Tiktok | Allrecipes | Amazon Baby | Amazon Sports | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
R@20 | P@20 | N@20 | R@20 | P@20 | N@20 | R@20 | P@20 | N@20 | R@20 | P@20 | N@20 | |
1 | 0.0786 | 0.0039 | 0.0333 | 0.0265 | 0.0013 | 0.0106 | 0.0847 | 0.0044 | 0.0373 | 0.0970 | 0.0051 | 0.0441 |
2 | 0.1041 | 0.0052 | 0.0462 | 0.0426 | 0.0021 | 0.0168 | 0.0970 | 0.0051 | 0.0427 | 0.1007 | 0.0053 | 0.0481 |
3 | 0.0886 | 0.0044 | 0.0430 | 0.0339 | 0.0017 | 0.0144 | 0.0885 | 0.0047 | 0.0394 | 0.0969 | 0.0051 | 0.0461 |
4 | 0.0856 | 0.0043 | 0.0387 | 0.0339 | 0.0017 | 0.0144 | 0.0833 | 0.0044 | 0.0371 | 0.0892 | 0.0047 | 0.0417 |
[1] |
{{custom_citation.content}}
{{custom_citation.annotation}}
|
[2] |
{{custom_citation.content}}
{{custom_citation.annotation}}
|
[3] |
{{custom_citation.content}}
{{custom_citation.annotation}}
|
[4] |
{{custom_citation.content}}
{{custom_citation.annotation}}
|
[5] |
{{custom_citation.content}}
{{custom_citation.annotation}}
|
[6] |
{{custom_citation.content}}
{{custom_citation.annotation}}
|
[7] |
{{custom_citation.content}}
{{custom_citation.annotation}}
|
[8] |
{{custom_citation.content}}
{{custom_citation.annotation}}
|
[9] |
{{custom_citation.content}}
{{custom_citation.annotation}}
|
[10] |
(
{{custom_citation.content}}
{{custom_citation.annotation}}
|
[11] |
{{custom_citation.content}}
{{custom_citation.annotation}}
|
[12] |
{{custom_citation.content}}
{{custom_citation.annotation}}
|
[13] |
{{custom_citation.content}}
{{custom_citation.annotation}}
|
[14] |
{{custom_citation.content}}
{{custom_citation.annotation}}
|
[15] |
{{custom_citation.content}}
{{custom_citation.annotation}}
|
[16] |
{{custom_citation.content}}
{{custom_citation.annotation}}
|
[17] |
{{custom_citation.content}}
{{custom_citation.annotation}}
|
[18] |
(
{{custom_citation.content}}
{{custom_citation.annotation}}
|
[19] |
{{custom_citation.content}}
{{custom_citation.annotation}}
|
[20] |
{{custom_citation.content}}
{{custom_citation.annotation}}
|
[21] |
{{custom_citation.content}}
{{custom_citation.annotation}}
|
[22] |
{{custom_citation.content}}
{{custom_citation.annotation}}
|
[23] |
{{custom_citation.content}}
{{custom_citation.annotation}}
|
[24] |
{{custom_citation.content}}
{{custom_citation.annotation}}
|
[25] |
{{custom_citation.content}}
{{custom_citation.annotation}}
|
[26] |
{{custom_citation.content}}
{{custom_citation.annotation}}
|
[27] |
{{custom_citation.content}}
{{custom_citation.annotation}}
|
[28] |
{{custom_citation.content}}
{{custom_citation.annotation}}
|
{{custom_ref.label}} |
{{custom_citation.content}}
{{custom_citation.annotation}}
|
/
〈 |
|
〉 |