Causal Representation Learning for Out-of-Distribution Recommendation

Wang W., Lin X., Feng F., He X., Lin M. and Chua T. Causal representation learning for out-of-distribution recommendation. In International World Wide Web Conferences (WWW), 2022.

现阶段, 大部分的推荐系统都是在历史交互信息的基础进行预测的, 但是这种方式建立在历史数据和未来的交互处于独立同分布的假设下才有效. 否则很可能会面临严重的 Out-of-Distribution (OOD) 问题. 设想, 一个人的年龄和收入会影响他买东西的价格, 品牌, 类型等, 但同时这些也受一些未知因素影响, 比如:

本文就主要是通过因果模型来解决这一问题.

符号说明

  • e1E1, 观测到的用户特征;
  • e2E2, 未观测到的用户特征;
  • z1Z1, 用户的倾向;
  • z2Z2, 仅仅由E2所决定的偏好;
  • dD, 用户交互, 比如是否点击, 购买等;
  • I, items 的数量.

主要内容

构建模型

作者认为这些因素的模型如 Figure 所示, 为此, 作者用 VAE 构建这样的一个模型.

  • Encoder

    1. 用户特征 e1 和 历史交互信息 d 得到

      μϕ,σϕ=gϕ(e1,d);

    2. 假设 e2 服从先验分布 N(0,Ik), 拟合的分布为:

      (E-1)qϕ(e2|d,e1):=N(e2;μϕ(d,e1),diag{σϕ2(d,e1});

    3. 从拟合的分布 qϕ 从采样得到 e2.
  • Decoder

    1. 通过 MLP fθ1,fθ2 分别得到:

      μθ1,σθ12=fθ1(e1,e2),μθ2,σθ22=fθ2(e2);

    2. 假设 z1,z2 分别服从

      (D-1)z1N(μθ1,diag(σθ12));z2N(μθ2,diag(σθ22));

    3. 给定 z1,z2, MLP fθ3 输出 logits fθ3(z1,z2)RI, 经由 softmax π() 得到概率向量

      π(fθ3(z1,z2))RI,i=1Iπi=1;

    4. 假设 d^ 服从多项分布:

      (D-2)d^Mult(N,π(fθ3(z1,z2))),

      其中 N 是该用户交互的次数.

训练

  1. 首先, 注意到我们只有 e1, 历史交互信息 d 和 target d^ 是观测到的, 故可以通过极大似然估计来优化:

logp(d^|e1)=logp(d^,e2|e1)de2=logp(d^|e1,e2)p(e2)de2,

注意, 上面的 e2 是服从 N(0,Ik)的, 独立于 e1.

  1. 和普通的 VAE 一样, 因为并没有观测到 e2, 故只能采取最大化 ELBO 的做法, 即:

maxϕ,ΘEqϕ(e2|)[logpΘ(d^|e1,e2))]KL(qϕ(e2|)p(e2)).

  1. 因为 (E-1) 的缘故, 对于第二项我们可以直接求解;
  2. 对于前者, 可以展开得到:

    p(d^|e1,e2)=pθ1(z1|e1,e2)pθ2(z2|e2)pθ3(d^|z1,z2)dz1dz2,

  3. 可以通过 MCMC 采样逼近 (重参数化):

    p(d^|e1,e2)1LMa=1Lb=1Mp(d^|z1a,z2b),z1ap(z1|e1e2)z2bp(z2|e2);

  4. 但是这样子还是比较费时, 因为必须得重复 LM 次前向传播, 故实际上使用的是:

    p(d^|e1,e2)p(d^|z¯1,z¯2),z¯1=1La=1Lz1a,z¯2=1Mb=1Mz2b.

    Q: 为什么不干脆设 Z1δ(Zfθ1(E1,E2)),Z2δ(Zfθ2(E2)) ?
  5. 最后

    logp(d^|z¯1,z¯2)=i=1Idilogπi(fθ3(z¯1,z¯2)).

注: 对于损失, 采用了以加权的版本:

maxϕ,ΘEqϕ(e2|d,e1)[logpΘ(d^|e1,e2))]βKL(qϕ(e2|d,e1)p(e2)).

推断

因为 e2 的采样和历史信息 d 有关, 但是呢, 这也有可能导致将历史的过时的交互信息传递给下游的 z1, 因此, 为了切断这个联系, 作者采用 do(D=0) 的方式 (见图4 (b)) 生成 z1, 而采用 do(D=d) 的方式生成 z2, 保留历史信息对于 Z2 的推断. 最后结合二者用于预测 d (d^).

但是我个人认为, 这种阻隔方式并没有体现在摘要中的, 比如修正历史信息对于价格等因素的影响, 这里只是用了一个一般的选项 D=0. 或许应该在训练过程中就引入类似的阻断操作才是合适的.

代码

[official]

posted @   馒头and花卷  阅读(333)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
历史上的今天:
2021-06-08 Histogram Processing
2019-06-08 Proximal Algorithms 3 Interpretation
2019-06-08 Proximal Algorithms 2 Properties
点击右上角即可分享
微信分享提示