序列模型

序列建模

行为序列数据蕴含用户的兴趣偏好,对该信息的挖掘可以提高推荐结果的准确性。

行为序列建模可以归纳为两个方面:

  1. 特征工程
  2. 模型结构

特征是对某个行为过程的抽象表达,特征工程旨在更精确的刻画行为过程,需要对具体的业务场景有一定的理解。构建完特征后,还需要运用合适的技术有效地挖掘数据中的信息,所以特征和模型两者缺一不可。

行为序列相关的工作很好地兼顾了特征和模型。

一方面,很多技术包括行为序列建模在搜广推领域是通用的,但是应该注意到不同的场景下会有相应的变化。

搜索场景中的用户意图主动明确,目标是让用户更快找到需要的物品;

推荐场景中的用户意图是被动模糊的,目标是尽可能的增加用户的使用时长。

场景差异要求我们使用某一技术时因地制宜。例如,在搜索场景中,由于Prefix或Query的限制,召回的物品嘚满足相关性,一些向量召回方法就不易发挥用处。另一方面,推荐系统不同阶段的特点对特征和模型也有所限制,例如,召回阶段面对的是海量的候选集,只能上见到那的特征和模型粗略选出用户可能感兴趣的物品,而排序阶段的候选集的规模较小,可以上复杂的特征和模型更精确地预估用户对物品的感兴趣程度。

文章从特征工程模型结构两个方面总结行为序列的相关工作,同时会对搜索推荐场景以及召回排序阶段

1. 特征工程

1.1行为类型

点击,收藏,成交等可以分别表示为用户的短期,中期,长期兴趣,既可以组织为一个混合序列通过类别特征区分,也可以直接组织为多个种类的序列分别建模。用户对近期点击过的商品大概率仍然感兴趣,但对于近期购买过的商品一般短期内不在感兴趣(需求以满足)。

1.2 行为时间

  • 该行为距离当前请求的时间差。一般来说,用户当前的兴趣与近期行为过的物品更相关
  • 该行为与下一次行为的时间差,一般来说,时间上越接近的行为过的物品更相关,类似一个Session内的行为过的物品更相关。
  • 在当前物品上的停留时间。例如,用户在购买某一商品时在详情页的停留时间,停留时间越长一般越感兴趣。

1.3 行为场景

对一个商品的点击可以发生在首页推荐,搜索推荐和广告推荐,同一种行为在不同场景下含有不同的意义。

1.4 物品种类

行为序列中的物品可以是Query,Item,Review,Music,Movie,Book,Food等,视业务场景而定

1.5 物品属性

如果只使用物品ID特征,长尾物品在样本和序列中的占比都很低,其ID Embedding不容易学好,因此可以加入类目,品牌和店铺等泛化特征,同时模型也能学习到更泛化的偏好,例如某一用户更喜欢购买阿迪达斯品牌的商品。

1.6 序列划分

  • 多种兴趣:用户序列模型抽取行为序列信息得到用户的兴趣向量,考虑到序列内物品的异构性,单一的兴趣向量难以精确地表征用户的兴趣偏好,例如,某个用户的行为序列内既有服饰类商品又有电子类商品,将对不同类目的商品的兴趣融合到一个向量容易导致“四不像”。一个典型的例子是推荐场景的召回阶段,单一的兴趣向量召回的商品往往比较杂甚至不相关。因此,我们可以对行为序列进行划分,一方面,可以根据某个准则手动划分,例如,根据类目特征将商品分类,根据时间窗口划分Session(同一Session内的物品更相关);另一方面,也可以使用胶囊网络记忆单元等动态学习兴趣划分。事实上,Multi-head Attention也能学习到这样的多种兴趣,将学习到的Attention分布可视化就能发现,某个Head下的Attention和时间差强相关,某个Head下的Attention和类目强相关等等,说明模型学习到了用户对商品的多种兴趣偏好。
  • 长短兴趣:根据时间跨度可以将序列划分为短期序列和长期序列,分别用来表征用户的短期兴趣和长期兴趣(相对稳定)。一方面,可以设置一个时间窗口划分长短期序列分别学习再做融合,另一方面,也可以用记忆网络来学习长期兴趣。一般来说,用户当前的行为主要受短期兴趣的影响。

1.7 超长序列

加长序列可以引入更丰富的用户历史行为,但是序列模型在处理时计算量大且RT高。因此,一方面,可以根据某个规则快速筛选出超长序列中与Target相关的物品,例如,同一类目下的物品,Embedding接近的物品(LSH)等,另一方面,可以合理设计网络结构并利用记忆网络学习,将兴趣向量的更新与候选物品的打分解耦

2. 模型结构

对序列数据的处理非常自然,忽略序列的位置信息可以使用简单的Mean Pooling [13,14],但是位置(时间)信息是刻画用户行为过程的重要特征,因此可以使用CNN/RNN/Transformer等模型处理。目前主流的方法是各种改进的RNN和Attention模型。

2.1 RNN

可以分为基础的LSTM,GRU和改进的Attention-RNN,如DIEN[15],DUPN[1]等。RNN可以建模用户的兴趣进化过程,并促进序列中相邻物品的特征交互,但是RNN的计算是串行的容易造成RT高,并且部分场景中用户的兴趣可能是跳跃的,例如,用户购买了Switch后又购买了便携屏,投影仪,塞尔达,前后行为是相关的;但是,也有用户购买了手机后又购买了衣服,零食,前后行为并不相关。

2.2 Attention

Attention模型从全局抽取序列信息,缓解了RNN的长程依赖问题,但是Attention本身并不建模位置信息,需要合理设计位置特征Embedding。根据Query的类型,可以分为Self Attention,Target Attention和User Attention;根据Attention计算的方式,可以分为点积模型,双线性模型,加性模型,门控模型,其中门控模型是指运用RNN中计算门控的方式计算Attention向量(区别标量),从而在更细粒度的范围建模重要性差异。

  • Self Attention使用序列中每个物品自身作为Query计算Attention,可以建模序列内部物品之间的依赖关系,并且相比RNN是两两物品之间的特征交互,但是Self Attention的计算量大,在部分场景也没什么效果,例如手淘搜索,之前看过一篇美团的博客[16],其中Self Attention离线在线都有效,可能的原因是:在手淘场景中,一是行为序列中的物品非常异构,二是用户的前后行为存在跳跃的现象,不太适合用Self Attention建模。
  • Target Attention使用待预测的物品作为Query计算Attention,相当于一种Soft Search,筛选出序列中更符合用户当前意图的信息。例如,一个用户近20天购买了手机,衣服,零食,现在系统需要给用户推荐零食商品(可能是首页推荐,可能是主动搜索),与零食商品不相关的对手机和衣服商品的行为信息就不需要保留在兴趣向量中。但是从特征交互的角度来看,Target Attention缺少了序列内部物品的交互。
  • User Attention使用User Embedding作为Query计算Attention,一方面考虑到了用户自身特点对偏好的影响,另一方面加强了用户和物品的特征交互。

2.3 胶囊网络

文提到行为序列中包含了多种兴趣,使用单一的兴趣向量表示存在缺陷,胶囊网络中的动态路由算法可以自动学习这样的兴趣划分,相当于对行为序列进行了自动软聚类。

2.4 记忆网络

记忆网络利用外部存储单元来贮存长期信息,同时每个记忆单元又可以看做一个兴趣向量,既可以用来建模多兴趣也可以用来建模长期兴趣。

上一篇:第十四课.Transformer


下一篇:第六周:论文泛读(一)