摘要:为了得到用户的向量表示,对于左图路径UIQ来说,首先利用上一部分中的uniform term embedding得到query和item的向量表示,然后对邻居进行聚合。3. 利用异构GNN,聚合基于metapath的邻居embedding,来分别学习用户和query的向量表示。

本文是对阿里发表在KDD2019的论文Metapath-guided Heterogeneous Graph Neural Network for Intent Recommendation的解读。

背景介绍

文章核心思想?

本文关注意图推荐,即直接根据用户的历史行为进行推荐,无需用户进行任何输入。文章中提出一种Metapath-guided Emebedding method for Intent Recommendation(MEIRec)模型,设计了metapath-guided这种基于元路径的方法来学习异构图的网络的节点向量表示,同时为了解决参数过多的问题,提出Uniform term embedding方法,把具有相同term(可以理解为分词结构的目标映射到同一个向量空间中,在实验中,模型效果表现良好。

意图推荐

意图推荐,即不需要用户的任何输入,根据用户的历史行为进行推荐。下图为淘宝的意图推荐例子,根据用户的历史行为,预测出用户可能对air jordan感兴趣,在搜索栏中进行推荐,提示用户可以进行搜索。意图推荐不同于query推荐,它是根据用户的历史行为进行推荐,而不是之前相似的query;并且它不需要输入任何的query;意图推荐也不同于item推荐,它需要考虑用户、item、query的交互关系;并且用户的意图是经常动态变化的。

从数学的角度,给定一个集合 ,其中  是p个用户的集合;  是q个item的集合;  是r个query的集合;  是n被term的集合;term可以理解为分词,比如说Hand bag有两个term,hand和bag,在本文中,query和item都被看作由term组成的;A表示每一项的特征;B表示各项之间的交互。意图推荐的目的就是给每个用户 推荐query 

Metapath-guided 邻居

Metapath-guided邻居是在给定特定的metapath的条件下,每项随机游走的邻居,在元路径下,object o的第i步邻居为 ,其中 是o自身。比如说,在下图中,给定元路径"User-Item-Query(UIQ)",对于用户 来说,  ,  ,则 用户所有的邻居为 

文章贡献:

1. 关注意图推荐问题,根据用户历史行为进行个性化推荐

2. 提出了基于GNN的MEIRec模型,利用元路径捕捉节点邻居,探索HIN中的交互信息;同时提出Uniform term embedding方法学习term向量,减少参数空间

3. 利用大规模数据线下实验;利用淘宝数据线上实验。

模型架构

模型结构如下图所示。分成五个部分:

1. 模型输入为三元组<user, item, query>;

2. 利用uniform term embedding对每个item和query产生初始的embedding;

3. 利用异构GNN,聚合基于metapath的邻居embedding,来分别学习用户和query的向量表示;

4. 融合不同元路径下的用户或query的向量表示;

5. 结合上一步得到的用户、query向量表示,再融合画像特征,预测每个用户对各个query的概率。

对以上几个步骤分别进行详细的介绍

Uniform Term Embedding

在意图推荐的场景下,用户和query有数亿个,计算量较大,本文提取query和item名称的分词结果进行学习,得到term字典 ,而每个query和item名称为各个term的组合。比如说,Hand bag由两个term:Hand和bag组成,LV Hand bag由三个term:LV,Hand,bag组成,这样利用term可以大大减少参数,缩短计算时间。在本文的实验中,如果分别学习query和item,需要10亿参数,而学习term向量只需要28w参数。

在term向量学习过程中,首先把query和item对应的term映射为one-hot表示,假设一共有n个term,则与的item对应one-hot表示为:

通过类似上述的表示后,就可以把每个term映射到低维的向量表示,然后再学习每个item和query对应的item的集合:

,其中是term 的向量表示, 是不同term之间的聚合函数,本文利用了均值。通过上述式子就可以学到item/query的低维向量表示。

Metapath-guided Heterogeneous Graph Neural Network

类似于GCN聚集邻居信息的思想,本文基于元路径的异构GNN,利用元路径下的游走路径,分别聚合用户和query的邻居信息,来得到用户/query的向量表示。如图所示:

为了得到用户的向量表示,对于左图路径UIQ来说,首先利用上一部分中的uniform term embedding得到query和item的向量表示,然后对邻居进行聚合。在聚合邻居的过程中,由于用户 的一步邻居为 ,二步邻居为  ,聚合步骤如下:

1. 首先先聚合二步邻居,聚合,得到 的embedding,然后聚合 ,得到 的embedding。

2. 然后聚合一步邻居,聚合,得到用户 在元路径UIQ下的embedding

同样的道理,可以得到用户在右图元路径UQI下的embedding,将二者再进行聚合即可得到用户 的embedding

User Modeling

综合上述两部分,总结以下如何得到用户的向量表示,即图中c部分:Metapath-guided Heterogeneous GNN Layer

分别对每一种元路径的用户向量表示进行建模。在路径UIQ下,对于目标用户u,得到一步与二步邻居,首先聚合二步邻居query到一步邻居item中,聚合item j的邻居query如下:

然后,聚合一步邻居到当前用户i如下:

最后,对不同元路径下的用户向量表示进行聚合,得到最终的用户向量表示 :

由于用户行为为序列数据,所以此时的聚合函数为LSTM

Query Modeling

和user modeling很相似,此处对query进行建模,得到query的向量表示:

但是,对于query的邻居(item和用户)来说,并没有序列关系,所以此处的聚合函数为CNN.

Optimization Objective

模型中,需要预测每一个用户i对query j的概率。通过上述部分,得到了用户和query的向量表示,此外数据还有一些统计特征S,把用户向量、query向量、统计特征融合到MLP层,得到每个用户i对query的得分:

损失函数为:

Model Analysis

对模型复杂度进行分析:假设有M个object,N个term,h个隐藏层,n个神经元,向量d维,比较参数空间复杂度:

  • 传统方法中:,其中M是亿级

  • 本文方法中:,其中N是10w级

参考文献:

Fan S, Zhu J, Han X, et al. Metapath-guided Heterogeneous Graph Neural Network for Intent Recommendation[C]//Proceedings of the 25th ACM SIGKDD International Conference on Knowledge Discovery & Data Mining. 2019: 2478-2486.

推荐阅读

AINLP年度阅读收藏清单

中文命名实体识别工具(NER)哪家强?

学自然语言处理,其实更应该学好英语

斯坦福大学NLP组Python深度学习自然语言处理工具Stanza试用

太赞了!Springer面向公众开放电子书籍,附65本数学、编程、机器学习、深度学习、数据挖掘、数据科学等书籍链接及打包下载

数学之美中盛赞的 Michael Collins 教授,他的NLP课程要不要收藏?

自动作诗机&藏头诗生成器:五言、七言、绝句、律诗全了

模型压缩实践系列之——bert-of-theseus,一个非常亲民的bert压缩方法

这门斯坦福大学自然语言处理经典入门课,我放到B站了

征稿启示 | 稿费+GPU算力+星球嘉宾一个都不少

关于AINLP

AINLP 是一个有趣有AI的自然语言处理社区,专注于 AI、NLP、机器学习、深度学习、推荐算法等相关技术的分享,主题包括文本摘要、智能问答、聊天机器人、机器翻译、自动生成、知识图谱、预训练模型、推荐系统、计算广告、招聘信息、求职经验分享等,欢迎关注!加技术交流群请添加AINLPer(id:ainlper),备注工作/研究方向+加群目的。

相关文章