论文《Graph Neural Networks for Social Recommendation》阅读

论文《Graph Neural Networks for Social Recommendation》阅读

  • 论文概况
  • Introduction
  • GraphRec模型介绍
    • User Modeling
      • Item Aggregation
      • Social Aggregation
    • Item Modeling
    • Rating Prediction和Model Training
  • 总结一下
  • 一点不成熟的评价

论文概况

本文是香港城市大学联合京东发表在WWW 2019上的一篇论文,CCF A会议,提出了模型GraphRec。这篇文章聚焦于社会化推荐(Social Recommendation),是社会化推荐较早的作品之一。

Introduction

论文解决三个问题:

  1. user-item的显式交互包含不同分数(文中称之为意见,opinion),不同的分数代表不同的喜好,如何处理?
  2. user和user之间的社交关系也有亲疏远近之分,不应该有连边就进行平均处理,如何体现?
  3. user同时包含在use-item的交互和user-user的社交关系中,如何处理?

针对这三个问题,作者进行了GraphRec模型的设计。

GraphRec模型介绍

论文《Graph Neural Networks for Social Recommendation》阅读_第1张图片

GraphRec可以分为两部分,User Modeling和Item Modeling,其中User Modeling又分为Item Aggregation和Social Aggregation,下面分别介绍。

User Modeling

Item Aggregation

Item Aggregation 这里是指通过user-item的交互矩阵进行用户在item-space的分解。

具体的,如下式所示,这里我们使用相对容易理解的符号进行重新书写,对文中一些不太友好的符号表示也进行了重新表示:

h i I = σ ( W ⋅ A g g i t e m s ( { x i a ∣ ∀ a ∈ C i } ) + b ) σ ( W ⋅ { ∑ a ∈ C ( i ) α i a x i a } + b ) h_i^I = \sigma (W \cdot Agg_{items}(\{x_{ia} | \forall a \in C_i \}) +b) \\ \sigma(W\cdot\{\sum_{a\in C(i)}\alpha_{ia} x_{ia}\} + b) hiI=σ(WAggitems({xiaaCi})+b)σ(W{aC(i)αiaxia}+b)

这里, h i I h_i^I hiI就表示item空间用户 i i i的embedding表示, A g g i t e m s ( ⋅ ) Agg_{items}(\cdot) Aggitems()表示item-space的聚合函数,可以看到使用加权求和并线性变换的方式进行表示,其中, α i a \alpha_{ia} αia表示权重, x i a x_{ia} xia表示用户 i i i和与其邻接的物品 a a a的聚合向量, C i C_i Ci表示用户 i i i在item-space中与其邻接的所有物品集合。见下式:

x i a = g v ( [ q a ∣ ∣ e r ] ) x_{ia} = g_v([q_a || e_r]) xia=gv([qaer])
x i a x_{ia} xia使用物品 a a a和评分等级 r r r的可训练向量进行表示, g v ( ⋅ ) g_v(\cdot) gv()表示融合函数,文中这里没有交代清楚,联系后文,应该是一个三层的MLP网络。

注意力系数 α i a \alpha_{ia} αia如下面两式所示

α i a ∗ = w 2 T ⋅ σ ( W 1 ⋅ [ x i a ∣ ∣ p i ] + b 1 1 ) + b 2 \alpha_{ia}^* = w_2^T \cdot \sigma(W_1 \cdot [x_{ia} || p_i] + b_11) + b_2 αia=w2Tσ(W1[xiapi]+b11)+b2

α i a = exp ⁡ ( α i a ∗ ) ∑ c ∈ C i α i c ∗ \alpha_{ia} = \frac{\exp(\alpha_{ia}^*)}{ \sum_{c \in C_i} {\alpha_{ic}^*} } αia=cCiαicexp(αia)

可以看到,用户 i i i和与其邻接的物品 a a a的之间的注意力系数通过双层MLP进行计算,输入包括 x i a x_{ia} xia p i p_i pi,因此可以理解为用户 i i i和与其邻接的物品 a a a之间的亲和力(affinity)指数。

Social Aggregation

后面的部分可以参考前面,我们不进行太详细的介绍,大致方式相同。

h i S = σ ( W ⋅ A g g n e i g h b o r s ( { h o I ∣ ∀ o ∈ N i } ) + b ) σ ( W ⋅ { ∑ o ∈ N ( i ) β i o h o I } + b ) h_i^S = \sigma (W \cdot Agg_{neighbors}(\{h_{o}^{I} | \forall o \in N_i \}) +b) \\ \sigma(W\cdot\{\sum_{o\in N(i)}\beta_{io} h_{o}^I\} + b) hiS=σ(WAggneighbors({hoIoNi})+b)σ(W{oN(i)βiohoI}+b)

类似的, h i S h_i^S hiS就表示social空间用户 i i i的embedding表示, A g g n e i g h b o r s ( ⋅ ) Agg_{neighbors}(\cdot) Aggneighbors()表示social-space的聚合函数,可以看到使用加权求和并线性变换的方式进行表示,其中, β i o \beta_{io} βio表示权重, h o I h_o^I hoI是item-space完成的用户 o o o的item-space向量表示, N i N_i Ni表示用户 i i i在social-space中与其邻接的所有用户集合。具体的计算方式和Item Aggregation一样,篇幅原因,不一而足。

h i h_i hi表示最终的用户 i i i的向量表示,先通过连接 h i S h_i^S hiS h i I h_i^I hiI,再通过多层感知机进行变换得到。

需要指出的是,这里的权重矩阵和向量如 W W W b b b等应该是不同的,在计算过程中应该进行区分,上面为了方便理解,没有进行更多的区分。

Item Modeling

直接在用户-物品的交互矩阵中进行提取,使用 z j z_j zj进行表示, A g g u s e r s Agg_{users} Aggusers是其聚合函数, μ j t \mu_{jt} μjt表示注意力系数。

Rating Prediction和Model Training

使用MLP,先通过 h i h_i hi z j z_j zj的concatenation,然后通过多层感知机进行非线性变换得到最终的预测结果。

损失函数使用均方误差MSE进行表示,针对训练过程,一个三元组 ( i , j , r ) (i, j, r) (i,j,r)表示用户 i i i对物品 j j j进行评分,评分为 r r r,其中用户向量 h i h_i hi、物品向量 z j z_j zj、评分向量 e r e_r er都是随机初始化的可训练参数,除此以外各种MLP中的 W W W b b b也是可训练参数,共同构成训练参数。

总结一下

针对开头提出的三个问题,现总结如下:

  1. 不同分数代表用户的不同意见,作者使用意见向量 e r e_r er进行表示,从而可以针对不同评分计算不同的意见注意力分数。
  2. user和user之间,通过social aggregation时使用不同user之间的注意力分数 β i o \beta_{io} βio进行计算
  3. user两方面的属性,分别通过social space和item space进行计算,具体的,先通过item space的评分矩阵得到每个用户的item space表示 h o I h_o^I hoI,将上面的item space表示 h o I h_o^I hoI放进social space,完成用户之间的属性传播。

一点不成熟的评价

本文从社交网络和推荐交互图两部分进行学习,完成社会化推荐任务,值得一读。但是本人认为有以下几点需要注意一下:

  1. 文章中的数学符号比较乱,容易混淆
  2. 论文最后的related work含金量不高,基本没有GNN based social recommendation的相关论文,列举的方法都是比较久远的矩阵分解一类的方法,可以略过。
  3. 公式中一些不规范表达需要注意一下

你可能感兴趣的:(论文阅读,深度学习,推荐系统,机器学习,人工智能,数据挖掘)