推荐系统遇上深度学习(一一二)-[阿里]用户兴趣建模中的非序贯方法

本文要介绍的论文标题为《A Non-sequential Approach to Deep User Interest Model for Click-Through Rate Prediction》。论文在对过往用户兴趣建模方法总结的基础上,提出了非序贯方法对用户兴趣进行处理,一起来看一下。

1、背景

对用户兴趣建模在点击率预估中是一种常见的方式,如阿里最早提出的深度兴趣网络DIN,其基本的思路是:针对用户多样化的兴趣,使用注意力机制建模用户不同的行为与目标商品的相关性,与目标商品更相关的行为将赋予更高的权重,相关性不大的物品则赋予较低的权重。

在DIN的基础上,更多的兴趣建模方式被提出,如DIEN和DSIN考虑用户行为的先后顺序,使用GRU或LSTM对用户行为兴趣进行提取。但这类序贯建模的方式并不太适用于长行为序列建模,主要存在以下几方面的缺点:1)GRU和LSTM在线上预测时耗时过高;2)对于用户行为序列的长度,需要按照人工设定的最大长度进行截断/补齐,存在一定的信息缺失;3)固定长度的用户行为序列,其时间跨度可能差别巨大(忽略了时间因素),所提供的信息也是完全不同的,如下图中活跃用户和不活跃用户的行为对比:

针对长行为序列建模的问题,一些算法与工程co-design的方法也被提出,如MIMN使用Memory Network对用户行为进行建模,SIM使用搜索的思路,将长行为序列转换为短行为序列等等。

而本文使用非序贯的方式对用户行为数据进行处理,提出了DIN with Multidimensional Partition(DINMP),对用户长行为序列进行建模,下一节中进行详细介绍。

2、DINMP介绍

本节将分为三步对DINMP进行介绍。首先,将介绍一种稀疏的Key-Value的用户行为存储方式;随后,介绍如何将这种非序贯的用户行为数据表示方式应用于DIN中;最后,将介绍DINMP模型。

2.1 Sparse Key-vector Representation for Behavior Data

用户行为的序贯和非序贯表示形式可以用下图进行对比:

非序贯方式下,按照行为序列中的物品id进行聚合,用户行为序列表示为:

其中,j代表第j个物品,vj代表物品j的信息,其可以有如下几种表示方式

1)vj=[cj],其中,cj代表第j个物品在用户行为序列中出现的次数
2)vj=[tj,cj],除次数外,tj代表第j个物品最后一次行为发生时间
3)vj=[tj,cj, αj],除次数和最后一次发生时间外, αj(这里是alpha,不是字母a)代表物品j对应的类别(论文这里下标全是i,可能是写错了)

后文主要使用最后一种表示方式。

2.2 Enhanced Deep Interest Network

本节介绍如何将这种非序贯的用户行为数据表示方式应用于DIN中。这里主要是对attention部分的改进,其示意图如下所示:

在DIN中,attention部分的输出向量采用weighted pooling的方式,计算公式如下:

其中,ej代表行为序列中第j个行为的embedding,qi代表目标物品的embedding。a(ej,qi)代表计算的attention score。

使用非序贯的用户行为数据表示方式后,attention部分的计算公式如下:

而attention score的计算,将物品j的出现次数,最后一次发生的时间,以及类别因素进行考虑,计算公式如下:

其中,pa=a(ej,qi),pt=jTt,pc=jTc,pα=jTα,而j=(ej),tcα分别代表物品j、时间t、次数c和类别α对应的embedding。

2.3 DIN with Multidimensional Partition

在EDIN的基础上,对用户行为序列进行多个维度的切分,如时间维度和类别维度,便是本文提出的DINMP模型,其结构如下图所示:

这里主要介绍下按时间切分的思路。如第一节中所介绍的,活跃用户和非活跃用户的行为发生时间,差异非常大。因此,按照时间对用户行为进行切分,每一部分单独过一遍attention网络,如分为1天之内,2天之内,4天之内,一周之内等。每一部分的行为经过Attention网络之后,输出对应的向量[E1,E2,E3,...,ET]。接下来,每一部分的向量可以拼接或者使用self-attention结构,来提升模型的表达能力。

3、实验结果及分析

最后,来看一下实验结果部分,论文比较了DINMP与许多base模型在多个数据集上的效果,离线AUC都有明显的提升:

好了,本文就介绍到这里,感兴趣的同学可以阅读原文~~

你可能感兴趣的:(推荐系统遇上深度学习(一一二)-[阿里]用户兴趣建模中的非序贯方法)