作者 | 对白
对白的算法屋
编者寄语:
本文看完,相信你也能熟练掌握这些基于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
论文目标:将图表示学习应用到推荐中,初步解决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
论文目标:学习异构网络的结点和边表示
图数据的构建方法: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
论文目标:同时学习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
论文目标:在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
论文目标:将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
论文目标:介绍了early summarization问题(在预测前将结点和邻居信息压缩到一个向量中),并提出模型解决
图的构建方法:普通异构图
模型架构:
模型特点:
1.在metapath-guide neighbor,所有类型metapath的所有相关结点都参与
2.在interaction层,使用卷积操作
Conv: shift, product, sum
3.在aggregation层,两层attention(Node/Element-level、Path/Matrix-level)
机器学习/对比学习算法交流群
加的时候备注一下:昵称+学校/公司。群里聚集了很多学术界和工业界大佬,欢迎一起交流算法心得,日常还可以唠嗑~
关于我
你好,我是对白,硕士毕业于清华,现大厂算法工程师,拿过八家大厂的SSP级以上offer。
本科时独立创业五年,成立两家公司,并拿过总计三百多万元融资(已到账),项目入选南京321高层次创业人才引进计划。创业做过无人机、机器人和互联网教育,保研后选择退出。
我每周至少更新一篇原创,分享自己的算法技术、创业心得和人生感悟。我正在努力实现人生中的第一个小目标,上方关注后可以加我私信交流。
期待你关注我的公众号,我们一起前行。