聊聊表征学习在推荐系统中的应用

Posted 会编程的Z同学

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了聊聊表征学习在推荐系统中的应用相关的知识,希望对你有一定的参考价值。

前言

这个学期基本上快要结束了,这一个学期的主要工作是在一家电商公司实习,为其开发推荐算法模型。另外一个事情就是完成了毕业论文的开题,最终方向也是定在了基于图神经网络的推荐系统。在这一段时间中也查看了不少文献和博客,简单聊聊我所了解的表征学习再推荐系统中的应用吧。水平有限,不到之处,还请谅解。

什么是表征学习?

关于表征学习,可能不同的文章中或多或少有些许不同的定义。最开始接触表征学习的时候,觉得这是一个非常抽象的词,但是随着看的文章数量的增加,我有了自己的一个理解。总的来说,在机器学习的过程中,我们常常需要将特定的目标按照特定的表示方式进行表示。例如,在自然语言处理(NLP)领域,一个词可以被表示为欧式空间中的一个向量,而在欧式空间中,近义词的向量的距离也应当更近。对于图(网络)而言,一个节点也可以表示为一个向量,关系紧密的节点在欧式空间距离也更近。学习目标特定表示的过程就可以被成为表征学习(表示学习)。当然以上只是一个简单的例子,在实际业务中可能存在一些差异。

词嵌入
聊聊表征学习在推荐系统中的应用
节点嵌入

为什么需要表征学习?

首先,表征学习并不是绝对必须的,例如在传统的推荐系统中,但是使用矩阵分解的方法也能起到一定的效果。但是使用表征学习的一个好处就是可以将一些难以使用的数据(例如文本、拓扑节点)等转换成可以被更多算法(例如深度神经网络)使用的向量。此外,在表征学习的过程中,为了让表示向量(嵌入向量)能够较好地代表被表示的目标,我们常常需要使用一些方法来捕捉这些目标的特征,所以表征学习在某些场景下也起到了特征提取的作用。此外,有时表征学习也能起到降低维度的作用,这里就不展开细说了。

基于深度神经网络的表征学习

由于深度学习本身就具有强大的表征能力,再加上深度学习近年来在多任务上取得了良好的效果,基于深度学习的推荐系统受到众多研究者和企业的关注,目前已趋于成熟。

-双塔模型

聊聊表征学习在推荐系统中的应用
双塔模型

如图所示,要理解双塔模型其实并不太难,左侧是输入用户信息,右侧输入商品信息,借助深度学习强大的表征能力,我们分别 可以得到用户和商品的嵌入表示 u(x),v(y),对于的是双塔的最上面一层,得到嵌入表示之后,只需要借助一个 计算嵌入向量的距离,然后将x,y的实际情况(是否有交互)作为标签开始有监督学习,训练之后我们就可以得到两个可以生成用户和商品嵌入向量的深度神经网络(DNN),在实际应用中,双塔模型往往被用来做召回操作,并且左侧user塔后面的user embedding需要在请求来的时候实时计算,右侧item塔训练的时候预计算好,这样的话工业应用的时候就变成了一个最近向量的检索问题了,关于最近向量的检索问题有许多成熟且高效的工具,例如faiss、annoy、Elasticsearch等等。[1,2]


值得一提的是阿里的基于SDNE的凑单算法[3]其实和双塔模型有异曲同工之妙。只不过双塔从DNN换成了深度自动编码器(DAE),深度自动编码器本身就是做表示学习的一大利器。

聊聊表征学习在推荐系统中的应用
阿里凑单算法
  • Neural collaborative filtering 深度协同过滤[4]
    深度协同过滤是2017年提出来的论文,其思路是将用户和item分别输入到一个embedding层,得到一个初步嵌入表示,然后在分别应用到GMF和MLP层中,这里可以简单把GMF理解为一个宽度模型,MLP理解为一个深度模型。结合2016年Google提出的Wide&deep模型[5],其实可以很容易理解深度协同过滤的思想。

    聊聊表征学习在推荐系统中的应用
    NCF
  • 此外还有一些比较经典的论文例如,YouTubeDNN[6],阿里的基于注意力的一系列论文DIN,DIEN等。

基于图神经网络的表征学习

尽管传统的深度学习方法被应用在提取欧氏空间数据的特征方面取得了巨大的成功,但实际上许多应用场景中的数据是从非欧式空间生成,传统的深度学习方法在处理非欧式空间数据上的表现却仍难以使人满意。例如在电子商务领域,用户和商品的交互记录就构成一个图,在社交媒体上,用户的社交网络也是一个图。图的复杂性使得现有的深度学习算法在处理时面临着巨大的挑战,因为图拓扑结构是不规则的,每个图的节点数量是不一样的,图中的每个节点都可能有不同数量的相邻节点,导致一些重要的操作(例如卷积)并不能直接用于图上。不过近年来,在多方因素的成功推动下,研究人员借鉴了卷积网络、循环网络和深度自动编码器的思想,定义和设计了用于处理图数据的神经网络结构,提出了图神经网络,并发现其在网络结构信息提取和节点表征上具有非常好的效果。尤其在近两年,越来越多的研究者开始将图神经网络应用到推荐系统中来。这里主要讲讲两个算法,说明一些基于图书网络的推荐系统的基本路线。

  • Multi-Component Graph Convolutional Collaborative Filtering 多成分图卷积协同过滤[9]
    这篇文章是发表在AAAI2020上的一篇论文,虽然名字叫图卷积协同过滤,但是感觉起来更像是图注意力协同过滤,本文中应用了很多图注意力机制。作者首先将用户商品的交互构建为一个二部图,然后通过图注意力机制分别学习用户和商品的嵌入表示(这个嵌入表示代表了用户和商品的兴趣)。在多个投影空间进行学习多个嵌入表示,并且再次使用注意力机制学习不同投影空间的嵌入表示的权重,然后将这些嵌入表示加权聚合,得到最终的嵌入表示。得到用户商品的最终嵌入表示之后,将这些嵌入表示放到一个DNN中进行训练即可,监督标签仍然是用户是否与商品交互过。

    聊聊表征学习在推荐系统中的应用
    MCCF
  • Session-based recommendation with graph neural networks 基于会话的图神经网络推荐算法
    这篇论文是一个在图神经网络上采用会话推荐的经典论文,它将用户的交互历史划分为一个个会话,并逐个建立会话图,再在会话图中使用图神经网络学习物品和会话的嵌入表示,这种方法在捕获用户动态兴趣上有着不错的效果,但是完全没有考虑用户信息。

    SR-GNN

最后

写的有点乱,总的来说,表征学习在推荐系统上的应用是很值得研究的,它不仅可以用来做快速召回,也可以用来做排序(精排)。在快速召回阶段,可以先训练得到嵌入向量,然后再借助诸如faiss的高效检索工具,得到召回集。排序阶段,可以将嵌入向量放到DNN中进行进一步训练,或者设计更复杂的模型。另外随着图神经网络这两年的火热,以及其本身在网络表征上的优秀表现,其在推荐系统上的应用也成了一个热点,不过图神经网络推荐系统在工业上的应用还需要进一步的探索。

值得一提的是,通过这一段时间的学习,我发现其实在实际工业生产中,可能并不需要特别复杂的模型,效率以及可实现、可工程化是从业者考虑的一个重点。

新年快乐,嗯!

参考文献

  1. Youtube2019双塔召回论文精读

  2. 推荐系统Embedding向量召回在即刻的工程实践

  3. 阿里凑单算法首次公开!基于Graph Embedding的打包购商品挖掘系统解析

  4. He X, Liao L, Zhang H, et al. Neural collaborative filtering[C]//Proceedings of the 26th international conference on world wide web. 2017: 173-182.

  5. Cheng H T, Koc L, Harmsen J, et al. Wide & deep learning for recommender systems[C]//Proceedings of the 1st workshop on deep learning for recommender systems. 2016: 7-10.

  6. Covington P, Adams J, Sargin E. Deep neural networks for youtube recommendations[C]//Proceedings of the 10th ACM conference on recommender systems. 2016: 191-198.

  7. Zhou G, Zhu X, Song C, et al. Deep interest network for click-through rate prediction[C]//Proceedings of the 24th ACM SIGKDD International Conference on Knowledge Discovery & Data Mining. 2018: 1059-1068.

  8. Zhou G, Mou N, Fan Y, et al. Deep interest evolution network for click-through rate prediction[C]//Proceedings of the AAAI conference on artificial intelligence. 2019, 33: 5941-5948.

  9. Wang X, Wang R, Shi C, et al. Multi-component graph convolutional collaborative filtering[C]//Proceedings of the AAAI Conference on Artificial Intelligence. 2020, 34(04): 6267-6274.

  10. Wu S, Tang Y, Zhu Y, et al. Session-based recommendation with graph neural networks[C]//Proceedings of the AAAI Conference on Artificial Intelligence. 2019, 33: 346-353. 


以上是关于聊聊表征学习在推荐系统中的应用的主要内容,如果未能解决你的问题,请参考以下文章

推荐系统-大规模信息网络Embedding表征学习

肺腑之言,聊聊推荐系统工程化应该怎么入坑

(推荐)聊聊推荐系统的工程化落地所需要的技术点

聊聊如何提升推荐系统的结果多样性

今日 Paper | 新闻推荐系统;多路编码;知识增强型预训练模型等

机器学习在LinkedIn推荐系统中的应用