CosRec_2D Convolutional Neural Networks for Sequential Recommendation(CIKM19)
对于序列化推荐的问题,如何利用序列化的信息, 目前大致可以分为如下几类,基于GRU等的RNN模型; 基于CNN的(一维度CNN,二维的CNN)等的CNN模型; 以及基于Attention的模型。本文介绍的文章属于第二类,基于二维卷积的方法。
相较于之前很多模型直接将购买的物品构建为序列不同,本文认为对成对关系进行建模, 可以学习到序列化特征数据的更好的表示。
一维&二维序列建模
模型
模型的大致框架如下:
对于每个用户,我们有之前交叉的商品的序列, , 我们希望能找到下一个满足用户爱好的商品。
上面的模型可以分为三个模块,用户的Embedding层,中间的核心Pairwise Encoding,以及二维卷积层。
Embedding Look-up层
我们将用户和商品分别embed为两个矩阵,, , 其中为embedding的维度, , 分别表示和的第和第行。
对于用户在时刻,我们抽取输入embedding矩阵,,
Pairwise Encoding层
此处我们在输入embedding 上面构建一个three-way的张量,,其中第个向量就是商品对的拼接embedding, ,和之前的工作不一样的地方在于我们没有直接对输入矩阵建模,此处我们对最终的张量进行建模。
2D卷积
为了捕捉高阶的序列关系,我们使用二维的卷积NN。具体的细节如下:
最后我们使用binary cross-entropy作为Loss并使用Adam优化器进行模型的训练。
实验
从上面的实验中,我们发现:
通过可视化Kernel的结果,我们发现:
小结
本文提出了一种二维CNN框架CosRec用于处理序列化的数据, CosRec将历史的商品进行枚举式的concat然后组成pair,最终使用二维的CNN提取序列特征。CosRec在数据集上的表现都明显优于最近的序列方法,表现了它作为顺序推荐任务的通用模型的有效性。
参考文献
我是二品炼丹师一元,目前跟着大哥们学习CTR炼丹已经快三个月了,有兴趣的欢迎关注我们的公众号