作者:十方
序列化推荐已经火了很久了,但是现存的方法并没有对item和类目属性之间的复杂关系进行建模,这篇论文Item Categorical Attrbute Integrated Sequential Recommendation认为挖掘这种关系对下一个item推荐具有很大影响。所以该文提出了一个集成item类目属性的序列化推荐框架,该框架由两个部分组成,一个是Item-Attribute Aggregation(IAA)模型,一个是Entity Sequential(ES)模型。IAA模型中,用图的方法表达item和属性之间的复杂关系,在ES模型中,里面有一个item序列(IS)模型和一个属性序列(AS)模型。所以最终ICAI-SR用两个序列预估下一个item。
ICAI-SR架构
从上图架构图中我们可以看到,IAA模型用于挖掘item和属性之间的关系,得到它们的embedding,ES用于发掘序列的特性。IAA和ES从不同角度挖掘item和属性之间的关系,举例来说,IAA建模了哪些item拥有哪些属性,ES编码了item/属性序列之间的转移模式。从图中我们可以看到,ES模型给每种类型的Entity都进行了序列化建模。因为一个item会有多个属性,所以需要把这些属性的embedding进行聚合喂给AS模型,最后IS和AS模型一起预测next item。
IAA模型包含两层,如下图所示:
一共有j种类型的属性A = {Aj | 1 <=j <= T},论文参考了GraphSAGE,对每个item,会采样固定数目(S)的不同类型的邻居属性。从上图中,我们很清晰的看到第一层将不同类型的属性进行聚合成T个属性向量,这T个属性向量再经过第二层进行聚合,最后成为item的embedding。可以定义为下式:
Attribute to item Aggregation:
Inner attribute aggration layer:
说完了IAA建模,我们看下序列建模,这里论文并没有使用什么较为创新的方法,用的是GRU和BERT作为ES模型.通过IAA我们会得到item序列和x个属性序列,如果序列长度为T,经过ES层,我们就会得到T * (1 x)个embedding, 预估2~T 1的item,用softmax计算loss,注意这里不需要把属于同一个T下的1 x个embedding concat起来预估下一个item,论文里之间是把这1 x各embeding分别softmax,算log loss,在把所有loss相加,如下式所示,属性带来的loss需要有个超参进行控制:
实验
可以看到ICAI-BERT在recall/NDCG/MRR各项指标中都要优于其他模型.
这里需要注意NDCG指标受超参影响也不小,如下图所示:
参考资料
- ICAI-SR:Item Categorical Attrbute Integrated Sequential Recommendation
- https://dl.acm.org/doi/pdf/10.1145/3404835.3463060