gragh embedding相关论文小结(四)

关于一些工业界Graph Embedding论文的整理

  • Billion-scale Commodity Embedding for E-commerce Recommendation in Alibaba
  • Learning and Transfering IDs Representation in E-commerce
  • Session-based Recommendation with Graph Neural Networks
  • STAMP:Short-Term Attention/Memory Priority Model for Session-based Recommendation
  • Neural Attentive Session-based Recommendation
  • Real-time Personalization using Embeddings for Search Ranking at Airbnb

Billion-scale Commodity Embedding for E-commerce Recommendation in Alibaba
本篇论文基于Session-based Graph embedding来实现RS。而RS分为两阶段:match和rank,简单的说就是根据user或者query来选出candidate items set,之后给其中每一个item打分来排名发给user从而实现推荐,这篇论文关注的是math阶段的解决方法,考虑的是side info和item embedding。既然是Graph embedding方法,就得有Graph。这里是做推荐,采用的也是已有的Session-based方法,就是根据user交互过的items,在同一个session中的相邻的item则加入带权边,多个user则会形成一个Graph。当然这种Session-based方法我认为也是有问题的,一个是Session window大小选择不同的业务不同的公司标准不同难以达成一个统一的度量,再就是用户interesting会变化,如何在Graph中反应出来是个问题。文章中提到的三个模型(Base Graph Embedding,Graph Embedding with Side information,Enhanced Graph Emebedding with Side Infomation)实际是一种渐进递增的关系。最基本的RGE就是基于Session-based Graph构建的DeepWalk模型,也就是item的co-occur原则,这是这里的共现不再是一维的language而是变为非欧空间高维的Graph:
在这里插入图片描述
文章说改进版的Graph Embedding也就是GES是加入了Side Information是为了解决cold-start item问题。而这个改进版基于的前提假设论文中说的也很明白:“It means that items with similar side information should be closer in the embedding space”,根据一般常识好像是那么回事。所以论文将与该item相关联的各个类型属性的embedding以及自身的item embedding直接做了平均,结果再作为该item的embedding,当然用的模型还是DeepWalk:
在这里插入图片描述
后来的EGES则是进行加权平均,这就有些类似于对item属性embedding做convolution操作,这里可以采用更好的attention机制啊,不一定非要弄一个weight matrix来实现。而且将item embedding和type embedding直接平均,意味着默认两种embedding处于同一个embedding space,但是这在文中并没有给出说明或者证明,而是直接生硬的平均。这里的改进我倒是认为可以在将各个embedding采用MEAN方法进行aggregate之前可以再多加一层神经网络也就是全连接层进行变换,假使各embedding不在同一个space空间之内通过这一层变换可以通过学习和参数的调整将其变换到同一个空间内然后再进行平均或许会更好一些。
但是对于文中提到的具体的实现方法有几点问题。一个是后两个版本为了解决以及更好的解决cold-start item问题,但是再模型中最初的输入是one-hot vector向量,基于的是item序号,这对于new item怎么办??我没想明白具体怎么操作。

Learning and Transfering IDs Representation in E-commerce
仍然是通过DeepWalk模型来实现Graph embedding for RS,手段在于将各种ID包括user ID,item ID,product ID,store ID,brand ID,category ID等ID转化为Embedding。one-hot向量的缺点在于稀疏性并且不能反应item之间的关系。论文是想"embed all types of IDs in E-commerce into one semantic space",item与user以及该item的相关属性相关联。学习item embedding的时候采用的方法依旧是DeepWalk那一套,基于item的co-occur原则来设计模型,加入了负采样方法,并且采样方法论文考虑到了graph中节点度不同的特性不用均匀分布,而是Zipfan distribution。论文中的一句话对NCE说的很经典:“Noise Contrastive Estimation(NCE) assumes that a good model is able to differentiate data from noise and subsequently approximates the log probability of softmax with the means of logistic regression.”。
之后便是想去embed all type IDs,将其划分为了两种ID:user ID和item ID and its attributes IDs。很显然作者认为item ID和它的attributes ID是属于同一个space的。接下来需要jointly embedding attribute ID,一共有两条intuition,实际可以看作是两条规则约束,其一是"the co-occurence of item IDs also implicates the co-occurrence of corresponding attribute IDs",于是将与该item相关的ID组成一个数组,以该数组为对象求解后验概率分布,实际单纯从论文中(7)式子来看,做的事情就是求解target item与context item共现的概率以及两个item相关联的all type ID相对应的共现的概率之和,当然加入了负采样机制。其二是"structural connections between the item ID and attribute IDs mean contraints",这就诞生了基于前面那个数组的各个type的ID来求解item出现的后验概率,论文中的(11)式子做的就是这么个事情。最后需要修改loss func,也就是将这两条约束或者规则以数学形式作为优化目标加以改进。3.5节的想法简单直接,是直接用该user交互过的item的item embedding来加和平均作为user embedding,因为快捷耗时少适用于频繁更新user embedding的情况,因为user interesting会变化。
本论文在之后的第4节第2部分说明如何transfering from seen items to unseen items中,用的是公式上的技巧来得到unseen item,感觉很无语。
论文主旨还是想去借助已有的all type ID作为辅助信息来实现item emebedding和user embedding的计算,或者就像之前论文中提到的side information。

STAMP:Short-Term Attention/Memory Priority Model for Session-based Recommendation
这篇论文目的是Recommendation,如果用一句话说就是采用MLP和attention机制来capture用户的general interest和current interest。usre的interest随着时间会变化的。论文解决的一大类问题就是Session-based Recommender system(SRS),之前的SRS模型采用RNN并不考虑user interest drift with time,而本文考虑到了这点。论文中提到的两个模型STMP和STAMP。STMP将该session内的item embedding平均作为global representation,将最后时刻的item作为current embedding,两者各自通过MLP变换得到hs和ht,然后和所有备选的x做trilinear product。而STAMP在获得general representation的时候采用了注意力机制
在这里插入图片描述
区别就在于论文中的式子(7),即计算注意力权重值的式子,其中考虑到的是session中每一个node embedding,最后的node以及所有的node embedding加和平均值来计算该node对应的权重值。论文亮点实在是很少的。

Neural Attentive Session-based Recommendation
这篇还是用embedding做RS,采用的方法就是Session-based常用的RNN,它用了两个RNN encoder,一个来编码global session representation另一个编码local representation。然后再通过decoder解码解码出预测的每个node的概率值:
在这里插入图片描述
全局模型:
在这里插入图片描述

Session-based Recommendation with Graph Neural Networks
这篇论文感觉很有意思,读过之后下载了他的源代码读了读跑了跑。论文提出的SR-GNN,是基于user交互过的item组成的Graph,而且是有向图:
在这里插入图片描述
看着很复杂实际并不是。论文中频繁提到的STAMP和NARM模型也是值得读一读的,比较三者的区别与联系才是思考的方法,简要的说就是NARM采用的是RNN来capture用户的不同兴趣点而STAMP则是采用的MLP加注意力机制来实现,但是本文却看到了item之间的交互,采用Graph的方式将其提升了一层。当然论文仍旧是学习item embedding,而且是有label的,label就是这个session下一时刻的item。上面的图就把一切都说的很明白。论文将每一个Session sequence处理成了一个directed Session Graph。而对于每一个directed Session Graph,都采用GGNN(Gated Graph Neural Network,加了门机制的GNN,想法来源于LSTM)处理得到每一个node的node embedding,之后通过attention注意力机制汇总得到一个global vector–Sg,直接将这个session的最后一个node作为local vector–Sl,这样做的目的在于capture用户的global interest和current interest,之后Sg和Sl通过线性变换生成了最终的Sh,这个Sh其实是作为session representation,来和所有的node embedding组成的矩阵相乘通过softmax layer得到一个概率向量,这个向量表示的意思是该session的下一个item的概率,当然在构建label的时候就可以采用一些手段来生成session seq和label。
论文中公式写的都很明白直接。但是我在想,这个session seq,会不会大多数情况下就是一个线性序列而不是一个Graph,如果这样的话就大打折扣了。当然论文中直接将session最后一个时刻的node作为user current interest也是有待改进的。但是基于user交互的item构建成为Session Graph,这个想法感觉很不错。借助于所谓“人工智能2.0”的GNN的power进行node embedding学习更是有很好的前景。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值