IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> 论文《Graph Neural Networks for Social Recommendation》阅读 -> 正文阅读

[开发工具]论文《Graph Neural Networks for Social Recommendation》阅读

论文概况

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

Introduction

论文解决三个问题:

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

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

GraphRec模型介绍

GraphRec

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?=σ(W?Aggitems?({xia??aCi?})+b)σ(W?{aC(i)?αia?xia?}+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?([qa?er?])
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??[xia?pi?]+b1?1)+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??αic??exp(α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?=σ(W?Aggneighbors?({hoI??oNi?})+b)σ(W?{oN(i)?βio?hoI?}+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. 公式中一些不规范表达需要注意一下
  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2021-09-12 13:21:20  更:2021-09-12 13:21:35 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/23 5:00:04-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计