作者 | 对白

出品 | 对白的算法屋

编者寄语:

本文看完,相信你也能熟练掌握这些基于GNN的推荐模型。

图神经网络(GNN)相信大家也不陌生了,在还没有Graph Embedding之前,节点的属性信息可以通过Item2vec这种序列化Embedding的方式去学习,效果虽然不错,但它忽略了节点的结构信息。而GNN能够自然地整合节点属性信息和拓扑结构信息,因此在许多领域广泛应用。

在推荐系统中,目前的主要挑战是从用户-物品交互以及辅助信息中学习有效的User-Item Embedding。由于大部分的信息本质上都是图结构,并且GNN在表示学习方面具有先天优势,因此在推荐系统中蓬勃发展

本文对基于GNN的推荐算法进行了总结,汇总了从2018至2020年期间工业界和学术界比较有代表性的29个基于的GNN推荐模型此外,我从近三年KDD的论文中挑选了六篇值得一读的GNN推荐模型为大家解读,分别是4篇阿里的论文,1篇滴滴的论文和1篇亚马逊的论文,话不多说,让我们一起欣赏一下GNN在推荐系统中的花式玩法吧~

基于图神经网络的推荐算法分类

基于图神经网络的推荐模型总结

1 General Recommendation

1.1 General RS without side information 

Neighbor Aggregation:区分邻居的影响大小,比mean-pooling,degree normalization效果好

Information Update:当后续没有显式的特征交叉步骤时,mean pooling, sum pooling表现足够好,若有,则concat能保留更多信息

Final Node representation:有些使用GNN的最后一层向量作为表示,有些则用所有层(可能表示更好一些)

1.2 General RS with social network

Influence modeling:区分社交网络不同的好友的影响力可以提升效果,进一步的,考虑朋友在不同的Item上的影响力也不一样,可以在item稀疏时提升较大

Preference Integration:将social network 和user-item bipartite 两个图分开建模和统一建模都可,没有明显区别。

1.3 General RS with knowledge graph

Graph simplification:为了将GNN较为高效地应用于KG,需要对图进行简化(同时图信息有损),例如AKGE利用最短路径来重构子图,IntentGC仅保留一部分结点来构造i2i和u2u

Multi-relation propagation:KG有多重类型的边,因此需要使用attention 机制来聚集来自邻居的信息

User intergration:有些工作利用GNN来学习item表示,假设用户具有静态的表示;另外的则将user作为KG中一种entity来学习

2 Sequential recommendation

2.1 SR without side information

Graph construction:将sequence 转为graph,转化的方法决定了GNN的效果,一般将按时序出现的相邻K(一般K=2)个item之间进行连边

Information propagation:在聚集邻居特征时,相比mean-pooling, GRU在序列建模中效果更好一些

Sequential preference:将序列的结点表示集成为最终的结点表示,attention, GRU皆可

2.2 SR with social network

DGRec:使用LSTM来抽取用户的动态兴趣,再使用GAT来对不同好友的影响进行聚集

3. 阿里EGES

论文标题:Billion-scale Commodity Embedding for E-commerce Recommendation in Alibaba

论文来源:KDD2018,Alibaba

论文目标:将图表示学习应用到推荐中,初步解决scalability, sparsity and cold start等问题

图数据的构建方法:session-based users’ behaviors中相邻的item连接一条有向边

模型架构:

模型特点:

base model :先随机游走,再使用negative sampling优化的Skip-gram模型来学习表示。

enhance model:利用side information,给每种不同类型的side information的表示以不同的权重,其中SI 0代表item id。

注:数据清洗

1.删除点击后停留时间少于1s的点击(无意图点击)

2.删除过于活跃的用户(buy>1000 item, click >3500 item in 3 months)

4. 阿里GATNE

论文标题:Representation Learning for Attributed Multiplex Heterogeneous Network

论文来源:KDD2019 Alibaba&Tsinghua

论文目标:学习异构网络的结点和边表示

图数据的构建方法:user-item交互信息(点击,加入购物车等)

模型架构:

模型特点:

为异构网络中的每个结点学习一个基本表示(base embedding),在结点的每种边类型下都学一个表示(edge embedding),将两类表示合并作为最后的表示。

总结:

有Inductive和transductive两种setting:

Inductive learning中将结点的属性作为学习结点和边表示的初始化输入。

5. 阿里M2GRL

论文标题:M2GRL: A Multi-task Multi-view Graph Representation Learning Framework for Web-scale Recommender Systems

论文来源:KDD2020 Alibaba

论文目标:同时学习multi-view的表示,并对齐

图数据的构建方法:从用户的历史行为序列中构造出item graph(连续的item之间连边);category graph, shop graph

模型架构:

模型特点:

多task多view的图表示学习框架,分为两类任务:

1.view内的任务,关注与view内的同构图的表示学习,使用Negative sampling优化的Skip-gram模型来学习

2.view间的任务,专注于学习不同view的结点的关系,采取对齐技术来将不同view的结点的映射到同一空间,并学习结点之间的关系

利用同调不确定性来学习不同任务的权重

备注:

数据清洗

1.删除点击后停留时间少于2s的user-item pair(用户可能不感兴趣)

2.打开到关闭app的tm来分割和合并session。若有1小时的空闲时间,将一个session分成两个;如果时间跨度少于30分钟,合并两个连续的session。

6. 阿里DHGAT

论文标题:A Dual Heterogeneous Graph Attention Network to Improve Long-Tail Performance for Shop Search in E-Commerce

论文来源:KDD2020 Alibaba

论文目标:在shop search上提高长尾query和shop的效果

图数据的构建方法:从用户的搜索、点击和下单行为历史构造。

结点类型:Shop(S)、Query(Q)、Item(I)

边类型:

1.同构边:Q-Q,同一个session中的query连边,导致相同点击shop的query连边;S-S,在同个query下的shop连边

2.异构边:Q-S(历史数据中直接获得,从item-query下下单的),Q-I,S-I

模型架构:

模型特点:

使用GNN来丰富shop和query的表示含义,定义了各自的异构邻居。

1.双层attention,1.同种异构边,2.不同种异构边

2.双塔+异构attention

3.从product search中transfer knowledge

4.user feature作为query特征一部分

7 .滴滴Gemini

论文标题:Gemini: A Novel and Universal Heterogeneous Graph Information Fusing Framework for Online Recommendations

论文来源:KDD2020 DiDi

论文目标:将User-item交互的异构图转化为两个semi-Homogeneous图

图的构建方法:任意二分图

模型架构:

模型特点:

1.将一个异构图转化为两个半同构图,其中同构图上的边的属性为node list(原来的共同1跳邻居结点)

2.边上的点越多,包含的信息越多;但在所有边上出现次数越多,越不重要。单个边上点出现的次数(tf),所有边上点出现的次数(idf) ,使用TF-IDF pooling (分桶表示)

3.使用attention机制来组合结点和边表示

4.使用edge conv来获得该层的结点表示

5.预测

备注:

复杂度较高,构造了u-u图,比原始的u-i图更大

8. 亚马逊NIRec

论文标题:An Efficient Neighborhood-based Interaction Model for Recommendation on Heterogeneous Graph

论文来源:KDD2020, Amazon

论文目标:介绍了early summarization问题(在预测前将结点和邻居信息压缩到一个向量中),并提出模型解决

图的构建方法:普通异构图

模型架构:

模型特点:

1.在metapath-guide neighbor,所有类型metapath的所有相关结点都参与

2.在interaction层,使用卷积操作

Conv: shift, product, sum

3.在aggregation层,两层attention(Node/Element-level、Path/Matrix-level)

往期精彩回顾适合初学者入门人工智能的路线及资料下载机器学习及深度学习笔记等资料打印机器学习在线手册深度学习笔记专辑《统计学习方法》的代码复现专辑
AI基础下载机器学习的数学基础专辑黄海广老师《机器学习课程》视频课

本站qq群851320808,加入微信群请扫码:

业界盘点|为什么推荐算法都开始结合图神经网络了?相关推荐

  1. 2021-AAAI-KCGN-面向社会推荐的知识感知耦合图神经网络

    标题:Knowledge-aware Coupled Graph Neural Network for Social Recommendation 翻译:<面向社会推荐的知识感知耦合图神经网络& ...

  2. RetaGNN: 面向整体序列推荐的关系型时态注意图神经网络 WWW2021

    ABSTRACT 顺序推荐(SR)是根据用户当前访问的项目为用户准确地推荐项目列表.在新用户不断进入现实世界的同时,一项关键任务是拥有感应式SR,它可以产生用户和物品的嵌入而无需重新培训.考虑到用户与 ...

  3. 业界分享 | 京东推荐算法精排技术实践

    作者 | 王冬月 京东 京东主站推荐的主要业务场景覆盖APP中用户购买前.购买中和购买后的全流程,日均千万级DAU.不同业务场景下用户需求不同,我们相应的优化目标也不同. 首页feeds和" ...

  4. 揭秘网易云音乐的个性化推荐算法【黑科技】

    在"精准推荐者得民心"的今天,推荐系统已成为各大互联网公司的标配.但由于现实中很多数据是非欧氏空间生成的(例如,社交网络.信息网络等),一些复杂场景下的业务需求很难通过协同过滤等基 ...

  5. 关于推荐算法工程师大家比较关注的几个问题

    今天在<推荐系统开发实战>的读者群里聊天,在探讨技术问题的时候发现也有朋友对一些非技术的问题比较感兴趣,这里进行总结和分享,希望能够帮助到看这篇文章的人. 欢迎加我的微信进行技术交流,非技 ...

  6. 推荐算法三视角:矩阵,图,时间线

    关于推荐系统,如果在忘掉所有的公式和代码,忘记所有的语言描述,脑海里就剩下几张图景,会是什么?一张二维表格,一个拓扑图,一条时间线.这三幅图景,是我看待推荐算法的三种视角. 视角一:矩阵视角 在脑中想 ...

  7. gram矩阵_推荐算法三视角:矩阵,图,时间线

    关于推荐系统,如果在忘掉所有的公式和代码,忘记所有的语言描述,脑海里就剩下几张图景,会是什么?一张二维表格,一个拓扑图,一条时间线.这三幅图景,是我看待推荐算法的三种视角. 视角一:矩阵视角 在脑中想 ...

  8. 基于物品的协同过滤推荐算法——读“Item-Based Collaborative Filtering Recommendation Algorithms”

    最近参加KDD Cup 2012比赛,选了track1,做微博推荐的,找了推荐相关的论文学习."Item-Based Collaborative Filtering Recommendati ...

  9. 推荐算法工程师必备!!!协同过滤推荐算法总结

    推荐算法具有非常多的应用场景和商业价值,因此对推荐算法值得好好研究.推荐算法种类很多,但是目前应用最广泛的应该是协同过滤类别的推荐算法,本文就对协同过滤类别的推荐算法做一个概括总结,后续也会对一些典型 ...

最新文章

  1. 内存卡损坏 linux 修复,Linux系统恢复工具
  2. 从0开始搭建编程框架——插件
  3. java通用库,java数据库访问通用种
  4. Oracle动态采样学习
  5. Android技术博文
  6. Spring+Hibernate+Struts2整合所需要的Jar包
  7. 2019ICPC(南昌) - The Nth Item(矩阵快速幂)
  8. 【windows】windows系统下,在任务管理器的进程选项卡中查看PID/任务管理器怎么查看PID...
  9. 编写jmeter测试用例_Jmeter性能测试系列篇(十)--批量用例执行结果检查设置
  10. matlab impyramid,图像 – Matlab impyramid问题
  11. 时间戳timestamp
  12. 线上售楼处,卖房神器还是营销噱头?
  13. cad卸载_解决CAD小白入门的第一个难题,三招任你选
  14. web爬虫学习(四)——手机APP爬取
  15. UserControl关闭事件
  16. 根据当前时间获取当前周的周一到周日的日期
  17. Python灰帽子——黑客与逆向工程师的Python编程之道pdf百度云
  18. 中国名人名言网今天在天csdn开通了
  19. 动态网站的制作与设计_【大师活动】设计及制作动态Logo
  20. 如何做facebook营销

热门文章

  1. java设计模式--工厂模式
  2. 2793 [Poi2012]Vouchers
  3. Android自定义退出弹出框
  4. DataGrid 中間隔色的實現
  5. 批处理文件将多台连接的手机安装同一个APP
  6. UNWAVERING SPIRIT AND VALUES
  7. SPHINX 文档写作工具安装简要指南 - windows 版 - 基于python
  8. 重载操作符与转换(上)
  9. 显示和隐藏系统任务栏的类
  10. emberjs重写补充类之reopen方法和reopenClass方法