Rethinking the Item Order in Session-based Recommendation with Graph Neural Networks

CIKM 2019
Please click here for GitHub link.

Introduction

作者提出的观点:

  • 如何从会话中的交互中提取具有代表性的信息来表示用户的偏好是基于会话的RS的本质。
  • 用户在会话中的偏好变化表明,不应将项目简单地视为时间序列,项目转换模式更为复杂。
  • 计算最后一个项目的相对重要性,会忽略会话中的特定项目转换模式。
  • 确定会话中项目的内在顺序非常重要。这种内在顺序既不是RNN的直接时间顺序,也不是自我注意的完全随机性。

因此,本文提出了一个全图神经网络(FGNN)模型来学习项目转换模式的内在顺序,并计算会话级表示来生成推荐。
为了使用图神经网络,本文为每个会话建立一个会话图,并将推荐描述为一个图分类问题。为了捕捉项目转换模式的内在顺序(这对项目级特征表示至关重要),本文提出了一个多重加权图注意层(WGAT)网络来计算会话中项目之间的信息流。在获得项目表示之后,本文使用能自动学习确定适当的顺序的 Readout Function 来聚集这些特征。

Model

Rethinking the Item Order in Session-based Recommendation with Graph Neural Networks_第1张图片

Graph Neural Networks

大多数GNN的工作方式是迭代地聚合来自相邻节点的信息。经过k次更新迭代后,节点的最终表示捕获了k跳邻居的结构信息和节点信息。其公式可表示为:
  • 是第层中节点的特征向量。
  • 向第一层输入的为特征向量。
  • Agg充当聚合器来聚合相邻节点的特征。
  • Map是将自信息和邻域信息转化为新的特征向量的映射。

对于图分类,Readout Function 聚合图最后一层的所有节点特征,以生成图形级表示:

Weighted Graph Attentional Layer

大多数的GCN、GAT等只适用于无权重的无向图,本文提出了一种加权图注意力层,它在描述WGAT的前向传播的同时考虑了边的权重。其信息传播过程如下图所示:

Rethinking the Item Order in Session-based Recommendation with Graph Neural Networks_第2张图片

第一层中输入的特征向量由一个 embedding layer 生成,其中 embedding layer 的输入为 one-hot 编码。
Rethinking the Item Order in Session-based Recommendation with Graph Neural Networks_第3张图片

首先,需要计算一个自注意力系数:

Rethinking the Item Order in Session-based Recommendation with Graph Neural Networks_第4张图片
其中,为到的边的权重。

接着,为了直接比较不同节点的重要性,使用了一个softmax函数将系数转换为跨越相邻节点和自身的概率形式:


Rethinking the Item Order in Session-based Recommendation with Graph Neural Networks_第5张图片

ATT的选择十分多样化,本文中的选择为一个使用倾斜为的LeakyRelu作为激活函数的MLP层,因此 的计算公式为:

其中,|| 代表两个向量的连接。

之后,应用对应邻域的线性组合来更新节点的特征:

Rethinking the Item Order in Session-based Recommendation with Graph Neural Networks_第6张图片
其中, 为ReLU函数。

因为多头注意有助于稳定自我注意层的训练,因此,本文的WGAT应用了多头设置。

Rethinking the Item Order in Session-based Recommendation with Graph Neural Networks_第7张图片
其中,为the number of heads,而 || 代表连接所有的头。

最后,计算所有注意力结果的平均值:
Rethinking the Item Order in Session-based Recommendation with Graph Neural Networks_第8张图片

Readout Function

Readout Function 的目的是在对GNN层进行正向计算后,根据节点特征给出整个图的表示。

Set2Set是一个图级特征抽取器,它学习一个 query vector,该 query vector 指示了从内存中读取无向图的顺序。本文修改了这个方法以适应会话图的设置,其公式为:
Rethinking the Item Order in Session-based Recommendation with Graph Neural Networks_第9张图片

Recommendation

一旦得到了图级嵌入,就可以用它以及各个item的初始嵌入向量为整个项目集上的每个项目计算得分向量:

Rethinking the Item Order in Session-based Recommendation with Graph Neural Networks_第10张图片

最后,本文在上应用softmax函数将其转换为概率分布形式:
Rethinking the Item Order in Session-based Recommendation with Graph Neural Networks_第11张图片

对于top-K推荐,基于选择所有项目中概率最高的K个是很简单的。

Loss Function

本文在和的 one-hot encoding 之间使用了 multi- class cross entropy loss,其公式为:

Rethinking the Item Order in Session-based Recommendation with Graph Neural Networks_第12张图片

Datasets

本文使用了 Yoochoose 和 Diginetica 两个电商数据集。
Rethinking the Item Order in Session-based Recommendation with Graph Neural Networks_第13张图片

Experiment

Rethinking the Item Order in Session-based Recommendation with Graph Neural Networks_第14张图片

你可能感兴趣的:(Rethinking the Item Order in Session-based Recommendation with Graph Neural Networks)