近年来很多序列化推荐的方法都是通过把用户历史行为序列转化为一个总的向量化表达,来给用户做下一个item推荐。然而,通过经验性的分析,我们就会发现用户序列行为中包含多种多样完全不同含义的item,这个表示用户的向量受历史行为的影响非常大,因此无法推荐出用户历史行为中类别占比较小的item。所以应该用不同的embedding去编码用户当前的意图,这篇论文《Sparse-Interest Network for Sequential Recommendation》提出了SINE解决序列化推荐的问题,炼丹笔记前面已经介绍了大部分阿里的序列化推荐算法,所以废话不多说,直接介绍SINE。
SINE解决啥问题?
假定 x ( ) =1...N 表示N个用户与M个item的数据,x ( ) = [x1, x2, ..., xn] 表示用户点击序列,考虑到工业级推荐系统包含数十亿的item,SINE的目标是挖掘出用户K个向量表达,能抓住用户准确的意图,召回top的item提供给下游(排序模块)。
最新的用于抓住用户准确意图的序列化编码器可以被总结为两大类。第一类方法隐式的挖掘用户多层兴趣,例如基于多头self-attention的方法,另一类显式的捕捉用户多层意图。第一类方法在和单个向量推荐相比较,并没有明显的提升。另一类则可以有效的挖掘用户的多兴趣,这些方法都存在一个共同的问题,就是要求用户在交互过的各个类目都有一个embeding表达,导致该类方法可扩展性特别差。举个例子,按照专家的标注,阿里天猫所有商品可以分为1w类,所以在推荐系统中一个用户有类目个向量是不现实的。
因此稀疏兴趣网络就诞生了,该网络有能力挖掘出用户兴趣最高的几个意图。