摘要:
推荐系统的评论评级数据通常来自开放平台,这可能会吸引一群恶意用户故意插入虚假反馈,这种攻击的存在可能会违背这样的建模假设: 高质量的数据总是可用的,并且这些数据真实地反映了用户的兴趣和偏好。 因此我们提出了GraphRfi——一个基于gcn的用户表示学习框架,以统一的方式执行鲁棒推荐和欺诈者检测。在其端到端学习过程中,欺诈者检测组件中用户被识别为欺诈者的概率自动决定了该用户的评级数据在推荐组件中的贡献;而推荐组件中的预测误差输出是欺诈检测组件中的一个重要特征,所以两个组件可以达到相互增强的效果,从而达到即使在存在先令攻击(即上述攻击)的情况下也能生成稳定的推荐
实现:
在本文中,我们提出了一个端到端基于gcn的用户表示-表示学习(GraphRfi)框架,它由两个主要组件组成,分别专注于鲁棒推荐和欺诈者检测:GCN-based Rating Prediction Component and NRF-based Fraudster Detection Component
首先对于每个用户u构建一个特征向量,其中每个元素为我们预定义的用户行为,对两个任务进行定义:对于鲁棒性评分预测,我们定义一个有权重的二分图,节点即为用户和物品集,边为用户u为物品v的评分r_uv,每个用户都有其行为附加信息X_u,我们的目标就是在给定的图和附加信息中预测一个非恶意用户对他/她过去没有评级过的物品的真实评级;而欺诈者检测就是在给定一组用户U,以及他们的评级数据R和特征矩阵X,该任务旨在将这些用户划分为欺诈者和真正的用户。
推荐组件
利用GCN对于用户和物品的邻域聚合得到新的表示:
其中,聚合函数中加入注意力机制,其注意力得分由一个双层神经网络计算:
更具体的,对于基于GCN的推荐组件来看,其损失函数为平方损失。与一般的损失函数不同的是增加了欺诈检测组件中真实用户的概率 P(y=0) ,即如果该用户的真实性概率较大,那么其在整个推荐任务中的比重会被增强:
欺诈检测组件
对于欺诈检测组件来看,就是普通的二分类任务,只不过在这用的分类模型为神经随机森林(Neural Random Forest ),其损失函数为交叉熵损失。
其中值得注意的是,这部分把推荐组件中的预测误差(Prediction Error)作为了该组件的附加特征,具体的公式为:
其中, 表示用户所有交互的项目集合。
增强后的用户表示为:,并通过一个全连接层得到一个密集表示:
在随机森林中共有两种节点:一是预测点(即为叶节点,0/1)二是决策点,其函数表示为:
那么对于每棵树,用户被预测的标签如下:
对于决策树的森林,即平均所有树的结果:
因此,最终总的损失函数可以表示为两者的总和。
其中, 是超参数用来控制两部分的权重。