算法1:MKAFG算法流程

输入:用户--物品交互矩阵 Y m × n ,知识图谱G

输出:预测函数: y ^ u v = F ( u , v | Θ , Y , G )

1. 初始化参数

2. for k do

//推荐部分(AFM模块+DNN模块)

3. fortstepsdo

4. 从Y中采集正负相互作用的小批量样本,得到物品v相关联的实体 h S ( v )

5. 对输入的物品、用户数据进行One-hot编码;

6. One-hot编码后的用户和物品特征向量进行嵌入操作;

//AFM模块

7. 使用神经注意网络,公式(4)-(5),以不同的权重 a i j 对所有的特征建模后,再通过公式(6)

获取特征间的低阶线性交互关系。

//DNN模块

8. 获取用户和物品高阶组合特征,见公式(7)-(9);

9. 通过公式(1)预测用户u对物品v的点击概率;

10. 通过公式(18)更新推荐模块的所有参数;

11. endfor

//GCN知识嵌入部分

12. 从知识图谱G中采集正负相互作用的小批量样本,得到头实体h相关联的物品 v S ( h )

13. 对输入的头实体、关系实体数据进行One-hot编码;

14. 头实体、关系实体特征向量进行嵌入操作;

15. 头实体h和关系实体r构建邻接矩阵,预测尾实体 t ^

16. 通过等式上的梯度下降更新 F 参数,公式(13),(18);

17. endfor