1.一种基于生成对抗网络的社交推荐方法,其特征在于,所述方法包括:步骤1,通过第一元路径和第二元路径,将基于用户与用户社交、用户与项目交互的异构图拆分为第一同质子图和第二同质子图,所述第一同质子图是用于描述用户之间有社交链接关系的用户关系图,所述第二同质子图是用于描述用户之间没有社交链接关系、但共享相同项目的用户关系图;
步骤2,基于异构图,通过图神经网络进行预训练,得到用户嵌入向量和项目嵌入向量,基于第一同质子图,通过图神经网络进行预训练,得到第一元路径嵌入向量,基于第二同质子图,通过图神经网络进行预训练,得到第二元路径嵌入向量,再基于第一元路径嵌入向量和第二元路径嵌入向量得到联合嵌入向量;
步骤3,在生成对抗网络的生成器中,通过直通式Gumbel‑Softmax将联合嵌入向量转换为用户独热向量和项目独热向量;
步骤4,确定生成对抗网络中生成器的损失函数和判别器的损失函数;
步骤5,将用户独热向量、项目独热向量、用户嵌入向量、项目嵌入向量分别输入至生成器和判别器,并基于生成器的损失函数和判别器的损失函数,迭代更新生成对抗网络的目标函数,最后通过生成对抗网络输出最终的推荐项目列表;
步骤2具体包括:
将相同步长的随机游走序列 分别施加在异构图、第一同质子图和第二同质子图上,其中, , 是游走步长, 、 、 分别表示第1个、第2个、第 个游走过程中的节点;
对于异构图、第一同质子图和第二同质子图中的每个序列,将每个用户和项目作为中心节点,将随机游走序列长度大小范围内的节点视为正样本,在正样本之外,从异构图、第一同质子图和第二同质子图中的节点随机选择一些节点作为负样本;
采用跳子模型训练异构图、第一同质子图和第二同质子图中的每个序列,从而得到用户嵌入向量、项目嵌入向量、第一元路径嵌入向量、第二元路径嵌入向量;
通过哈达玛积融合第一元路径嵌入向量、第二元路径嵌入向量,得到联合嵌入向量;
步骤3具体包括:
先将联合嵌入向量转换为概率分布,表达式如下:
;
其中, 是联合嵌入向量中的第i个元素, 是联合嵌入向量中的第j个元素, 是联合嵌入向量中元素总数, 表示通过softmax函数转换向量 所获得的概率分布中的值;
然后为 添加噪声,经过标准化后导出一个概率分布向量 ,表达式如下:;
其中, 是添加到 的Gumbel噪声, 是温度参数, 表示通过softmax函数转换向量 所获得的概率分布中的值, 是添加到 的Gumbel噪声;
然后进行前向传播,训练生成对抗网络中的生成器,定义 中最大元素的索引为 ,构造用户独热向量 ,表达式为:;
然后进行反向传播,更新生成对抗网络中的生成器,使用 作为梯度,满足以下条件式:;
其中, 表示微分, 表示生成器的损失函数;
在得到用户独热向量 后,根据以下步骤得到项目独热向量,先从原始数据集中建立用户与项目的交互矩阵 ,然后创建一个可训练矩阵 ,进而得到项目独热向量 ,表达式如下:;
其中, 表示直通式Gumbel‑Softmax函数,T表示转置操作, 表示哈达玛积;
步骤4中,生成器的损失函数 满足以下条件式:
;
其中, 是数学期望操作, 表示Sigmoid函数, 表示用户u对项目v的评分,表示用户u对项目独热向量 的评分, 表示合成项目的集合, 表示合成项目的条件概率分布;
判别器的损失函数 满足以下条件式:
;
其中, 表示判别器的可学习参数, 表示用户u对项目j的评分, 是正则化项;
步骤5中,生成对抗网络的目标函数 的表达式为:;
其中, 表示判别器, 表示生成器。
2.根据权利要求1所述的基于生成对抗网络的社交推荐方法,其特征在于,步骤5中,生成对抗网络的生成器和判别器的参数分别通过随机梯度上升和下降来更新,表达式为:;
其中, 、 分别表示t时刻、t+1时刻对应的生成器的可学习参数, 表示学习率, 表示对生成器的损失函数中的参数求梯度, 、 分别表示t时刻、t+1时刻对应的判别器的可学习参数, 表示对判别器的损失函数中的参数求梯度, 表示用户u在生成器中与项目v互动的评分, 表示用户u在生成器中与项目独热向量互动的评分, 表示用户u在判别器中与项目v互动的评分, 表示用户u在判别器中与项目独热向量 互动的评分, 表示用户u在判别器中与项目j互动的评分。