【论文阅读】Next point-of-interest recommendation with auto-correlation enhanced multi-modal transformer network

Metadata

authors:: Yanjun Qin, Yuchen Fang, Haiyong Luo, Fang Zhao, Chenxing Wang
container:: Proceedings of the 45th international ACM SIGIR conference on research and development in information retrieval
year:: 2021
DOI:: 10.1145/3477495.3531905
rating:: ⭐⭐⭐⭐
share:: false
comment:: 框架为 Transformer,计算序列自相关性,并考虑访问子序列,同时预测 POI 及其类别


前言

2022,SIGIR: Next point-of-interest recommendation with auto-correlation enhanced multi-modal transformer network

问题描述

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

check-in)一个 check-in 可以表示为c=(u,lt,τt)c=(u,l_t,\tau_t),即用户uuτt\tau_t时刻访问地点ltl_t

user trajectory)用户轨迹是由特定用户的一系列时间顺序的签到记录来定义的,即Lu={(u,lt,τt)t=1,2,,N}L_u = \{ (u, l_t, \tau_t) \vert t = 1,2,\cdots,N \}。类似地,有类别序列Cu={(u,ct,τt)t=1,2,,N}C_u = \{ (u, c_t, \tau_t) \vert t = 1,2,\cdots,N \}

next POI recommendation)给定每个用户uu的的活动轨迹Lu,CuL_u, C_u,预测用户uu最可能去的 POI top-kk

OverView

之前工作中存在的问题:

  1. 以往基于 RNN 的方法仅限于短期的连续访问,也就是说,它们几乎没有对时间线上远处的访问之间的隐性联系进行建模。

  2. 相似子序列在以前的方法中没有被重视。如图所示,绿圈和红圈中出现了相似的访问子序列。

  3. POI 的类别和位置之间的交互是很重要的,因为下一个位置会受到类别的影响,如上图中用户购物后去了同一个酒吧。然而,现有的绝大多数算法都无法捕捉到 POI 和类别之间的跨模式知识。

论文提出了 auto-correlation enhanced multi-modal Transformer network (AutoMTN) 模型。论文使用 Transformer 来捕获 POI 层面的序列连续关系,同时,为了预测下一个 POI 的类别,论文使用了一个双通道的 Transformer 来同时预测 POI 及其类别。

此外,通过对 Transformer 中的 self-attention 进行修改,以捕获子序列之间的依赖关系。

最后,模型的核心是方向性的跨模式自动相关,它关注不同时间步骤的 POI 和类别序列之间的相互作用,并潜移默化地将子序列的信息从一种模式调整到另一种模式。

AutoMTN

模型架构如下图所示:

Embedding Layer

嵌入层将用户、类别、位置和时间信息进行编码,分别为euRd,elRd,ecRd,eτRde^u\in\mathbb{R}^d, e^l\in\mathbb{R}^d, e^c\in\mathbb{R}^d, e^\tau\in\mathbb{R}^d。其中时间信息维度为 24,即将一天分为 24 个时间戳。POI 和类别的 embedding 为:

eP=eu+el+eτRdeC=eu+ec+eτRd\begin{aligned} e^P = e^u + e^l + e^\tau \in\mathbb{R}^d \\ e^C = e^u + e^c + e^\tau \in\mathbb{R}^d \end{aligned}

最后得到:

E(Lu)={e1P,e2P,,eNP}RN×dE(Cu)={e1C,e2C,,eNC}RN×d\begin{aligned} E(L_u) = \{ e_1^P, e_2^P, \cdots, e_N^P \} \in\mathbb{R}^{N\times d} \\ E(C_u) = \{ e_1^C, e_2^C, \cdots, e_N^C \} \in\mathbb{R}^{N\times d} \end{aligned}

Auto-Correlation Layer

以往的工作主要是基于递归结构的,这总是忽略了非连续访问你的信息。尽管 self-attention 可以捕获点对点的相互作用,但它并不能提取子序列层面的相关信息。因此,论文通过 auto-correlation 来发现子序列之间的依赖关系,聚合类似的子序列。

Dependencies of Sub-sequences

自相关 可以反映一个 POI 序列与其ϵ\epsilon滞后序列之间的时间延迟模式。序列X\mathcal{X}的延迟为ϵ\epsilon的自相关RXX(ϵ)\mathcal{R}_{\mathcal{XX}}(\epsilon)为:

RXX(ϵ)=limN1Nt=1NXtXtϵ\mathcal{R}_{\mathcal{XX}}(\epsilon) = \underset{N\rightarrow\infty}{lim} \frac{1}{N} \sum_{t=1}^{N} \mathcal{X}_t\mathcal{X}_{t-\epsilon}

Time Delay Aggregation

论文计算所有滞后长度的自相关性,从中选择自相关性最高的kk个滞后长度,然后将这些选定的子序列对齐。聚合过程如下:

ϵ1,,ϵk=argTopkϵ{1,,N}(RQ,K(ϵ))R~Q,K(ϵ1),,R~Q,K(ϵk)=SM(RQ,K(ϵ1),,RQ,K(ϵk))AC(Q,K,V)=i=1kRoll(V,ϵi)R~Q,K(ϵi)\begin{aligned} \epsilon_1, \cdots, \epsilon_k &= \underset{\epsilon\in\{1,\cdots,N\}}{argTopk}(\mathcal{R_{Q,K}}(\epsilon)) \\ \tilde{\mathcal{R}}_{\mathcal{Q,K}}(\epsilon_1), \cdots, \tilde{\mathcal{R}}_{\mathcal{Q,K}}(\epsilon_k) &= SM(\mathcal{R_{Q,K}}(\epsilon_1), \cdots, \mathcal{R_{Q,K}}(\epsilon_k)) \\ AC(\mathcal{Q,K,V}) &= \sum_{i=1}^{k} Roll(\mathcal{V, \epsilon_i})\tilde{\mathcal{R}}_{\mathcal{Q,K}}(\epsilon_i) \end{aligned}

其中AC(),SM()AC(\cdot), SM(\cdot)分别表示 auto-correlation 和 softmax;论文中的kklogN\log NRoll(X,ϵ)Roll(\mathcal{X},\epsilon)将序列X\mathcal{X}与其ϵ\epsilon延时序列对齐。

对于 POI 和类别序列的嵌入,其自相关机制可以表述为:

AP=AC(E(Lu)WQP1,E(Lu)WKP1,E(Lu)WVP1)AC=AC(E(Cu)WQC1,E(Cu)WKC1,E(Cu)WVC1)\begin{aligned} A^P &= AC(E(L_u)W^{Q^{P_1}}, E(L_u)W^{K^{P_1}}, E(L_u)W^{V^{P_1}}) \\ A^C &= AC(E(C_u)W^{Q^{C_1}}, E(C_u)W^{K^{C_1}}, E(C_u)W^{V^{C_1}}) \end{aligned}

其中WQP1,WKP1,WVP1,WQC1,WKC1,WVC1Rd×dW^{Q^{P_1}}, W^{K^{P_1}}, W^{V^{P_1}}, W^{Q^{C_1}}, W^{K^{C_1}}, W^{V^{C_1}} \in \mathbb{R}^{d\times d}为可学习矩阵,AP,ACRN×dA^P, A^C\in\mathbb{R}^{N\times d}分别为 POI 和类别的输出。

Cross-Model Auto-Correlation Layer

与以往的并行计算 POI 以及类别的方法不同的是,论文采用了跨模态自相关方法,使得一种模式能够从另一种模式中获取信息,即 POI 和类别能够从对方那里获得辅助信息。具体来说,将 POI 序列作为 query,类别作为 key 和 value,类别也是类似的:

MP=AC(APWQP2,ACWKC2,ACWVC2)MC=AC(ACWQC2,APWKP2,APWVP2)\begin{aligned} M^P &= AC(A^PW^{Q^{P_2}}, A^CW^{K^{C_2}}, A^CW^{V^{C_2}}) \\ M^C &= AC(A^CW^{Q^{C_2}}, A^PW^{K^{P_2}}, A^PW^{V^{P_2}}) \end{aligned}

其中WQP2,WKP2,WVP2,WQC2,WKC2,WVC2Rd×dW^{Q^{P_2}}, W^{K^{P_2}}, W^{V^{P_2}}, W^{Q^{C_2}}, W^{K^{C_2}}, W^{V^{C_2}} \in \mathbb{R}^{d\times d}为可学习矩阵,MP,MCRN×dM^P, M^C\in\mathbb{R}^{N\times d}分别为 POI 和类别的输出。

Attention Predictor

论文基于MP,MCRN×dM^P, M^C\in\mathbb{R}^{N\times d}的学习表示来计算候选 POI 和类别的概率。

给定 POI 候选集合E(L)={e1l,,eLl}RL×dE(L) = \{ e_1^l, \cdots, e_{\vert L \vert}^l \} \in\mathbb{R}^{\vert L\vert\times d},类别候选集合E(C)={e1c,,eCc}RC×dE(C) = \{ e_1^c, \cdots, e_{\vert C \vert}^c \} \in\mathbb{R}^{\vert C\vert\times d}以及 POI 距离矩阵DN×LD^{N\times\vert L\vert},计算如下:

Y^P=S(SM(E(L)MPT+DTd))Y^C=S(SM(E(C)MCTd))\begin{aligned} \hat{Y}^P &= S(SM(\frac{E(L)M^{P^T} + D^T}{\sqrt{d}})) \\ \hat{Y}^C &= S(SM(\frac{E(C)M^{C^T}}{\sqrt{d}})) \end{aligned}

其中S()S(\cdot)表示最后一个维度的加权和。

最后使用交叉熵损失函数:

L=1Bb=1BybPTlog(y^bP)+ηybCTlog(y^bC)\mathcal{L} = -\frac{1}{B} \sum_{b=1}^B y_b^{P^T} \log(\hat{y}_b^P) + \eta y_b^{C^T} \log(\hat{y}_b^C)

其中ybP,ybCy_b^P, y_b^C分别为 POI 和类别的真实值,η\eta为超参数。

实验

Datasets

Results

总结

模型利用自相关关注较长时间的 POI 访问轨迹,并把访问子序列纳入考虑,算是主要的创新点,感觉想法还是挺好的。另外在同时预测 POI 和类别的时候,将两者交叉,从消融实验来看确实是有进步,但重点还是在自相关吧。

参考资料