百科问答小站 logo
百科问答小站 font logo



研究推荐系统要对NLP很了解吗? 第1页

  

user avatar   xuetf 网友的相关建议: 
      

最近在读Recsys2021上的paper:Transformers4Rec: Bridging the Gap between NLP and Sequential / Session-Based Recommendation,文章也聊到了NLP发展和推荐系统发展的关系,可以说推荐系统是在NLP的肩膀上前进的。结论是,关注不同领域,尤其是NLP领域的发展,对于推荐系统的研究和工作很可能都会有帮助。

我们不妨以这篇论文为例,来看看作者的研究动机以及推荐系统和NLP发展的关系。

1.研究动机

近年来,序列/会话推荐上的进展很多都源自于NLP模型和预训练技术的发展,可以说推荐系统是在NLP的肩膀上前进的。尤其是Transformers架构,在BERT等预训练模型中广泛应用,也在序列推荐中初露端倪。然而,推荐系统的发展实际上是滞后于NLP的。NLP中花式Transformers架构层出不穷,比如:邱锡鹏组的survey[2]集中展示了Transformer架构的演进;NLP中的开源社区也十分活跃,比如HuggingFace的开源库Transformers[4]涵盖了大部分主流的Transformer实现,总之,Transformers在NLP研究中正如火如荼地开展着。

然而,在推荐系统中的应用很多只停留在最原始的Transformer[3]。很大程度上是缺乏一个类似HuggingFace的统一轮子,研究者想在此基础上做迭代实际上相比于NLP会困难不少

为了弥补这种发展鸿沟,作者开源了一个基于HuggingFace开源库[4]的序列推荐包Transformers4Rec,目的是希望推荐系统社区能够更快地follow到NLP社区在Transformers中的进展,并在序列/会话推荐任务中实现开箱即用。完整的代码开源在了github

2. 推荐系统和NLP的发展关系

近年来,关于序列推荐的工作也是层出不穷,survey[5]集中展示了基于深度学习的序列推荐研究进展。在大部分的序列推荐场景中,可能都只用了用户最新的交互行为数据,或者由于用户是匿名的,所以只能用到当前会话session下的序列行为,这也就是典型的session会话推荐场景,属于序列推荐中的一种。

2.1 推荐以NLP的发展为基础的原因

在最近10年内,大部分序列推荐的工作是在NLP发展的基础上开展的,个人认为主要是因为三方面:

  • a. 推荐问题NLP问题抽象形式非常相似[6],如付鹏大佬所言, 推荐系统(尤其是序列推荐)的基本问题可以抽象成求解 ,即求解指定在指定的历史行为记录下可能产生行为的联合条件概率。而NLP的语言模型中,第个word的概率也正是类似的形式:。 ​当省略的信息,只使用历史行为记录的时候,推荐系统和NLP的问题变得惊人相似
  • b. 文本是推荐系统重要的side information。推荐系统中的side information多种多样,文本是其中最重要的来源之一。因此,基于NLP技术对文本做特征提取并输入到推荐系统中进行建模,就是一种很自然的想法。这样的前提下,利用最新的nlp进展来提升文本的表达能力,从而提升推荐系统的性能,也是一种很自然的动机。
  • c. NLP的研究起步远早于推荐系统。NLP最早可以追溯到20世纪40年代和50年代[7],经历了符号、规则、统计、RNN、word2vec、表征学习到预训练模型等。而推荐系统最早能追溯到20世纪90年代[8],由哥伦比亚大学的Jussi Karlgren教授在一份报告中提出,最早的协同过滤推荐也是在90年代才被提出的,经历了从协同过滤、基于内容的推荐、矩阵分解SVD、分解机FM、Facebook提出的GBDT+LR、Youtube提出的DNN、花式DNN、Graph Embedding,GNN等等。

NLP发展始终快推荐系统一步,而二者的抽象问题又非常相似,且文本是推荐系统中重要的side information,因此很容易出现推荐系统社区研究人员在NLP社区的研究进展的基础上,直接应用或改进后用到推荐系统中。

2.2 早期非深度学习时代

早期非深度学习时代,推荐系统受NLP的影响工作例如:

  • TF-IDF,推荐中的item frequency和NLP中的word frequency存在同样的头部或长尾特点,因此TF-IDF在NLP中可以用于提取关键词,在推荐系统中也能用来推荐Item。
  • SVD,LSA,隐语义分析最早被拿来抽取NLP的词向量,在推荐系统中,矩阵分解同样适用于user或者item的向量表示,在Netflix比赛中SVD和进阶版SVD++夺得了冠军。
  • LDA,LDA最早用于NLP中的主题发现或关键词提取[31],后来也应用到推荐系统领域做基于内容的推荐或可解释推荐,这部分工作在深度学习流行起来之前非常多,各种基于概率图模型的推荐和自编码器等,都是受到LDA的影响。比如:荣获KDD2021时间检验研究奖的工作:协同主题回归[30],探讨了传统基于矩阵分解的协同过滤方法和主题模型LDA的融合,能够提供非常好的解释性和为用户建立画像标签。

2.3 深度学习时代

进入深度学习时代后,NLP对推荐系统的影响就更加深远了,先看一张图:

  • word2vec,这个影响就非常深远了,Mikolov大佬的作品,最早用于做词向量表征。也广泛影响着推荐系统的研究:
  • item2vec,直接把word sequence替换成用户的历史交互行为序列item sequence,就能取得很好的效果,如电商领域的Prod2vec[14]。此外在各种各样的比赛中,基本上也都会有用。核心是利用了item-item之间的共现性。
  • DeepWalk,稍微进阶一点的,DeepWalk,除了预处理在图上游走形成序列之外,其余的都是照搬word2vec那一套,包括训练使用skip-gram也是源自word2vec的训练方法。话说回来,基于概率的随机游走生成序列的高效实现方法Alias Table,在LDA中也被玩过了
  • 负采样,目前推荐系统中非常注重样本负采样,关于负采样策略的"鼻祖",我觉得word2vec论文绝对是其中之一。如基于item频次分布构造层次哈夫曼树;基于item频次的unigram分布做随机负采样等。尤其在推荐系统的召回阶段广泛应用。
  • RNN,NLP中常用的LSTM, GRU等也被广泛地应用在推荐系统序列推荐或者用作序列特征提取器中。经典的工作比如GRU4Rec等,还比如,推荐系统中引入文本side information时,经常使用LSTM/GRU来做特征提取器,并作为DNN的输入。
  • Attention。说起Attention,最早的起源实际上源于cv领域,当人类观察外界事物的时候,一般不会把事物当成一个整体去看,往往倾向于根据需要选择性的去获取被观察事物的某些重要部分。在seq2seq流行之后,就广泛地应用在了NLP领域,最早的应用比如Bengio大佬的机器翻译工作[10],在Decoder端用注意力机制引入Encoder的上下文信息,让Decoder自适应的选择合适的信息进行建模。在推荐系统中,最早的attention工作如:NARM[15] (Neural Attentive Recommendation Machine)和Attentional FM[16]。而影响比较深远、且更经典的Attention应用是DIN [11] (Deep Interest Networks),使用目标item对历史行为序列做attention。这些工作开辟了attention在推荐系统中应用的浪潮。
  • Transformers。Transformers中最经典的结构非self-attention莫属。在推荐系统中,不仅Transformers本身应用广泛[13,17],包括核心结构self-attention机制、多头机制等也被广泛应用,如经典的SR-GNN[12]就用了self-attention。
  • BERT。BERT对推荐系统的影响在近两年来也产生了不少工作,例如BERT4Rec[18],引入了双向Self-Attention进行序列建模,还比如:UBERT[19],借鉴BERT的思想提升用户表征的表达能力。

除了上述研究之外,还有不少最新前沿的推荐系统研究实际上也是深受NLP领域的影响,有一些还有着推荐系统领域"独特的味道"。

  • 表征学习:最早的表征学习源自于NLP中做词向量。目前也广泛地在推荐系统研究领域开展着,且有着更明显的特点。推荐系统的稀疏性问题比NLP领域更严重:NLP领域的词表大小有限,但是推荐系统领域则面临着海量的用户和物品。因此,如何得到一个更合理的表征向量,对推荐系统来说非常重要。这方面工作例如KDD21上Google[20]和华为[21]的工作。
  • 图神经网络:图神经网络可能是极少数NLP和推荐系统齐头并进的领域,或者说在NLP和推荐系统上的发展有各自的特色。在NLP中,通常更注重图的构造,如何基于word、token、entity、句法树、依存树甚至引入知识图谱等,实际上更重要,这部分工作可以参考KDD21的tutorials:Deep Learning on Graphs for Natural Language Processing[23],介绍的很仔细。在推荐系统领域,图的构造也很重要,但通常最优雅最自然的graph就是推荐系统天然的user-item二分图,因此推荐系统在GNN方面的研究则更注重模型结构上的改造、如何解决过平滑问题、可解释性、异构图建模等问题,包括GC-MC、LightGCN、SR-GNN等。
  • 知识图谱:知识图谱源于NLP的概念,在推荐系统中也早有应用。这部分研究最经典的如TransE[32]。近年来基于知识图谱的推荐主要和图网络结合在一起做,例如KGAT[33]等,这部分工作可以Follow斯坦福王鸿伟大佬的工作[34]。
  • 对比学习:对比学习可能最早要追溯到cv领域。后来在NLP中也广泛应用,例如SimCSE[24]。再后来又影响了推荐系统,目前基于对比学习的自监督推荐系统工作也非常多[22],今年还涌现了不少引入对比学习做纠偏的工作[25]或抗噪的工作[28]。
  • 知识蒸馏:这方面工作实际上最早也是源于cv,出自Hinton大佬之手[26]。然后近年来随着预训练/BERT的兴起,对BERT如何做蒸馏成为了热点。而推荐系统领域应用知识蒸馏,最主流的方式是大模型蒸馏小模型或者后置跨链路蒸馏前置链路[27]。归根结底都是性能和准确性的权衡。
  • 预训练/迁移学习:也是得益于BERT的发展,目前推荐系统领域应用预训练/迁移学习的场景也变的非常多。例如:刘知远老师组的综述:基于预训练的推荐系统知识迁移综述[29],能够有效解决推荐系统中的数据稀疏问题。

Transfromers4Rec工作实际上也是受到Transfomers、BERT以及NLP开源社区的影响所产生的。不同领域之间互相影响当然也是件好事,例如NLP领域也经常借鉴CV领域的成果,例如残差网络、CNN等等。

总结

从上面的介绍,我们可以看到NLP研究进展如何深远的影响着推荐系统的研究,可以说推荐系统的发展很大程度上是在NLP的肩膀上前进的。

到目前为止,我们看到的大多是单向影响,即:起步较早的领域深度影响着新兴领域,那么是否存在反哺的现象呢?也算是本篇文章的一个遗留问题,例如:推荐系统社区是否有反哺NLP社区呢? 这个问题可能也等价于推荐系统是否有一些独创/开创性的研究,是已经或有可能潜在影响其他领域的研究?(可能是个知乎好问题)。

这个问题也很大,需要花一些时间去学习和积累才能感受到。以读者目前的浅薄认知而言,我觉得有,至少我认为推荐系统在工程架构方面的进展是前沿的,是领先其他领域的。比如:实时推理引擎如TF Serving那一套,最早是服务于大规模实时推荐系统的,但对NLP尤其是预训练模型做实时serving还是有帮助的,小规模场景开箱即用,大规模场景做TF Serving优化后,也能使用。还有比如推荐系统中算首创的工作协同过滤或特征交互的研究进展,经典的FM等,也能一定程度上启发NLP研究。还有比如搜索/推荐场景常用的多阶段pipeline,召回+粗排+精排,也经常用在对话系统中。更多的以后有机会可以一起探讨探讨。

参考

[1] de Souza Pereira Moreira G, Rabhi S, Lee J M, et al. Transformers4Rec: Bridging the Gap between NLP and Sequential/Session-Based Recommendation[C]//Fifteenth ACM Conference on Recommender Systems. 2021: 143-153.

[2] Lin T, Wang Y, Liu X, et al. A Survey of Transformers[J]. arXiv preprint arXiv:2106.04554, 2021.

[3] Vaswani A, Shazeer N, Parmar N, et al. Attention is all you need[C]//Advances in neural information processing systems. 2017: 5998-6008.

[4] State-of-the-art Natural Language Processing for Jax, PyTorch and TensorFlow: github.com/huggingface/

[5] Hui Fang, Danning Zhang, Yiheng Shu, and Guibing Guo. 2020. Deep Learning for Sequential Recommendation: Algorithms, Influential Factors, and Evaluations. ACM Transactions on Information Systems (TOIS) 39, 1 (2020), 1–42.

[6] 研究推荐系统要对NLP很了解吗?付鹏的回答:zhihu.com/question/3174

[7] 自然语言处理 NLP 的百年发展史, imgtec.eetrend.com/blog

[8] 一文尽览推荐系统模型演变史, cloud.tencent.com/devel

[9] Balázs Hidasi, Alexandros Karatzoglou, Linas Baltrunas, and Domonkos Tikk. Session-based recommendations with recurrent neural networks. arXiv preprint arXiv:1511.06939 (2015).

[10] Bahdanau D, Cho K, Bengio Y. Neural machine translation by jointly learning to align and translate[J]. arXiv preprint arXiv:1409.0473, 2014.

[11] 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.

[12] 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(01): 346-353.

[13] Transformer 在美团搜索排序中的实践: tech.meituan.com/2020/0

[14] Mihajlo Grbovic, Vladan Radosavljevic, Nemanja Djuric, Narayan Bhamidipati, Jaikit Savla, Varun Bhagwan, and Doug Sharp. 2015. E-commerce in your inbox: Product recommendations at scale. In Proceedings of the 21th ACM SIGKDD international conference on knowledge discovery and data mining. 1809–1818.

[15] Jing Li, Pengjie Ren, Zhumin Chen, Zhaochun Ren, and Jun Ma. 2017. Neural Attentive Session-based Recommendation. arXiv:1711.04725 [cs.IR]

[16] Jun Xiao, Hao Ye, Xiangnan He, Hanwang Zhang, Fei Wu, and Tat-Seng Chua. Attentional Factorization Machines: Learning the Weight of Feature Interactions via Attention Networks. arXiv:1708.04617 [cs.LG]

[17] Fuyu Lv, Taiwei Jin, Changlong Yu, Fei Sun, Quan Lin, Keping Yang, and Wilfred Ng. 2019. SDM: Sequential deep matching model for online large-scale recommender system. In Proceedings of the 28th ACM International Conference on Information and Knowledge Management. 2635–2643.

[18] Fei Sun, Jun Liu, Jian Wu, Changhua Pei, Xiao Lin, Wenwu Ou, and Peng Jiang. 2019. BERT4Rec: Sequential recommendation with bidirectional encoder representations from transformer. In Proceedings of the 28th ACM international conference on information and knowledge management. 1441–1450.

[19] Qiu Z, Wu X, Gao J, et al. U-BERT: Pre-training User Representations for Improved Recommendation[C]//Proceedings of the AAAI Conference on Artificial Intelligence. 2021, 35(5): 4320-4327.

[20] Kang W C, Cheng D Z, Yao T, et al. Learning to Embed Categorical Features without Embedding Tables for Recommendation[C]//Proceedings of the 27th ACM SIGKDD Conference on Knowledge Discovery & Data Mining. 2021: 840-850.

[21] Guo H, Chen B, Tang R, et al. An Embedding Learning Framework for Numerical Features in CTR Prediction[J]. arXiv preprint arXiv:2012.08986, 2020.

[22] Wu J, Wang X, Feng F, et al. Self-supervised graph learning for recommendation[C]//Proceedings of the 44th International ACM SIGIR Conference on Research and Development in Information Retrieval. 2021: 726-735.

[23] KDD2021, Deep Learning on Graphs for Natural Language Processing: dlg4nlp.github.io/

[24] Gao T, Yao X, Chen D. SimCSE: Simple Contrastive Learning of Sentence Embeddings[J]. arXiv preprint arXiv:2104.08821, 2021.

[25] Zhou C, Ma J, Zhang J, et al. Contrastive learning for debiased candidate generation in large-scale recommender systems[C]//Proceedings of the 27th ACM SIGKDD Conference on Knowledge Discovery & Data Mining. 2021: 3985-3995.

[26] Hinton G, Vinyals O, Dean J. Distilling the knowledge in a neural network[J]. arXiv preprint arXiv:1503.02531, 2015.

[27] 张俊林,知识蒸馏在推荐系统的应用zhuanlan.zhihu.com/p/14

[28] 张俊林,利用Contrastive Learning对抗数据噪声:对比学习在微博场景的实践zhuanlan.zhihu.com/p/37

[29] Zeng Z, Xiao C, Yao Y, et al. Knowledge transfer via pre-training for recommendation: A review and prospect[J]. Frontiers in big Data, 2021, 4

[30] Wang C, Blei D M. Collaborative topic modeling for recommending scientific articles[C]//Proceedings of the 17th ACM SIGKDD international conference on Knowledge discovery and data mining. 2011: 448-456.

[31] Blei D M, Ng A Y, Jordan M I. Latent dirichlet allocation[J]. the Journal of machine Learning research, 2003, 3: 993-1022.

[32] Bordes A, Usunier N, Garcia-Duran A, et al. Translating embeddings for modeling multi-relational data[J]. Advances in neural information processing systems, 2013, 26.

[33] Wang X, He X, Cao Y, et al. Kgat: Knowledge graph attention network for recommendation[C]//Proceedings of the 25th ACM SIGKDD International Conference on Knowledge Discovery & Data Mining. 2019: 950-958.

[34] Hongwei Wang, scholar.google.com/cita

原文也可参见我的知乎专栏:蘑菇先生学习记




  

相关话题

  机器学习自嘲的炼丹和化学材料自嘲的炒菜有什么本质上的区别? 
  《失控玩家》中的游戏有可能实现出来吗? 
  谷歌翻译原理是什么,从语言A到B,中间是否要翻译成中介语言C(如英语)? 
  如何看待 AI 方向 PhD 申请竞争过于激烈的现象? 
  为什么最近几年 FPGA 变得越发受大家重视了? 
  机器学习初学者该如何选读适合自己水平的论文? 
  算法岗位真的需要顶会才能入场吗? 
  机器学习到底是什么,如何使用这项技术? 
  各种机器学习算法的应用场景分别是什么(比如朴素贝叶斯、决策树、K 近邻、SVM、逻辑回归最大熵模型)? 
  实验室一块GPU都没有怎么做深度学习? 

前一个讨论
win10登录Microsoft账户提示:0x800704cf 错误代码该怎么办?
下一个讨论
Unity为什么可以做数字孪生仿真模拟?Unity不是做游戏的引擎么?





© 2024-11-24 - tinynew.org. All Rights Reserved.
© 2024-11-24 - tinynew.org. 保留所有权利