BERT 也被应用到了推荐场景,在《BERT4Rec-Sequential Recommendation with Bidirectional》[10]中问题被定义为基于用户的历史行为序列来预测下一个物品 。文中使用 BERT 来处理用户的行为序列,可以说是一种比较“完美”的结构,在序列推荐中,个人认为很难再有模型在结构上能超越 BERT 。不过在该文中,用户侧的特征和场景的特征没有被应用起来,只是用了用户行为序列,这一点其实也值得探索 。和基于 Transformer 的推荐类似,序列推荐的五个挑战中,前三个能够很好的解决,后两个问题从结构上看也不能很好的解决 。
文章插图
从网络结构的角度,RNN、CNN,甚至 Transformer、BERT 都可以由全连接神经网络表示,前者只是从全连接神经网络中挑选了部分节点组建的网络,但在具体应用场景中,全连接神经网络却无法达到前者的效果 。我想原因有两点:第一,这些具有显著结构的神经网络,其实是一种非常有效的先验知识,而全连接神经网络在当前所使用的训练数据、训练方法下,并不能有效地学习到这些知识;第二,和具有先验结构的神经网络相比,全连接神经网络会有更多的参数,训练的难度大大提升了 。
4 推荐+知识图谱伴随着 Embedding 技术和图神经网络算法的发展,知识图谱在推荐系统、问答系统、社交网络等领域得到了非常广泛的应用 。知识图谱在推荐系统中的应用一般可以带来三方面的收益:第一,多样性,基于知识图谱,可以选择不同关系的物品进行推荐;第二,可解释性,通过推荐物品与历史物品间的关系可进行解释;第三,精确性,知识图谱刻画了物品更加立体的信息,通过在模型中加入这些信息提升推荐的效果 。
文章插图
总体来看有三种训练方式可以把知识图谱应用到推荐模型中 。第一种是依次训练,基于知识图谱的表示学习,把用户和物品用低维稠密的向量表示,再把向量作为用户和物品的特征放入推荐算法中 。这种方法的优点是,知识图谱模型可以独立训练,与推荐模型解耦,不影响推荐模型的训练、预测效率;缺点是知识图谱模型本身更适合实体分类、连接预测等知识图谱的任务,可能并不适合推荐任务,带来的效果增益比起端到端训练的差 。第二种是联合训练[11],如图 9 所示,从知识图谱中抽取用户或物品的结构化信息作为特征放入模型,进行端到端的训练 。第二种方法效果必然比第一种好,但缺点是训练和预测的效率都会变低,特别是在做在线推理的时候,带来比较大的挑战 。第三种方法是交替训练[12],如图 10 所示,把推荐和知识图谱表示学习建模成两个独立的任务,采用多任务学习的框架使用底层部分网络参数的共享,在训练时可固定一端模型的参数,训练另一端模型,两个交替地训练 。在推荐算法的推理阶段,可独立运行一端模型,没有额外的开销 。通过这种方式,把知识图谱的信息融入到推荐模型中 。
文章插图
在不同的领域,一般会有基于特定场景的知识图谱建模 。在电商领域,AliCoCo[13]是阿里巴巴为搜索和推荐设计的电商知识图谱,传统的推荐算法往往基于用户历史行为而不是知识的角度进行推荐,这种推荐方式存在一个盲点,淘宝推荐使用了基于类目-属性-属性值的底层数据管理体系,该体系导致缺少必要的知识广度和深度去描述用户的需求 。当用户搜索“如何举办一次烧烤”时,只能返回单个或几个类目的商品而不能理解用户的一整套需求 。如图 11 所示,AliCoCo 设计了四层的概念体系,包括电商概念层、原子概念层、原子概念分类体系和商品层 。用电商概念层去表示用户的需求,而每个电商概念都有一个或多个原子概念组成,每个电商概念或者原子概念都会关联多个商品 。当用户命中电商概念时,相应的主题推荐界面会被展示,里面不仅仅是食品,也有烧烤相关的工具等 。通过这种方式,用户的需求可以被更好的理解 。
文章插图
在零售领域,沃尔玛不仅有线下门店也有线上门店,结合自身业务的需求,沃尔玛建立了商品的知识图谱[14] 。通过把业务中商品与商品间的关系、商品与自然语言的关系归纳为 Describe、IsA、Co-buy、Co-view、Substitute 和 Search 六大类,把商品和词汇定义为实体完成了图谱的定义 。再基于图神经网络和多任务学习,实现了实体和关系的向量化供下游推荐、搜索等场景的使用 。
推荐阅读
- 在PyTorch中使用深度自编码器实现图像重建
- 了解的茶具挑选,如何挑选瓷质茶具
- 作为程序员的你必须了解的常用加密算法
- 怎么快速了解3dmax软件学习操作
- 高并发来了如何处理,漏桶算法和令牌桶算法了解一下
- 全球十大域名排行榜 最常用的域名都在这里,你了解哪些呢
- 佛陀证悟的宇宙真相 佛陀了解宇宙的全部真相
- 深度详解Python中Unicode编码
- 一文搞懂 ThreadLocal 原理
- 数据分析-pandas库快速了解