• 论文《How to Learn Item Representation for Cold-Start Multimedia Recommendation》阅读


    论文《How to Learn Item Representation for Cold-Start Multimedia Recommendation》阅读

    今天简要介绍一下ACM MM 2020的多模态推荐模型 MTPR,文章名称《How to Learn Item Representation for Cold-Start Multimedia Recommendation》,由中科大何向南老师组完成,旨在解决面向多模态推荐背景下冷启动问题。

    论文概况

    本文模型相对简单,考虑主动将物品向量分成两部分,一部分表示interaction,一部分表示feature,冷启动物品由于没有过interaction,所以直接将两个向量拼接完成预测就会不准确(因为在训练阶段冷启动用户的interaction embedding做全0处理 )。

    作者的做法就是把embeding分成两部分,直接将物品的interaction embedding赋零表示无交互,然后使用多任务同时训练,完成 MTPRMulti-Task Pairwise Ranking)。

    Architecture

    作者从反事实思维(Counterfactual Thinking)角度出发,思考物品向量变为冷启动物品会如何影响推荐模型性能表现。

    方法论

    整个模型相对简单,就是在原来一个物品一个embedding的基础上,将embedding分成两个,一个标准向量(normal representation),表示为 q i N \mathbf{q}_{i}^{N} qiN ;一个反事实向量(counterfactural representation),表示为 q i C \mathbf{q}_{i}^{C} qiC

    嵌入层

    用户向量表示为 p u \mathbf{p}_{u} pu,损失函数使用BPR损失。

    具体来说,针对每个物品,使用两部分拼接的形式表示,前一部分是 e i \mathbf{e}_{i} ei ,后一部分是 c i \mathbf{c}_{i} ci,分别表示 interaction 和 multimodal feature。

    q i N = e i ∥ c i \mathbf{q}_{i}^{N} = \mathbf{e}_{i} \| \mathbf{c}_{i} qiN=eici

    q i C = 0 ∥ c i \mathbf{q}_{i}^{C} = \mathbf{0} \| \mathbf{c}_{i} qiC=0ci

    q i C \mathbf{q}_{i}^{C} qiC 的意思就是我直接赋零,保持在feature上的一致性。

    预测层

    正例有一个N,一个C;反例有一个N,一个C。和用户向量进行组合得到4个预测结果,分别如下:

    y ^ u i N = ϕ ( p u o , q i N ) , y ^ u i C = ϕ ( p u o , q i C ) , y ^ u j N = ϕ ( p u o , q j N ) , y ^ u j C = ϕ ( p u o , q j C ) .

    y^uiN=ϕ(puo,qiN),y^uiC=ϕ(puo,qiC),y^ujN=ϕ(puo,qjN),y^ujC=ϕ(puo,qjC)." role="presentation">y^uiN=ϕ(puo,qiN),y^uiC=ϕ(puo,qiC),y^ujN=ϕ(puo,qjN),y^ujC=ϕ(puo,qjC).
    y^uiNy^uiCy^ujNy^ujC=ϕ(puo,qiN),=ϕ(puo,qiC),=ϕ(puo,qjN),=ϕ(puo,qjC).

    正例、负例两两组合得到四个损失函数,对应四个任务,分别如下:

    L N N ( u , i , j ) = − ln ⁡ σ ( y ^ u i N − y ^ u j N ) , L C C ( u , i , j ) = − ln ⁡ σ ( y ^ u i C − y ^ u j C ) , L N C ( u , i , j ) = − ln ⁡ σ ( y ^ u i N − y ^ u j C ) , L C N ( u , i , j ) = − ln ⁡ σ ( y ^ u i C − y ^ u j N ) .

    LNN(u,i,j)=lnσ(y^uiNy^ujN),LCC(u,i,j)=lnσ(y^uiCy^ujC),LNC(u,i,j)=lnσ(y^uiNy^ujC),LCN(u,i,j)=lnσ(y^uiCy^ujN)." role="presentation">LNN(u,i,j)=lnσ(y^uiNy^ujN),LCC(u,i,j)=lnσ(y^uiCy^ujC),LNC(u,i,j)=lnσ(y^uiNy^ujC),LCN(u,i,j)=lnσ(y^uiCy^ujN).
    LNN(u,i,j)LCC(u,i,j)LNC(u,i,j)LCN(u,i,j)=lnσ(y^uiNy^ujN),=lnσ(y^uiCy^ujC),=lnσ(y^uiNy^ujC),=lnσ(y^uiCy^ujN).

  • 相关阅读:
    C++图解模板
    linux环境下安装jdk1.8
    openssl-1.0.2k版本升级openssl-1.1.1p
    设计模式-适配器模式在Java中应用
    Vue入门三(表单控制|购物车单选多选案例|V-model进阶使用|Vue生命周期|与后端交互)
    【GIT】代码仓库服务器变更本地修改并推送
    全球与中国液体壁纸行业需求趋势及投资策略分析报告2022-2028年
    redis学习大全(笔记)
    MSE实现全链路灰度实践
    【毕业设计】基于Spark的海量新闻文本聚类(新闻分类)
  • 原文地址:https://blog.csdn.net/xingzhe123456789000/article/details/127771465