「工业落地」阿里在图神经网络推荐的探索

本文是对阿里发表在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.