Variational Autoencoders for Collaborative Filtering

Liang D., Krishnan R. G., Hoffman M. D. and Jebara T. Variational autoencoders for collaborative filtering. In International Conference on World Wide Web (WWW), 2018.

一种基于 VAE 的协同过滤方法.

整体框架

  1. xuRI, 用户 u 所对应的一个历史点击情况;

  2. 经过编码器 gϕ 得到:

    [μϕ(xu),σϕ(xu)]R2K,

    其中 K 代表隐变量的维度;

  3. 基于二者构建后验分布:

    qϕ(zu|xu):=N(μϕ(xu),diag(σϕ2(xu))),

    并通过重参数化进行采样

    zu=μϕ(xu)+ϵσϕ(xu),ϵN(0;IK);

  4. 通过解码器 fθ 得到概率向量

    [π(zu)]i:=[exp(fθ(zu))]ij[exp(fθ(zu))]j,i=1,2,,I;

    假设 x^u|zu 服从多项式分布:

    p(x^u|zu):=Mult(Nu,π(zu)),

    其中 Nu=i[x^u]i 表示推荐的次数.

  5. 最大化 ELBO 进行训练:

    Lβ(xu;θ,ϕ)=Eqϕ(zu|xu)[logpθ(x^u=xu|zu)]βKL(qϕ(zu|xu)p(zu)),

    其中 β=1 表示原始的 ELBO, 这里显式添加 β 用于后面方便调节, 作者采用了 β0 逐渐升至 0.2 的方式调节. 此外 p(zu) 表示先验分布, 通常为普通的标准正态分布.

  6. 实际推断的时候, 只需计算 fθ(zu), 然后找到 top-k 作为推荐即可 (即概率越大越应该被推荐).

注:

logpθ(xu|zu)=i[xu]ilog[π(zu)]i.

细节

如图, 恒定 β=1 或者 β 从零逐步上升到 1 最后的结果都不是太好, 逐步升到 β=0.2 是结果最好的.

作者也试了不同的 p(x^u|zu) 的构建, 比较下来是多项式分布最优.

代码

[official]

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