Non-invasive Self-attention介绍

Reading time ~2 minutes

华为在《Non-invasive Self-attention for Side Information Fusion in Sequential Recommendation》中提出了Non-invasive Self-attention的方法:

抽要

Sequential recommender systems的目标是:根据用户历史行为建模用户的兴趣演进。对比起传统的模型,DNN等已经达到了较高的水准。最近BERT框架的出现,受益于它的self-attention机制,在处理序列数据上非常合适。然而,original BERT框架只考虑单一输入源:在自然语言中的tokens。在BERT框架下如何利用众多不同类型的information仍是一个开放的问题。尽管如此,它看起来可以直接利用其它的side information,比如:item category或者tag,来进行更综合的描述与更好的推荐。在我们的实验中,我们发现naive方法(直接将不同side information的types进行融合到item embeddings中)通常会带来非常少或负向的效果。因此,提出了NOninVasive self-Attention机制 (NOVA) 来在BERT框架下有效利用side information。NOVA会利用side informaiton来生成更好的attention分布,而非直接更改item embeddings,它会造成信息压倒性(information overwhelming)。我们验证了NOVA-BERT模型,并能达成SOTA效果,计算开销很小。

。。。

3.方法

图片名称

图1 invasive和non-invasive方法的一个图示。invasive方法会以不可逆的方式来融合所有类型的信息,接着将它们feed到sequential models上。而对于non-invasive方法,side information只会参与attention matrix计算,item information会保存在一个独立的vector space中

3.1 问题设定

**给定一个用户与系统的历史交互,顺序推荐(sequential recommendation)任务会询问:下一个要交互哪个item? **

假设:u表示一个用户,它的历史交互可以被表示成一个按时间顺序的序列:

Su=[v(1)u,v(2)u,,v(n)u]

其中:

  • v(j)u:表示用户u做出的第j个交互行为

当只有一种类型的actions、并且没有side information时,每个interaction可以被简单表示成一个item ID:

v(j)u=ID(k)

其中:

  • ID(k)I,表示第k个item ID。
I={ID(1),ID(2),,ID(m)}

其中:

  • I是所有items的vocabulary。
  • m是vocabulary size,表示在问题domain中的item总数

给定一个user Su的历史,系统会预估用户最可能交互的下一个item

Ipred=ID(ˆk)ˆk=argmaxk  P(v(n+1)u=ID(k)|Su)

3.2 Side Information

Side information可以是任意提供额外有用信息的东西,它可以被分类成两种类型:item-related或behavior-related。

  • Item-related side information:是固有的,可以描述item本身,除了item IDs(例如:价格、生产日期、生产商)。
  • Behavior-related side information:是由一个user初始化的一个interaction,例如:action的类型(购买、评分) 、发生时间、用户反馈打分。

每个交互的顺序(例如:原始BERT中的position IDs)可以被看成是一种behavior-related side information

如果side information引入进来,那么一个interaction就是:

v(j)u=(I(k),b(1)u,j,,b(q)u,j)I(k)=(ID(k),f(1)k,,f(p)k)

其中:

  • b()u,j:表示一个由user u做出的第j个interaction的behavior-related side information。共有q个该类型的side information
  • I():表示一个item,包含了一个ID和一些item-related side information f()k。共有p个该类型的side information

Item-related side information是静态的,并存储了每个特定item的内在features。因而,vocabulary可以被重写成:

I={I(1),I(2),,I(m)}

该目标仍是预估下一个item的ID:

Ipred=ID(ˆk)ˆk=argmaxkP(v(n+1)u=(I(k),b1,b2,,bq)|Su)

其中:

  • b1,b2,,bq:是latent behavior-related side information,如果behavior-related side information被考虑的话。注意:该模型仍能预估下一个item,而非 behavior-related side information被假设或忽略。

3.3 BERT和Invasive Self-attention

图片名称

图2 BERT4Rec。Item IDs和positions会被分别编码成vectors,接着添加在一起作为integrated item representations. 在训练期间,item IDs会被随机mask掉(表示成[M]),以便让模型来进行恢复

BERT4Rec(Sun. 2019)是首个利用BERT框架进行sequential推荐并达到SOTA效果的任务。如图2所示,在BERT框架中,items被表示成vectors(embeddings)。在训练期间,一些items会被随机mask,BERT模型会使用multi-head self-attention机制来尝试恢复它们的vector表示以及item IDs:

SA(Q,K,V)=σ(QKTdk)V

其中:

  • σ是softmax function
  • dk是一个scale factor
  • Q, K, V分别表示query、key、value的组件

BERT会遵循一个encoder-decoder的设计,来为在input序列中的每个item生成一个contextual representation。BERT会采用一个embedding layer来保存m个vectors,每个对应于在vocabulary中的一个item。

为了利用side information,像conventional方法会使用独立的embedding layers来将side information编码到vectors中,接着使用一个fusion function F将它们融合到ID embeddings中。这种invasive类型的方法会将side information注入到原始embeddings中,来生成一个mixed representation:

Eu,j=F(ϵid(ID),ϵf1(f(1)),,ϵfp(f(p)),ϵb1(b(1)u,j),,ϵbq(b(q)u,j))

其中:

  • Eu,j:是user u对第j个interaction的integrated embedding
  • ϵ:是将objects编码成vectors的embedding layer

该integrated embeddings的序列会被feed到模型中作为user history的input。

BERT框架会通过使用self-attention机制的layer来更新representations layer:

Ri+1=BERT_Layer(Ri)R1=(Eu,1,Eu,2,,Eu,n)

在原始BERT和Transformer中,self-attention操作是一个位置不变函数(positional invariant funciton)。因此,一个position embedding会被添加到每个item embedding中来显式编码position信息。position embeddings也可以被看成是一种behavior-related side information(例如:一个interaction的顺序)。从该视角看,original BERT也可以将positional information看成是唯一的side information,使用加法作为fusion function F。

3.4 Non-invasive Self-attention (NOVA)

如果我们考虑end-to-end的BERT框架,它是一个具有stacked self-attention layers的auto-encoder。该identical embedding map会被用于encoding item IDs和decoding restored vector representations两者之上。因此,我们会讨论:invasive方法存在着对embedding空间混合的缺点,因为item IDs会使用其它side information进行不可逆的混合。将来自IDs的信息与其它side information进行混合,使得对于模型编码item IDs来说带来不必要的困难。

相应的,我们提出了一种新的方法:称为noninvasive self-attention (NOVA),来维持embedding space的一致性,从而利用side information建模sequences会更有效。该思想会修改self-attention机制,并仔细控制着self-attention组件(称为:query Q、key K、value V)的信息源。

图片名称

图3 invasive和non-invasive self-attention方式下的特征融合(feature fusion)。invasive方式会将item related和behavior-related side information使用一个fusion funciton进行直接融合;而NOVA只会在Query&Key中对它们进行融合

在在3.3节中定义的integrated embedding E之外,NOVA也会为pure ID embeddings保留一个分枝:

E(ID)u,j=ϵid(ID)

因而,对于NOVA,用户历史会包含两个representations集合,pure ID embeddings和integrated embeddings:

R(ID)u=(E(ID)u,1,E(ID)u,2,,E(ID)u,n)Ru=(Eu,1,Eu,2,,Eu,n)

NOVA会计算来自 integrated embeddings R的Q、K,以及来自item ID embeddings E(ID)的V。在实际中,我们会以tensor形式处理整个序列(例如:R和R(ID)RB×L×h,其中B是batch size,L是sequence length,h是embedding vectors的size)。NOVA可以公式化为:

NOVA(R,R(ID))=σ(QKTdk)V

接着,Q,K,V可以通过线变变换进行计算:

Q=RWQ,K=RWK,V=R(ID)WV

对于side information fusing,NOVA与invasive方式间的对比如图3所示。layer by layer,在NOVA layers上的prepresentations会被保存到一个一致的vector space中,它完全由item IDs的context构成,E(ID)

3.5 Fusion操作

NOVA会利用不同于invasive方法的side information,将它看成是一个auxiliary,并将side information进行fuse到具有fusion function F的Keys和Queries中。在本研究中,我们也研究了不同类型的fusion functions和它们的效果。

如上所示,position information也是一种behavior-related side information,并且original BERT会使用直接的addition操作来利用它:

Fadd(f1,,fm)=mi=1fi

再者,我们定义了concat fusor来将所有side information进行拼接,后接一个fully connected layer来对维度进行uniform:

Fconcat(f1,,fm)=FC(f1fm)

受(Lei 2019)的启发,我们设计了一个具有可训练参数的gating fusor

Fgating(f1,,fm)=mi=1G(i)fiG=σ(FWF)

其中:

  • F是所有features [f1,,fm]Rm×h的矩阵形式
  • WF是一个可训练参数Rh×1
  • h是要融合的feature vectors的维度 fiRh

图片名称

表1: 对比效果

3.6 NOVA-BERT

在图4所示,我们实现了我们的NOVA-BERT模型。每个NOVA layer会采用两个inputs,提供的side information以及item representations序列,接着输出相同shape的更新后的representations,它会被feed到下一layer中。对于第一层的input, item representations是纯item ID embeddings。因为我们只会用side information作为辅助来更好学习attention分布,side information不会沿着NOVA layers进行传播(propagate)。对于每个NOVA layer,side information的相同集合被显式提供。

NOVA-BERT会遵循original BERT的结构,除了将self-attention layers替换成NOVA layers。因而,额外的参数和计算开销会被忽略,它们主要由轻量级的fusion funciton引入。

我们相信,有了NOVA-BERT,hidden representations会保持在相同的embedding space中,它会让decoding处理一个同类型的vector search,这有利于prediction。

图片名称

图4 NOVA-BERT。每个NOVA layer会采用两个inputs:item representations和side information

LIC介绍

douyin在《Long-Term Interest Clock: Fine-Grained Time Perception in Streaming Recommendation System》详细介绍了LIC的实现:# 摘要用户的兴趣在一天中表现出动态模式,例如,用户通...… Continue reading

kuaishou LiveForesighter介绍

Published on February 21, 2025

kuaishou MomentCross介绍

Published on February 20, 2025