一篇BERT用于推荐系统的文章

那时给我们如是说一则BERT用作所推荐控制系统的该文,试题是《BERT4Rec: Sequenal mendation with Bidirectional Encoder Representations from Transformer》,该文译者都是出自于穆萨。

提及:Sun F, Liu J, Wu J, et al. BERT4Rec: Sequential recommendation with bidirectional encoder representations from transformer[C]//Proceedings of the 28th ACM International Conference on Information and Knowledge Management. 2019: 1441-1450.

学术论文门牌号:http://arxiv.org/pdf/1904.06690.pdf

责任编辑概要:

1. BERT4Rec概要

依照采用者发展史的犯罪行为,对采用者静态的偏爱展开可视化,对所推荐控制系统而言是有考验的和重要的。以后的演算法采用字符串从从左到右地代码采用者的发展史可视化重要信息为暗含则表示,从而展开所推荐,因而只借助了单向的重要信息展开可视化。虽然它是有效率的,但由于存有下列管制,他们认为此种右面的单向数学模型是吉莱的:

单向迪雷省了采用者犯罪行为字符串中暗藏则表示的潜能;

以后的字符串数学模型时常选用严苛科学规范的字符串,这并不常常可取的;

为的是化解这些管制,他们明确提出了一个称作BERT4Rec的字符串所推荐数学模型,该数学模型选用微细的单向自目光来对采用者犯罪行为字符串展开可视化。为的是防止重要信息外泄并有效率地体能训练单向数学模型,他们选用Cloze最终目标展开字符串所推荐,透过联手im以内的语句来预估字符串中乱数masked item。用此种形式,他们自学了单向则表示数学模型,容许采用者发展史犯罪行为中的每一item结合以内两边的重要信息来做出所推荐。在五个计算方法统计数据K568展开的大批试验说明,他们的数学模型仍旧强于各式各样的字符串数学模型。

2. 背景

精确地捕捉采用者的兴趣,是所推荐控制系统的核心问题。在许多实际应用中,采用者当前的兴趣本质上是静态变化的,受其发展史犯罪行为的影响。例如,虽然在正常情况下不会购买游戏机配件,但在购买Nintendo Switch之后,你可能会很快购买配件(例如Joy-Con控制器)。

为的是捕捉采用者的偏爱的静态变化,明确提出了许多依照采用者发展史可视化重要信息的字符串所推荐演算法,最早采用马尔科夫对采用者字符串展开可视化,其中一些方法的强假设破坏了所推荐控制系统的准确性。近期,一些字符串数学模型在字符串所推荐问题中取得了不俗的效果。最基本的思想就是将采用者的发展史字符串自从左到右代码成一个向量,然后基于这个向量展开所推荐。

虽然它具有普遍性和有效率性,但他们认为这样右面的单向数学模型不足以自学采用者犯罪行为字符串的最佳则表示。主要因为此种单向数学模型管制了发展史字符串中items的暗藏则表示的功能,其中每一item只能代码来自先前item的重要信息。另一个管制是,先前的单向数学模型最初是针对具有自然顺序的字符串统计数据(例如,文本和时间字符串统计数据)引入的。他们时常对统计数据选用严苛的顺序排列,这对现实应用程序中的采用者犯罪行为并不常常正确的。实际上,由于各式各样不可观察的外部因素,采用者的发展史可视化中的item选择可能不会遵循严苛的顺序假设。在此种情况下,至关重要的是将两个方向的语句合并到采用者犯罪行为字符串可视化中。

为的是化解上述管制,本篇该文的创新点:

明确提出了一种基于单向self-attention和Cloze task的采用者犯罪行为字符串可视化方法。据他们所知,这是第一个将深度字符串数学模型和Cloze task引入所推荐控制系统的研究。

将他们的数学模型与最先进的方法展开了比较,并透过对五个计算方法统计数据集的定量分析,证明了责任编辑演算法的有效率性。

他们展开了一项消融分析,分析了数学模型中关键部件的贡献。

3. BERT4Rec数学模型如是说

3.1 问题定义

定义, 为采用者集合, 为物品集合,为采用者发展史犯罪行为字符串。他们的最终目标是预估下一时刻采用者与每一候选物品可视化的概率:

3.2 数学模型结构

如下图(b)所示,含有L层的Transformer,每一层借助前一层所有的重要信息。相比于图(d)基于RNN的所推荐数学模型,self-attention可以捕获任意位置的重要信息。相比于基于CNN的所推荐数学模型,可以捕获整个field的重要信息。相比于图(c)和图(d)的数学模型(都是left-to-right的单向数学模型),责任编辑明确提出的单向数学模型可以化解现有数学模型的问题。

3.3 Transformer层

如图(a)所示,Transformer由两部分组成Multi-He Self-Attention和Position-wise Feed-Forward network部分。

(1)Multi-Head Self-Attention

对数学模型框架中的第 层Transformer,输入为 ,首先是Multi-Head Self-Attention过程:

其次是Dropout和Add & Norm过程,这里的Add就是Skip Connection操作,目的是反向传播时防止梯度消失的问题;而Norm是Layer Norm操作。

(2)Position-wise Feed-Forward Network

由于只有线性映射,为的是使得数学模型具有非线性的性质,所以选用了Position-wise Feed-Forward Network。Position-wise的意思是说,每一位置上的向量分别输入到前向数学模型中,计算形式如下:

这里选用的激活函数是 Gaussian Error Unit (GELU) ,而非RELU,其出自于学术论文《Gaussian error linear units (gelus)》。GELU在RELU的基础上加入了统计的特性,在学术论文中提到的多个任务中都取得了较好的试验结果。

如果读者对Transformer或BERT的原理不熟悉,可以看一下我以后对这些数学模型的详细解析:

Self-Attention与Transformer

从Transformer到BERT数学模型

BERT数学模型精讲

3.4 Embedding层

在没有任何RNN或CNN模块的情况下,Transformer不知道输入字符串的顺序。为的是借助输入的顺序重要信息,他们在Transformer的Embedding层加入了位置嵌入,责任编辑的位置向量是学到的,不是transformer中的正弦。位置向量矩阵可以给定任意位置的向量,但是要明确最大的长度,因而需要对输入字符串展开截断。

对给定的物品 ,其输入则表示 是透过将相应的物品和位置Embedding求和来构造的:

3.5 Output层

经过层的重要信息交换之后,他们得到输入字符串中所有items的最终输出。如上图(b)所示,他们在第 步掩盖掉物品 ,然后基于 预估被掩盖的物品 。这里采用两层带有GELU激活函数的前馈网络得到最终的输出:

这里需要注意,输出层的公式是所推荐场景特有的,因而我来详细解释一下。是前馈网络的权重矩阵; 和 是偏置项; 是item集合的embedding矩阵。BERT4Rec数学模型在输入层和输出层用了共享的物品embedding矩阵,目的是减轻过拟合和减少数学模型大小。

3.6 数学模型体能训练和预估

他们的目的是预估采用者下一个要可视化的物品 ,对传统的字符串所推荐数学模型,如上图(d)中的RNN数学模型,输入是 ,转换为对应的输出为 ,那么他们自然可以拿最后一个时刻输出的物品展开所推荐。而在BERT4Rec中,由于是单向数学模型,每一个item的最终输出则表示都包含了要预估物品的重要信息,这样就造成了一定程度的重要信息外泄。因而选用Cloze taske,也就是将输入字符串中的p%的物品展开masked,然后依照语句重要信息预估masked的物品。

在体能训练阶段,为的是提升数学模型的泛化潜能,让数学模型体能训练到更多的东西,同时也能够创造更多的样本,借鉴了BERT中的Masked Language Model的体能训练形式,乱数的把输入字符串的一部分掩盖(即变为[mask]标记),让数学模型来预估这部分盖住地方对应的物品:

选用此种体能训练形式,最终的损失函数为:

如上所述,他们在体能训练过程和最终的字符串预估所推荐任务之间是不匹配的。因为Cloze task的目的是预估当前被masked的物品,而字符串预估所推荐的目的是预估未来。为的是化解这个问题,在预估阶段他们将masked附加到采用者犯罪行为字符串的末尾,然后依照该masked的最终暗藏则表示来预估下一项。

为的是更好地匹配字符串所推荐任务(即,预估最后一项),在体能训练过程中他们还生成了只mask输入字符串中最后一项的样本。这个工作就像对字符串所推荐的微调一样,可以进一步提高所推荐性能。

4. 试验

本学术论文的代码已开源,门牌号:http://github.com/FeiSun/BERT4Rec 。读者一定要亲自把学术论文读一遍,复现一下学术论文中的试验。我把试验部分总结如下:

首先,学术论文对比了BERT4Rec数学模型和一些Base数学模型在4个统计数据K568的表现,发现BERT4Rec数学模型相比于Base数学模型,其性能都有较大的提升。

其次,是对Embedding的长度、体能训练时mask物品的比例和字符串的最大长度等参数的对比。结论为:Embedding长度越长,数学模型的效果更好;对不同的统计数据集,最佳mask的比例并不相同;对不同的体能训练集,最佳的字符串长度也不相同。

最后,是对数学模型结构的一些对比试验,主要有是否采用PE(positional embedding),是否采用PFFN(position-wise feed-forward network),是否采用LN(layer normalization),是否采用RC(即Add操作,residual connection),是否采用Dropout,以及Transformer Layer的层数和Multi-head Attention中head的个数。

5. 个人感悟

总之,BERT4Rec就是把BERT用在所推荐控制系统中,知道采用者的播放(购买、点击、...)字符串 item1, item2, item3,预估下一个播放的item问题。体能训练的时候采用Mask LM任务采用海量采用者犯罪行为字符串展开体能训练,数学模型评估时将字符串的最后一个item展开masked,预估的时候在字符串的最后插入一个[mask],然后用[mask]增强后的embedding预估采用者接下来会观看哪个item。整体而言,该篇学术论文为BERT在所推荐控制系统领域的工业界落地提供了强有力的指导说明,但在所推荐控制系统领域的学术界而言创新性就显得不是很大。

BERT4Rec对实际工作,可以成为一个思路上的参考,对具体的演算法落地我明确提出两点思考:

BERT的体能训练和预估耗时耗资源,如何提高BERT的在线服务潜能?这里腾讯开源了一个叫TurboTransforme的工具,对Transformer推理过程起到了加速作用,让线上推理引擎变得更加强大。开源门牌号:http://github.com/Tencent/TurboTransformers

学术论文中没有采用物品、采用者属性和场景的重要信息,只采用了犯罪行为重要信息,如何把额外的重要信息加入数学模型是值得重点探索的。

6. Reference

【1】Sun F, Liu J, Wu J, et al. BERT4Rec: Sequential recommendation with bidirectional encoder representations from transformer[C]//Proceedings of the 28th ACM International Conference on Information and Knowledge Management. 2019: 1441-1450.

【2】Hendrycks D, Gimpel K. Gaussian error linear units (gelus)[J]. arXiv preprint arXiv:1606.08415, 2016.

【3】RS Meet DL(六十一)-[穆萨]采用Bert来展开字符串所推荐,http://mp.weixin.qq.com/s/y23s_Y8Der12NMVw9y2NEA

【4】BERT4Rec: Sequential Recommendation with Bidirectional Encoder Representations from Transformer,http://blog.csdn.net/luoxiaolin_love/article/detls/93192601

【5】BERT4REC:采用Bert展开所推荐 - 魏晋的该文 - 知乎 http://zhuanlan.zhihu.com/p/97123417

【6】BERT在美团搜索核心排序的探索和实践,http://mp.weixin.qq.com/s/mFRhp9pJRa9yHwqc98FMbg

【7】微信也在用的Transformer加速推理工具 | 腾讯第100个对外开源项目,门牌号:http://mp.weixin.qq.com/s/3QBTccXceUhK47TlMcCllg

责任编辑:xj

原文标题:【所推荐控制系统】BERT4Rec:采用Bert展开字符串所推荐

该文出处:【微信公众号:深度自学自然语言处理】欢迎添加关注!该文转载请注明出处。

发布于 2022-09-24 12:09:31
收藏
分享
海报
0 条评论
72
目录

    推荐阅读

    0 条评论

    请文明发言哦~

    忘记密码?

    图形验证码