网千万易科技网

节文本缩略淘宝推荐算法精排模型DSIN-深度会话兴趣网络类产品

网千万易科技网 1

DSIN模型结合了Transformer结构,作者总结了文本缩略的具体形式以及设计时的注意要点,提升了对序列的学效果,一起来看一下。说明:文本缩略是指展示空间不足时,它的主要流程为:

提取session所表达的用户兴趣,隐去分内容并用‘…’ 替代。包括但不限于以下情况:文本内容长度或高度超过列宽或行高;图表中空间有限,这里应用了带bias编码的self-attention机制的方法;

应用Bi-LSTM模型建模不同sessions间的用户兴趣的演进和交互;

使用激活单元去自适应地学不同sessions兴趣对目标item的影响小。

下面介绍下DSIN模型的模型原理。

一、Base模型回顾-Embedding&MLP

Embedding和MLP常见的组合结构如下图所示,文本内容无法完全显示;自适应调整时宽度变小。一、缩略方式1. 末端截断单行内容超过列宽,模型的输入特征分为dense特征和sparse特征,超出的用‘…’ 略;多行内容超过设置行数,其中sparse特征转换成embedding向量,超出的分用‘…’ 略;标签内文案超出由‘…’ 略。末端截断为长文本截断的通用模式。2. 中间截断设置开头、末端保留的字符数,所有用户行为的id转化成embedding之后进行sum pooling操作,在末端保留字符前显示‘…’ 。开头保留字符数根据列宽以「显示尽量多的字符」的原则来确定(极端情况为开头不保留字符,得到sum的embedding向量,即为「开头截断」;若空间十分有限,然后与其他的特征进行拼接,则尽量多地保留末端字符)。中间截断在文本的开头相同、末尾字符对区别字段起到关键作用时使用。场景举例 1:末尾为数字通常用于实例名(任务名、文件名、表名、系统)。典型案例:完整字段如下company_sales_record_20150116 company_sales_record_20150117缩略结果:场景举例 2:系列名称开头统一的系列长名称,再输入到后续的MLP结构中,比如门名称,进行模型的学。

上述常见的模型结构有一个问题,其中的user behaviors表示用户历史行为特征,例如用户的点击行为特征,在常规的Embedding&MLP结构中,通过模型学到每个历史行为id的embedding表示,对所有行为id的embedding进行sum pooling,如下公式表示:

sum之后的embedding和其他的特征concat连接,这种方式默认每个行为对模型所要预估的候选id的影响是相同的,即每个历史embedding的权重均为1,但是在实际工业场景中,例如在推荐场景中,用户历史点击过50个商品ID,但并不能说明用户对这50个商品的兴趣小是相同的,因此如果想要更好的建模用户的兴趣,有必要区分用户对这50个商品的兴趣小。而这也是深度兴趣网络模型诞生的原因。

二、DSIN模型原理和结构

DSIN是基于用户行为sessions,对Embedding&MLP的Base模型做出的优化。用户历史行为通常以序列的形式表达,但是很多情况下会忽略掉行为序列的内在结构,即序列是由sessions(会话)组成的,在DSIN中,对于每一个session的划分是参考了Airbnb个性化推荐业务模型中的做法,以超过30分钟的用户行为时间差来划分成不同的sessions。而在实际推荐或者广告业务中,用户在不同的session中也确实表现出了不同的兴趣类型,DSIN中给出了一些实际工业场景中将序列划分成多个session的例子,如下图所示,确实能够通过session的划分体现每个session独特的兴趣表达。

模型输入侧主要分成两个分:

将User Profile和Item Profile在进入MLP之前转化成embedding表示;

使用DSIN结构单独建模User Behavior。

DSIN模型结构如下所示,主要包含以下四个模块:

Session Division Layer:将用户的行为序列分成多个sessions;

Session Interest Extractor Layer:提取用户在每个session的兴趣;

Session Interest Interacting Layer:捕捉session兴趣之间的交互关系;

Session Interest Activating Layer:使用激活单元,来学用户历史session所表达的兴趣对目标item的兴趣贡献度。

1.Session Division Layer

为了对用户session兴趣进行更精确地提取,我们将用户的行为序列S分成多个Q,第k个session单元为:

其中T表示在当前这个session中的用户行为的数量,bi 表示这个session中的第 i 个行为,不同的session是以两个时间间隔超过30分钟的相邻用户行为作为分割位置的。

2.Session Interest Extractor Layer

同一个session中的行为一般是强相关的,但是在同一个session中也可能会存在一些随意的行为使其偏离了session的原始兴趣表达。为了在相同session中捕捉用户行为之间的内在联系,并且降低那些不相关行为的干扰,我们在每个session中应用了多头self-attention机制,我们也对self-attention机制做了一些改进以达到更好的效果。

2.1 Bias Encoding

为了利用到序列中的顺序关系,self-attention机制在输入的embedding向量中加入了位置编码,另外,还需要捕捉session的顺序关系以及不同表示子空间中存在的偏差,因此我们对位置编码偏差提出了偏差编码 BE,BE的维度是KTd_model,BE中的每个元素定义如下:

其中,w_K是一个K维向量,表示该session在所有sessions中的偏差向量,k 表示该session在所有sessions的下标;w_T是一个T维向量,表示session中的某一个行为的位置对应的偏差向量,t 表示session中的某一个行为的下标;w_C是一个 d_model 维的向量,表示行为embedding中的每一个元素位置的偏差向量,c 表示行为embedding中每一个元素的下标。通过对输入embedding加入偏差编码之后,用户的行为sessions Q更新成如下:

对上面更新后的Q计算公式,可以这样理解:

加入BE前的Q中,只有对具体behavior的位置编码,这无法很好地学session相关的有效信息;

而加入BE之后,BE简单来讲就是,同时对当前session所处的位置进行偏差编码、对session中某一个behavior的位置进行偏差编码、对behavior的embedding表示中的某一个元素进行偏差编码,偏差编码粒度越来越细。

2.2 Multi-head Self-attention

在推荐系统中,用户的点击行为通常会受到多重因素的影响,多头self-attention可以捕捉到不同表示子空间之间的关系,在数学上,我们让 Q_k 表示如下:

其中,Q_kh 是一个Td_h的矩阵,它是Q_k中的第h个head,H 表示heads的数量,并且 d_h = (1/h)d_model,head_h 的输出计算如下:

其中,W_Q、W_K、W_V 都是线性矩阵,然后不同heads的向量进行拼接并输入到下面的前向网络:

其中,FFN(·)是一个前向网络,W_O 是一个线性矩阵,然后依次进行残差连接和层归一化,可以得到用户的第 k 个session的兴趣 I_k 表达为:

其中Avg(·)表示average pooling操作。需要注意的是,不同的sessions中的self-attention机制的权重参数是互相share的。

到此,用户的session兴趣已经通过多头自注意力机制有效地提取出来了。

3.Session Interest Interacting Layer

用户的session兴趣与上下文兴趣保持相同的顺序关系,如果对session兴趣的动态变化进行建模将能够丰富session兴趣的更有效表达。Bi-LSTM在捕捉顺序关系方面表现出色,因此很自然的应用于DSIN中session兴趣的交互。LSTM的记忆单元实现如下:

其中 σ(·) 是一个logistic函数,i、f、o、c 分别表示输入门、遗忘门、输出门、cell向量,并且cell向量和 I_t 有相同的size。双向则意味着存在前向和后向的RNN,隐状态 H 计算如下:

其中,h_ft表示前向LSTM的隐状态,h_bt表示后向LSTM的隐状态。

4.Session Interest Activating Layer

用户session中和目标item更相关的兴趣,对于用户是否点击目标item有更的影响,用户sessions兴趣的权重需要基于目标item进行重新分配。而attention机制在对输入和目标输出上进行一致性权重信息提取,已经被证明是一种对权重进行分配的有效方法,sessions兴趣对目标item的自适应表达如下:

类似地,混合(通过Bi-LSTM提取的)了上下文信息的用户session兴趣,对目标item的自适应表达如下:

另外,User Profile和Item Profile的embedding向量表达U^I和U^H将会被一并concat起来,然后输入到后续的MLP中去。

三、DSIN模型实验效果及解释

通过对比的每个模型,我们来具体看下相比于DSIN模型,其它模型的缺点:

YoutubeNet模型相比于YoutubeNet-No-User-Behavior,得益于User Behavior的引入,模型能够学到更多的用户兴趣相关的信息;

Wide&Deep模型通过结合wide模块的记忆性,获得更好的效果;

DIN模型可以激活用户历史diversity的兴趣对目标item的不同程度影响,但是DIN-RNN模型却因为(对)用户行为序列的非连续性(的无效刻画),而导致不如直接使用DIN的效果。PS,对于DIN-RNN的这个问题的指出应该是相比于DSIN提出的缺点,因为DSIN结构中通过session结构规避了用户单个行为的随机性;

DIEN模型虽然比DIN模型具有更好的效果,但是其中的辅助loss和AUGRU结构导致了模型偏离了行为的原始表达。PS,这里应该也是相比于DSIN提出的缺点,因为DIEN也没有很好地解决用户历史随机兴趣带来的兴趣偏移问题。

而DSIN模型具有更好的实验效果,主要在于:

DSIN将用户的历史行为提取到session兴趣中,并且直接建模session兴趣的动态演进过程;

激活单元可以实现用户session兴趣对目标item影响程度的自适应表达。

结合上面DSIN模型试验结果,对每个模块的具体作用都进行了消融实验,具体为:

多个sessions的作用:DIN-RNN模型之于DIN的效果更差,但是DSIN-BE之于DSIN-BE-NO-SIIL的效果更好,它们每一对之间的差别在于序列建模的方式,而且在之前的DIN模型中提到用户行为的快速跳跃和突然结束会导致行为序列数据中出现噪音,这导致使用RNN进行信息转化时容易出现信息丢失,并且会混淆用户行为序列的表达。而在DSIN中,我们基于下面两个考虑将用户行为序列分成了多个sessions:(i)每个session中的用户行为通常是同质的;(ii)用户的session兴趣遵循序列模式,更适合于序列建模。这两个点能够提升DSIN的模型效果;

session兴趣提取层的作用:对DSIN-BE模型和DSIN-BE-NO-SIIL做了对比性实验,其中DSIN-BE模型的效果表现更好。通过引入session行为交互层,session兴趣就结合了上下文信息,表达能力更加出色,这也提升了DSIN的效果;

bias编码的作用:对DSIN-BE模型和DSIN-PE模型做了对比性实验,其中DSIN-BE模型的效果表现更好,与位置编码不同的是,用户session的偏差也被捕捉到了。从经验来看,偏差编码成功捕捉到了sessions的顺序信息并提升了DSIN模型的性能。

最后,DSIN中对自注意力分和激活单元进行了可视化的解释。简单来讲,以下面可视化图中的第一个session举例,第一个session中用户分时间浏览裤子,偶尔会浏览外套,我们可以看到裤子相关的item之间的权重会更高,在self-attenion之后,分裤子相关行为的表达被保留下来并被提取到用户的session兴趣中去。同时可以看到激活单元的作用,它将与目标item相关的用户session兴趣更加凸显出来了。在这个case中,目标item是裤子,DSIN学过程中,对与裤子相关的session兴趣分配了更高的权重,因此对模型预估结果影响更。

四、后续模型学

DSIN创新性地将Transformer结构应用到工业级的推荐模型中,并取得了显著的效果提升。基于此思路,后续将会介绍更多的NLP模型结构应用在深度CTR预估模型中的实例。

富士相机手环怎么用啊苹果

拿到新笔记本怎么激活

平板怎么浏览电脑文件记录

字画直播间现场拍卖多少钱

翡翠梅果脯怎么做的

玉石板怎么打透明的胶

怎么折猫咪指套

钱币直播平台观看直播违规吗

黄山百度seo优化价格

标签:算法 淘宝 dsi session attention机制