点击围观!腾讯 TAPD 助力金融行业研发提效、敏捷转型最佳实践! 了解详情
写点什么

BERT 在 eBay 推荐系统中的实践

  • 2020-09-04
  • 本文字数:3434 字

    阅读完需:约 11 分钟

BERT在eBay推荐系统中的实践

导读

推荐系统是电子商务平台的重要组成部分。然而许多传统的推荐系统存在冷启动、内容单一等缺陷。针对这类问题,eBay 的研究员以 BERT 模型为基础,结合用户历史行为数据,提出了一种基于项目的协同过滤算法。该模型在大规模真实数据集上取得了显著效果,提供了冷启动场景推荐的解决方案。相关论文已被 ACL2020 的 ECNLP Workshop 收录。

一、前言

作为电商网站的核心组成之一,传统的推荐系统算法分为两大类: 协同过滤推荐算法和基于内容的推荐算法 。然而这两类算法在真实数据集上都存在一些局限性。


传统的协同过滤算法


基于用户的协同过滤算法 [1]会根据种子用户评论过的项目来发现相似用户,然后选出这些相似用户给出较高评分的项目推荐给种子用户; 基于项目的协同过滤算法 [2]会以种子项目为基础,挑选那些有着相似用户评分的项目。


然而,在 eBay 这类活跃度较高的电商网站上,项目和用户每时每刻都在更新,传统的协同过滤算法会面临数据稀疏性的问题,难以在冷启动场景给出优质的推荐内容。


基于内容的推荐算法


这类算法致力于计算种子项目与候选项目在内容方面的相似度(包括点击、评分、语义等),然后挑选出最相似的项目进行推荐。尽管这类算法避免了数据稀疏度的影响,但其对内容的依赖决定了它们难以提供新颖的推荐,不利于挖掘用户的潜在兴趣[3]。


近年来,随着神经网络模型的崛起,推荐系统也开始在深度学习领域进行尝试。本研究以 BERT 模型为基础,结合用户历史行为数据,将 Masked Language Model 和 Next Sentence Prediction 这两个 BERT 模型的训练任务从自然语言领域迁移到电商领域,提出了一种新的基于项目的协同过滤算法。


本研究的优势在于


(1)不同于以往用项目 ID 来聚合历史信息的方式,我们以项目标题为输入内容,使得相似的项目获得相似的编码,有效解决传统推荐算法中的冷启动问题。


(2)以用户历史行为数据来训练模型,相较于挖掘项目相似度,本研究能更好地发掘用户的潜在兴趣。


在大规模真实数据集上的实验表明,本研究能显著解决冷启动、内容单一等问题,获得高质量的推荐内容。

二、模型

如上所述,对于一个动态的电子商务平台,商品无时无刻不在更新,这导致用户-项目的交互矩阵极为稀疏。这一特性给传统的推荐系统带来了两点挑战:(1)长尾推荐,即那些非热门的项目难以有机会被推荐;(2)模型需要不断地重新训练和部署,以适应新上架的项目。


为了解决这些问题,我们选择使用标题的 tokens 来表示每个项目,而不是采用唯一的 ID 来表示,并将这些 tokens 进一步映射到连续的向量表示空间中。 由此,两个具有相同标题的项目将被视为同一个项目,它们的用户行为数据可以被汇总共享。对于冷启动的项目,模型可以利用标题来发现与之前观察到的项目的相似性,从而发掘相关的推荐。


本文提出基于项目的协同过滤算法,其目标是对两个项目之间的相关性进行评分,对于任一种子项目,将得分最高的若干项目作为推荐结果。我们以 BERT 模型[4]为基础,实现了这一算法。不同于传统的 RNN / CNN 结构,BERT 模型是以 transformer encoder 为结构的语言模型,采用注意力机制来计算输入和输出之间的关系。BERT 和 transformer 的结构如图 1 所示[4][5]。


BERT 模型的训练可分为两部分:Masked Language Model 和 Next Sentence Prediction。 在本算法中,我们将这些任务迁移到电商推荐任务上:Masked Language Model on Item Titles 和 Next Purchase Prediction。




图 1: BERT & Transformer 结构


Masked Language Model on Item Titles :电商平台上项目标题的 tokens 分布,与 BERT 模型预训练所用的自然语言语料中的 tokens 分布有着很大的不同,为了模型能够更好地理解电商推荐环境中的语义信息,我们将这一任务作为目标之一对模型进行再训练。在训练过程中,我们遵循 Devlin 等人的方案[4],对项目标题中随机 15%的 tokens 做 MASK 处理,则该部分的损失函数为:



Next Purchase Prediction :在 BERT 模型中,Next Sentence Prediction 用来预测一个句子 A 是否是另一个句子 B 的后一句。我们将其转换为推荐问题:给定一个种子项目 A,预测另一个项目 B 是否是用户要点击购买的下一个项目。以项目 A 的标题替换原模型中的句子 A,以项目 B 的标题替换原模型中的句子 B,将标题拼接起来作为模型的输入。我们从用户的历史行为数据中收集模型的训练数据,对于种子项目,以同一个用户会话中被购买的项目为正例,并从 inventory 中随机抽取负例。由此,给定正例集合和负例集合,该部分的 损失函数 为:



故,模型两部分的 联合损失函数 如下:


三、实验

为了验证这一算法在电商推荐系统中的表现,我们收集了 eBay 的真实数据进行实验。共收集了大约 8,000,000 对项目作为训练集,其中约 33%为正例(用户在同一会话中购买的项目)。可以看到,项目-项目的交互矩阵非常稀疏,传统的推荐算法难以取得好的效果。我们以同样的方法收集了大约 250,000 对项目作为验证集,用于防止模型过拟合。


对于测试集,则采用了基于冷启动数据的采样方案,以验证我们的算法在这类传统协同过滤算法无法处理的情景中的表现。共收集了 10,000 对正例,每一对中的种子项目未在训练集中出现过。针对每一对正例,我们随机采样 999 个项目作为负例。由此,每个种子项目会有 1000 个候选项目。在测试时,对这 1000 个候选项目进行排序,并计算 Precision@K、Recall@K、NDCG@K 等指标,据此对算法进行比较。


为了进行比较,我们需要构建一个 baseline 算法。 由于测试集中的种子项目都是全新的项目,在训练集中均未观察到,没有历史数据,所以无法应用传统的协同过滤算法。我们构建了一个双向 LSTM 模型作为 baseline,该模型的输入同样为两个项目标题的拼接,损失函数与我们算法中 Next Purchase Prediction 部分的损失函数一致。


实验结果如表 1 所示。可以观察到,我们提出的算法大大优于 baseline 算法 。当只针对 Next Purchase Prediction 这一任务对 BERT 模型进行再训练时,Precision@1、Precision@10、Recall@10、NDCG@10 分别高出 baseline 算法 310.9%、96.6%、93.9%和 150.3%。当同时加入 Masked Language Model on Item Titles 这一任务时,各项指标进一步提高了 111.0%、38.6%、38.3%和 64.0%。 由此可以看出,我们提出的以 BERT 模型为基础的基于项目的协同过滤算法具有明显的优越性。



表 1: 实验结果


为了直观地检查算法给出的推荐结果的质量,我们在表 2 中给出了一个例子。种子项目为蜘蛛侠主题的 T 恤,推荐的商品为 T 恤、配套服饰、餐具装饰等,且均为漫威主题。从这个例子可以看到,该算法可以自动地发掘推荐商品的选择标准而无需人工指定,并且可以在专注特定类别与挖掘广泛兴趣之间找到平衡点。



表 2: 推荐结果示例

四、总结


我们以 BERT 模型为基础,结合用户历史行为数据,提出了一种基于项目的协同过滤推荐算法。以标题的 tokens 的向量表征取代唯一 ID 来表示项目,能将相似项目的信息汇聚在一起,解决了传统协同过滤推荐算法中的长尾推荐、冷启动等问题。通过在大规模真实数据上进行实验,证明了该算法在理解项目语义信息和学习大量项目之间的关系方面具有显著优势。


参考文献


[1] J Ben Schafer, Dan Frankowski, Jon Herlocker, and Shilad Sen. 2007. Collaborative filtering recommender systems. In The adaptive web, pages 291–324. Springer.


[2] Greg Linden, Brent Smith, and Jeremy York. 2003. Amazon. com recommendations: Item-to-item collaborative filtering. IEEE Internet computing, (1):76–80.


[3] P Castells, S Vargas, and J Wang. 2011. Novelty and diversity metrics for recommender systems: choice, discovery and relevance. In International Workshop on Diversity in Document Retrieval (DDR 2011) at the 33rd European Conference on Information Retrieval (ECIR 2011).


[4] Jacob Devlin, Ming-Wei Chang, Kenton Lee, and Kristina Toutanova. 2018. Bert: Pre-training of deep bidirectional transformers for language understanding. arXiv preprint arXiv:1810.04805.


[5] Vaswani, Ashish, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N. Gomez, Łukasz Kaiser, and Illia Polosukhin. 2017. Attention is all you need. In Advances in neural information processing systems (pp. 5998-6008).


本文转载自公众号 eBay 技术荟(ID:eBayTechRecruiting)。


原文链接


BERT在eBay推荐系统中的实践


2020-09-04 10:042338

评论

发布
暂无评论
发现更多内容

阿里大佬都在熬夜肝的Java程序优化笔记,程序性能提高了5倍!

程序知音

Java 性能优化 JVM java架构 后端技术

Appuploader证书申请教程

雪奈椰子

《简化iOS APP上架流程,App Uploader助你搞定!》

雪奈椰子

Appuploader安装指南

雪奈椰子

AI的道德风险测试:偏见风险

陈磊@Criss

虚拟内存是什么?

测吧(北京)科技有限公司

测试

音视频通讯QoS技术及其演进

阿里云视频云

云计算 音视频 视频云

OpenHarmony生态贡献获肯定,华秋践行加速硬件创业初心

华秋电子

Django 的基础模板和模板文件重构

宇宙之一粟

Python django 三周年连更

C++ 基本的输入输出

雪奈椰子

LinkFlow CDP应用篇02:CDP如何帮助零售行业构建客户画像

游读分享

【网络安全】CVE漏洞分析以及复现

网络安全学海

网络安全 安全 信息安全 计算机 渗透测试

【揭秘】智慧公厕监控系统,让你告别糟糕公厕体验!

光明源智慧厕所

智慧城市

破防了!这个在Ins上保存视频到手机相册的方法把我给感动哭了!

frank

C++ 基本语法

雪奈椰子

Appuploader证书申请教程

基于python的网站安全检测系统的设计与实现,如何做数据分析?

海拥(haiyong.site)

三周年连更

分析 | 通过 NFTScan 率先捕获 NFT 投资趋势

NFT Research

NFT

劝人写码,千刀万剐——“前端已死”难道要成真了?

引迈信息

前端 大前端 低代码 JNPF

2023IT市场年会丨浪潮云以云聚数拥抱价值新生

浪潮云

九科信息与统信、电科申泰完成产品适配联合认证

九科Ninetech

RPA 信创

《简化iOS APP上架流程,App Uploader助你搞定!》

大文件传输的3个重要替代方案

镭速

政企数智办公巡展回顾 | 通信赋能传统行业数智化转型的应用实践

融云 RongCloud

音视频 办公 即时通讯IM 数智化 通讯

数据治理体系建设与实践

Openlab_cosmoplat

数据治理 开源社区

Ins保存图片保姆级教程!拯救手残党的图文教程,速来GET!

frank

再见正则表达式!这次彻底告别手写!

Java永远的神

Java 程序员 AI 程序人生 后端

算法题每日一练:组合总和 III

知心宝贝

数据结构 算法 前端 后端 三周年连更

BSC智能链DAPP质押挖矿系统开发

l8l259l3365

建木社区、ChatGLM团队与青田创新赋能中心打造AI对话体验平台

Jianmu

人工智能 AI ChatGPT ChatGLM

C++ 数组

雪奈椰子

BERT在eBay推荐系统中的实践_AI_eBay技术荟_InfoQ精选文章