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]

原文地址:http://www.cnblogs.com/MTandHJ/p/16919203.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性