【论文阅读】Empowering next POI recommendation with multi-relational modeling

Metadata

authors:: Zheng Huang, Jing Ma, Yushun Dong, Natasha Zhang Foutz, Jundong Li
container:: Proceedings of the 45th international ACM SIGIR conference on research and development in information retrieval
year:: 2021
DOI:: 10.1145/3477495.3531801
rating:: ⭐⭐
share:: false
comment:: 强调用户之间的社交关系建模,使用耦合的 RNN 相互更新用户和 POI 表示


前言

2022 年 SIGIR, Empowering next POI recommendation with multi-relational modeling

问题描述

分别给定用户集合U={u1,u2,,uU}\mathcal{U} = \{ u_1, u_2, \cdots, u_U \}以及 POI 集合L={l1,l2,,lL}\mathcal{L} = \{ l_1, l_2, \cdots, l_L \},其中每个位置lil_i都有一个对应的(lat,lon)(lat, lon)坐标相关联。

check-in)一个 check-in 可以表示为ck(ui)=(lk,tk)c_k(u_i)=(l_k,t_k),即用户uiu_itkt_k时刻访问地点lkl_k

user trajectory)用户轨迹是由特定用户的一系列时间顺序的签到记录来定义的,即C(ui)={c1(ui),c2(ui),,cK(ui)}C(u_i) = \{ c_1(u_i), c_2(u_i), \cdots, c_K(u_i) \}

user-user social relations)给定用户之间的PP个关系R={r1,r2,,rP}\mathcal{R}=\{r_1, r_2, \cdots, r_P\}。使用三元组表示用户之间的社交关系(ui,uj,rp),ui,ujU,rpR(u_i, u_j, r_p), u_i, u_j \in \mathcal{U}, r_p \in\mathcal{R}。为了简单,假设用户之间的关系是对称的。值得注意的是,用户之间可能有多种关系。

next POI recommendation)给定每个用户uiu_i从 1 到tt时刻的活动轨迹C(ui)C(u_i),预测用户uiu_i在下一时刻t+1t+1最可能去的 POI top-kk

OverView

论文认为在 POI 推荐任务中仍然存在以下的挑战:

  1. 用户的偏好是复杂的,通常不同的社会关系有很强的联系。如下图所示,用户 Jack 从家庭成员那里寻求关于购物中心的建议,而从同事那里寻求关于培训机构的建议。这些异构的社会关系,加上用户访问 POI 所形成的用户-POI 关系,给有效利用嵌入的丰富信息带来了巨大的挑战。

  1. 获取用户和 POI 之间关键的、跨时的、相互的影响仍然具有挑战性。在用户-POI 关系中,用户的偏好可能会随时间发生变化。仍以上图为例,假如 Anna 在她最近访问的商场留下了一个正面的评价,或者推荐给其他人,那么,这个 POI 的声誉和受欢迎程度可能会得到提高。反过来,这个 POI 的声誉将影响安娜未来的访问。

为了解决上面这些问题,论文提出了 Multi-Relational Modeling (MEMO),充分利用用户之间的社交关系以及用户与 POI 之间的关系,使用 Graph Convolutional Networks (GCN) 以及 self-attention 进行特征提取。

为了捕获用户和 POI 之间随时间变化的相互影响,论文设计了一个基于耦合的递归神经网络(RNNs)的用户-POI 相互影响建模组件,该网络可以相互更新对方的表示。

MEMO

模型架构如下图所示:

Relation Modeling

为了对用户之间不同的PP种关系进行建模,论文建立了PP个网络G1,,GP\mathcal{G}_1, \cdots, \mathcal{G}_P,每一个网络都有一个对应的邻接矩阵A1,AP\mathbf{A}_1, \mathbf{A}_P,其中ApRU×U\mathbf{A}_p\in\mathbb{R}^{U\times U},若用户uiu_iuju_j之间的关系为pp,则Ap[i,j]=Ap[j,i]=1\mathbf{A}_p[i,j]=\mathbf{A}_p[j,i]=1

类似地,用户-POI 关系矩阵GC\mathcal{G}_C有一个对应的邻接矩阵ACR(U+L)×(U+L)\mathbf{A}_C\in\mathbb{R}^{(U+L)\times(U+L)}获取用户与 POI 之间的访问关系。总共有P+1P+1种关系,包括PP种用户-用户社会关系和 1 种用户-POI 关系。

Relation-Specific Representation Learning

为了适应不同类型的关系,论文利用特定关系的表示学习模块,将节点映射到与每个关系分别对应的潜在表示空间中。

首先,对于每个节点viv_i,随机初始化其嵌入xi\mathbf{x}_i。利用特定关系的转移函数Φ()\Phi(\cdot)xi\mathbf{x}_i映射新的 embedding xip\mathbf{x}_i^p表示第pp个关系:

xip=Φ(xi)\mathbf{x}_i^p = \Phi(\mathbf{x}_i)

xip\mathbf{x}_i^p基础上,论文通过使用 GCN 聚合每个网络Gp\mathcal{G}_p上的邻居的嵌入来学习每个节点viv_i的特定表示hip\mathbf{h}_i^p

感觉论文说得不明不白的,连什么公式都没有。

Aggregation over Different Relation Types

接着,论文利用 self-attention 将每个节点的所有特定关系表示汇总到一个共同的隐藏层空间,以有效捕获每个用户在不同类型关系中的偏好。

具体来说,其实也就是利用 self-attention 计算两个关系之间的相似性:

kip=WpKhipqip=WpQhipmip=WpMhip\mathbf{k}_i^p = \mathbf{W}_p^K\mathbf{h}_i^p \quad \mathbf{q}_i^p = \mathbf{W}_p^Q\mathbf{h}_i^p \quad \mathbf{m}_i^p = \mathbf{W}_p^M\mathbf{h}_i^p

α(p1,p2)=Softmaxp2[P+1](kip2qip1/d)\alpha(p_1, p_2) = \text{Softmax}_{\forall p_2\in[P+1]} (\mathbf{k}_i^{p_2} \mathbf{q}_i^{p_1} / \sqrt{d})

并将所有关系聚合到关系pp

h~ip=p[P+1]{α(p,p)mip}\tilde{\mathbf{h}}_i^p = \oplus_{p'\in[P+1]} \{ \alpha(p, p') \cdot \mathbf{m}_i^{p'} \}

其中WpK,WpQ,WpM\mathbf{W}_p^K,\mathbf{W}_p^Q,\mathbf{W}_p^M为可学习权重矩阵。

之后使用多层感知机聚合不同关系类型的表示:

hi=MLP([h~i1h~i2h~iP+1])\mathbf{h}_i = MLP([\tilde{\mathbf{h}}_i^1 \Vert \tilde{\mathbf{h}}_i^2 \Vert \cdots \Vert \tilde{\mathbf{h}}_i^{P+1}])

User-POI Mutual Influence Modeling

在用户-POI 关系中,用户的潜在状态和 POI 的潜在状态可能会随着时间的推移而相互影响。因此,需要更新用户和 POI 的表示,以捕获这样的相互关系。具体来说,论文通过用户 RNN(RNNU_U)和位置 RNN(RNNL_L)组成的耦合 RNN,分别学习用户和 POIs 的表示。

RNNU_U整合了 POI 表示来更新用户表示,反之亦然。具体来说:

hut+1=σ(W1Uhut+W2Uhlt+W3UzΔt+W4UzΔd)\mathbf{h}_u^{t+1} = \sigma(\mathbf{W}_1^U\mathbf{h}_u^t + \mathbf{W}_2^U\mathbf{h}_l^t + \mathbf{W}_3^U\mathbf{z}^{\Delta t} + \mathbf{W}_4^U\mathbf{z}^{\Delta d})

其中W1U,,W4U\mathbf{W}_1^U, \cdots, \mathbf{W}_4^U为可学习矩阵,hut,hlt\mathbf{h}_u^t, \mathbf{h}_l^t分别为用户和 POI 的隐藏层表示,zΔt,zΔd\mathbf{z}^{\Delta t},\mathbf{z}^{\Delta d}为时空信息。

类似地,RNNL_L使用用户表示更新 POI 表示:

hlt+1=RNNL(hlt,hU(l,t)t)\mathbf{h}_l^{t+1} = RNN_L(\mathbf{h}_l^t, \mathbf{h}_{\mathcal{U}(l,t)}^t)

其中U(l,t)\mathcal{U}(l,t)表示在tt时刻访问了地点ll的所有用户。在每个时间步tt中,POI ll的表示将按用户访问的时间顺序递归地更新U(l,t)\mathcal{U}(l,t)次。

Spatio-Temporal Representation

除了用户的关系和发展轨迹外,论文同时纳入了时空信息(时间间隔及空间间隔),以加强下一个 POI 推荐。

具体来说,论文使用ts\mathbf{t}_stl\mathbf{t}_l分别表示短时间和长时间的时间间隔:

zΔt=tt+tanh(t)\mathbf{z}^{\Delta t} = \mathbf{t} * \mathbf{t} + \tanh(\mathbf{t})

t={ts,Δt<θttt,otherwise\mathbf{t} = \begin{cases} \mathbf{t}_s \quad, \Delta t < \theta_t \\ \mathbf{t}_t \quad, \text{otherwise} \end{cases}

其中θt\theta_t为预设时间阈值,*表示对应元素乘法。

类似地,使用空间阈值θd\theta_d得到空间间隔表示zΔd\mathbf{z}^{\Delta d},其中空间距离使用 Haversine 距离计算。

最后将模型通过全连接得到最后的概率,损失函数为交叉熵损失函数。

实验

Datasets

Results

Ablation Studies

  • MEMO-NG:去除 relation
  • MEMO-NA:去除 self-attention
  • MEMO-NR:去除 RNN 中相互更新部分
  • MEMO-NTS:去除时空关系表示

总结

论文看的很快,主要是感觉没什么东西,一些细节上的东西都不说清楚,另外数据集也是一个问题,那些常用的公开数据集本身就没有那么丰富的社交关系以供学习,总体感觉一般。

参考资料