首页 > 其他分享 >LT-OCF: Learnable-Time ODE-based Collaborative Filtering

LT-OCF: Learnable-Time ODE-based Collaborative Filtering

时间:2022-11-23 17:56:43浏览次数:77  
标签:Filtering based Collaborative bm OCF LT tilde theta rightarrow

目录

Choi J., Jeon J. and Park N. LT-OCF: Learnable-time ode-based collaborative filtering. In International Conference on Information and Knowledge Management (CIKM), 2021.

把 LightGCN 抽象为一个 ODE 问题, 然后通过更灵活的可学习的 \(t\) 来构建 LT-OCF.

符号说明

  • \(|\mathcal{U}| = N, |\mathcal{I}|=M\);

  • \(E_i^u \in \mathbb{R}^{N \times D}, E_i^p \in \mathbb{R}^{M \times D}\) 分别为用户和产品在第 i 层的特征;

  • 用 \(\tilde{A}_{p \rightarrow u}\) 表示产品到用户的聚合, 类似地可以定义 \(\tilde{A}_{u \rightarrow p}\);

  • 对于微分方程 (ODE)

    \[\bm{h}(t) = \bm{h}(0) + \int_0^t f(\bm{h}(t), t; \theta) dt, \]

    1. 我们可以通过 Euler 方法来从 \(\bm{h}(0)\) 逐步逼近到 \(\bm{h}(T)\):

      \[\bm{h}(t + s) = \bm{h}(t) + s \cdot f(\bm{h}(t), t; \theta), \]

      这里每一步的步长为 \(s\).

    2. 也可以用比如 fourth-order Runge–Kutta (RK4) 来近似 \(\bm{h}(T)\):

      \[\bm{h}(t + s) = \bm{h}(t) + \frac{s}{6}(f_1 + 2f_2 + 2f_3 + f_4), \\ f_1 = f(\bm{h}(t), t; \theta), \\ f_2 = f(\bm{h}(t) + \frac{s}{2}f_1, t + \frac{s}{2}; \theta), \\ f_3 = f(\bm{h}(t) + \frac{s}{2}f_2, t + \frac{s}{2}; \theta), \\ f_4 = f(\bm{h}(t) + sf_3, t + s; \theta). \\ \]

本文方法

  • 对于 LightGCN, 它实际上是如下方程的一个特例:

    \[\bm{u}(K) = \bm{u}(0) + \int_{0}^K f(\bm{p}(t)) dt, \\ \bm{p}(K) = \bm{p}(0) + \int_{0}^K g(\bm{u}(t)) dt. \\ \]

    其中 \(f(\bm{p}) = \tilde{A}_{p \rightarrow u} \bm{p}, g(\bm{u}) = \tilde{A}_{u \rightarrow p} \bm{u}.\)

  • 特别的, 采用步长为 \(1\) 的 Euler 迭代可得:

    \[\bm{u}(i + 1) = \bm{u}(i) + \tilde{A}_{p \rightarrow u} \bm{p}(i), \\ \bm{u}(i + 1) = \bm{u}(i) + \tilde{A}_{u \rightarrow p} \bm{p}(i). \\ \]

    这实际上就是添加了 self-loops 的 LightGCN.

  • 但是作者认为, 采取 \(s=1\) 这种固定步长不是很灵活的选择, 作者希望将整个过程分解为:

  • 然后其中 \(t_1, \cdots, t_T\) 是可以训练的参数, 如此一来我们就可以对整个方程解的更好了.

  • 最后

    \[E_{final}^u = \sum_{i=0}^K w_i \bm{u}(t_i), \\ E_{final}^p = \sum_{i=0}^K w_i \bm{p}(t_i). \]

注: LT-OCF 包含 embeddings 和 \(t\) 两个可以训练的部分, 这些都是用 Adam 训练的. 特别的是, 数值求解微分方程的部分用在更精细地求解每个子问题 \((t_i, t_{i+1}]\) 上去了.

注: 作者虽然用 Adam 更新 \(t\), 但每一次训练后还要调整 \(t\) 使得其在合理的范围内.

注: 作者用的数值求解库为 torchdiffeq.

代码

[official]

标签:Filtering,based,Collaborative,bm,OCF,LT,tilde,theta,rightarrow
From: https://www.cnblogs.com/MTandHJ/p/16919203.html

相关文章