推荐系统总结MF->PMF->CTR->CDL->CNN

推荐系统总结

  • 推荐系统总结
    • 数据集分析
    • 矩阵分解MF
    • 基于概率的矩阵分解PMF
    • 小结
    • 扩展篇
    • 标签推荐

首先进行数据集的分析,然后 介绍矩阵分解方法(MF)、基于概率的矩阵分解(PMF);
在此基础上介绍扩展方法:社交网络、隐语义模型、深度学习(CDL、CNN等);
最后介绍标签推荐方法。

1.数据集分析

以movieLens为例,介绍一下现有数据集所包含信息:

  • 评分信息
    userID,itemID,rating*(这里的评分分为:1~5;或者{0,1}喜欢与否)*
  • item信息
    itemID,text(文本描述,标题,题材)
  • 标签信息
    userID,itemID,tags
    (标签信息可以进一步按照用户采集或者按照项目单独采集)
    其他数据集:lastfm,豆瓣生态等
    包含user-user之前的联系;

2.矩阵分解(MF)

用户评分矩阵 R 分解成两个矩阵, R=UTV R 的维度为 NM
U={u1,u2,...,uk1,uk} U 维度是 kN ,用户特征矩阵
V={v1,v2,...,vk1,vk} V 维度是 kM ,项目特征矩阵
如图所示,矩阵分解是共享了一个向量空间,其中 ui 潜在向量如图,
推荐系统总结MF->PMF->CTR->CDL->CNN_第1张图片
计算平方损失:(只计算有评分的元素, I 指示是否有评分, Ii,j{0,1}

E=I(RUTV)2=i=1Nj=1MIi,j(ri,juTivj)2

然后利用凸优化方法,偏导为零,然后迭代即可;

注:因为上式的优化是针对于有评分数据进行的,容易过拟合,加上正则项(二范数):

E=I(RUTV)2=i=1Nj=1MIi,j(ri,juTivj)2+λ(i=1N||ui||22+j=1M||vj||22)

扩展:不同用户对评分有不同的偏执;则

ri,j=μ+bi+bj+uTivj

E=I(RR)2=i=1Nj=1MIi,j(ri,jμbibjuTivj)2+λ(i=1N||ui||22+j=1M||vj||22+b2i+b2j)

再扩展:加入置信度,时间序列等等;
参考论文:matrix factorizatiom technigues for recommender systems


3.基于概率的矩阵分解(PMF)

假设参数服从正态分布:

f(x)=12πσexp((xμ)22σ2)

UN(0,σ2u) VN(0,σ2v) RUTVN(0,σ2)
并假设用户之间、项目之间独立:
P(U|σ2u)=i=1NN(0,σ2u)

P(V|σ2v)=j=1MN(0,σ2v)

P(R|U,V,σ2)=i=1Nj=1M[N(uTivj,σ2)]Ii,j

推荐系统总结MF->PMF->CTR->CDL->CNN_第2张图片
最大后验概率:
P(θ|X)=P(X|θ)P(θ)P(X|θ)P(θ)dθP(X|θ)P(θ)

maxU,VP(U,V|R,σ2u,σ2v,σ2)maxU,VP(R|U,V,σ2)P(U|σ2u)P(V|σ2v)

对数变换之后:
ψ(U,V)=i=1Nj=1MIi,j2σ2(ri,juTivj)212σ2ui=1N||ui||2212σ2vj=1M||vj||22

λU=σ2/σ2u λV=σ2/σ2v
UN(0,λ1UIK) VN(0,λ1VIK) RN(UTV,C1I)
化简上式为:
ψ(U,V)=i=1Nj=1MIi,j2(ri,juTivj)2λU2i=1N||ui||22λV2j=1M||vj||22

观察:PMF最大后验概率的对数化结果与MF的最小化平方损失一致
最后按照随机梯度等方式进行优化获得 u,v 的迭代公式。

参考文献:Probabilistic Matrix Factorization


小结

矩阵分解方法是寻找用户、项目的矩阵,发现其潜在的特征,共享特征空间。
这种方法只是利用了评分矩阵矩阵信息,而且存在物品冷启动问题,通过引入物品文本特征,社交网络等信息,修正用户或项目向量,以期缓解冷启动问题。


4.扩展篇

这一节主要介绍在经典的矩阵分解模型上,融合更多信息来解决矩阵稀疏性问题。
社交的关联矩阵、物品的描述信息等;
方法是矩阵模型的正则扩展,或者深度学习;

4.1 隐语义模型(CTR=PMF+LDA)

引入:矩阵分解方法中存在数据稀疏问题,进而导致冷启动问题
推荐系统总结MF->PMF->CTR->CDL->CNN_第3张图片

从图(b)中,可以看出 I4,I5 没有用户记录偏好信息,所以矩阵分解之后会有很大的偏差;为此引入Item 信息,Item使用LDA(topic model)方法,然后进行融合。

LDA模型:

  1. 从狄雷克类分布中获得主题分布 θjDirichlet(α)
  2. 对于文档 dj 中的每一个词语 wj,n
    (a)从主题多项式分布中获得一个主题 zj,nMult(θj)
    (b)从词语-主题分布中获得一个词语 wj,nMult(βzj,n)
    P(W|d)=i=1NznP(wn|zn)P(zn|d)

    P(W,θ)=P(θ)n=1NznP(zn|θ)P(wn|zn,β)=P(θ)n=1Nkθj,kβk,wj,n

现在假定: ϵjN(0,λ1VIK)

vj=θj+ϵjvjN(θj,λ1VIK)
所以
E[ri,j|ui,θj,ϵj]=uTivj=uTi(θj+ϵj)

推荐系统总结MF->PMF->CTR->CDL->CNN_第4张图片

根据CTR的概率模型图可知:

maxU,VP(U,V|R,λU,λV,C)maxU,VP(R|U,V,C)P(U|λU)P(V|θ,λV)P(θ|α,β)

最大后验概率的对数形式:
ψ(U,V,θ)=maxU,VlnP(U,V|R,λU,λV,C)=i=1Nj=1MIi,j2(ri,juTivj)2λU2i=1N||ui||22λV2j=1M||(vjθj)||22+j=1Mx=1Xln(kθj,kβk,wj,x)

有了优化公式,按照坐标上升法进行优化;
首先假设 θ 固定,计算 U,V
然后固定 U,V ,优化 θ .

预测:对于问题提出的图(b),使用 θj 代替 vj .

结果分析:
推荐系统总结MF->PMF->CTR->CDL->CNN_第5张图片
基于用户的召回率:
推荐系统总结MF->PMF->CTR->CDL->CNN_第6张图片

基于Item的召回率:
推荐系统总结MF->PMF->CTR->CDL->CNN_第7张图片

参考论文:Collaborative Topic Modeling for Recommending Scientific Articles KDD 2011


4.2 社交网络

CTR-SR 引入社交网络信息,介绍两种融合方式。

  1. 两个矩阵分解(2012 ICML)

    Item信息直接使用CTR模型;
    引入Q矩阵,代表user-user之间是否有联系;

    推荐系统总结MF->PMF->CTR->CDL->CNN_第8张图片

    P(U,V,S|R,Q,λU,λV,λS,λQ,C)P(R|U,V,C)P(Q|U,S,λQ)P(U|λU)P(V|θ,λV)P(S|λS)P(θ|α,β)

    其中 vjN(θj,λ1VIK) ;
    最大后验概率的对数形式:
    ψ(U,V,S,θ)=λU2i=1N||ui||22λV2j=1M||vjθj||22i=1Nj=1Mci,j2(ri,juTivj)2λS2h=1H||sh||22i=1Nh=1Hdi,h2(qi,huTish)2+j=1Mx=1Xln(kθj,kβk,wj,x)

    优化过程:首先固定 θ ,然后计算 U,V,S 的偏导为0的值;
    然后固定 U,V,S ,按照CTR模型方式优化 θ .
    召回率作为评价指标:分别与PMF、CTR模型进行比对。显示模型的优越性;

    参考论文:
    Collaborative Topic Regression with Social Matrix Factorization for Recommendation Systems

  2. V 由S、 θ 两个高斯分布共同决定(2013 IJCAI)

    标签推荐的挑战:如何高效得融入item-tag,Item内容信息,社交网络信息;
    本文使用Item-tags矩阵,A是社交网络的邻接矩阵(连个Item之间的联系);S是潜在的社交矩阵,V是由双高斯分布POG模型(2006);
    vjPOG(θj,sj,λ1vIKλ1rIK)

    推荐系统总结MF->PMF->CTR->CDL->CNN_第9张图片
    因此最大后验概率是:

    maxV,U,S,θP(U,V,S|R,A,λv,λu,λl,λr,C)P(R|U,V,C)P(U|λu)P(V|θ,S,λv,λr)P(S|λl,A)P(θ|α,β)

在此基础上,利用item-tags(类似与评分矩阵 ri,j0,1 ),item信息,item-item邻接矩阵;
推荐系统总结MF->PMF->CTR->CDL->CNN_第10张图片

maxU,VP(U,V,S|R,L,C,λu,λv,λr.λe,α,β,ρ,η+)P(R|U,V,C)P(U|λu)P(V|θ,λv)P(θ|α,β)P(L|S,λr,λe,η+,ρ)P(S|V,λr)P(η+|λe)

其中,
vjN(θj,λ1vIK)sjN(vj,λ1rIK)η+N(0,λ1eIK+1)ψ(lj,j=1|sj,sj,η+)=[σ(ηT(sjsj)+b)]ρ

ζ=i=1Nj=1Mci,j2(ri,juTivj)2λu2i=1N||ui||22λe2η+Tη+λv2j=1M(vjθj)T(vjθj)λr2j=1M(sjvj)T(sjvj)+ρlj,j=1logσ(ηT(sjsj+b)+j=1Mx=1Xlog(kθj,kβk,wj,x)

这样子的话,凸函数部分,先利用朗格朗日方法,偏导数为0,即可更新 ui,vj ;然后利用CTR方法更新 θj ,最后 sj,η+ 利用梯度下降法计算;

参考论文:
Collaborative Topic Regression with Social Matrix Factorization for Recommendation Systems 2013
Relational Collaborative Topic Regression for Recommender Systems 2015


4.3 深度学习之CDL

回顾一下:CTR模型将Item信息很好融合到 vj 中,缓解矩阵稀疏带来的冷启动问题;CTR模型依赖与LDA,在此基础上人们开展了各种拓展和应用。随着深度网络的兴起,我们可以很轻松的将文本信息、图片信息、用户离散信息等多模态特征萃取出来;因此推荐系统也迎来一个又一个春天。
优秀的模型有CDL,ConvMF,deepConNN,UWCVM等;

  1. CDL模型(2015 KDD)
    (SDAE+PMF)
    利用SDAE网络学习出 vj 的词向量;

    vj=ϵj+XL2,jϵjN(0,λ1vIK)uiN(0,λ1uIK)ri,jN(uTivj,c1i,j)

    推荐系统总结MF->PMF->CTR->CDL->CNN_第11张图片
    P(U,V|R,λu,λv,C)P(R|U,V,C)P(U|λu)P(V|XL2,j,λv)P(XL,j|wl,bl,λs,λn)P(w|λw)P(b|λw)

    ui,vj ,按照偏导为零计算得出;
    wl,bl 计算梯度方向,按照梯度下降方法更新;

    参考文献:
    Collaborative Deep Learning for Recommender Systems (KDD 2015)

  2. CDL模型优化(2017 ICLR)

  3. ConvMF模型(2016 RecSys)
    (CNN+PMF)
    利用CNN网络学习出 vj 向量;

    vj=cnn(W,Xj)+ϵjϵN(0,λ1V)))

    推荐系统总结MF->PMF->CTR->CDL->CNN_第12张图片
    参考文献:
    Convolutional Matrix Factorization for Document Context-Aware Recommendation(2016 RecSys)
    Convolutional Neural Networks for Sentence Classification(CNN 2014)

  4. DeepCoNN模型(2017 WSDM)
    (CNN+FM)
    将用户评论信息分成两部分:user-review,item-review,构造两个平行的CNN网络,但是两个向量不是同一向量空间,因此利用FM技术,计算交叉特征,并构造目标函数;
    推荐系统总结MF->PMF->CTR->CDL->CNN_第13张图片

    J=w0+i=1zwizi+i=1zj=i+1zwi,jzizj
    交叉项系数分解成矩阵相乘的形式,因为在数据稀疏情况下,参数无法学习到;另外交叉项 ab+bc+ac=12[(a+b+c)2a2b2c2]
    所以
    wi,j=<vi,vj>=f=1zvi,fvj,f

    J=w0+i=1zwizi+i=1zj=i+1zwi,jzizj=w0+i=1zwizi+12f=1z(i=1zvi,fxi)2i=1zv2i,fx2i

    通过优化J,获得 z
    实验结果显示DeepCoNN模型推荐准确率高;
    CNN网络考虑了词语顺序信息,而且可以利用word2vec、glove词向量作为预训练模型,更能够表达文本的特征信息;

    参考文献:
    Joint Deep Modeling of Users and Items Using Reviews for Recommendation(2017 WSDM)
    Factorization Machines with libFM

  5. UWCVM模型(2015 IJCAI)

    本文基于评分预测场景(情感分类)
    本文强调使用用户信息来修正文本的特征表示;每个用户使用相同个词,但是表达意思可能不一样;将文本特征做一层修正;词向量可以是

    提出将用户表示为一个转换矩阵,利用矩阵(用户)与向量(单词)的乘积来得到新的单词向量。然后,以这些修正后的单词向量作为输入,计算得到文档的向量表示。最后,使用 Softmax函数将文档向量映射到评分空间里。本文所提的模型结构如下图所示:

    推荐系统总结MF->PMF->CTR->CDL->CNN_第14张图片
    推荐系统总结MF->PMF->CTR->CDL->CNN_第15张图片
    参考文献:
    User Modeling with Neural Network for Review Rating Prediction (IJCAI2015)

  6. UPNN模型(2015 ACL)

    在(4)的基础上增加物品信息,并修正物品文本向量;主要是搜集物品相关的描述文本,并修正;

    推荐系统总结MF->PMF->CTR->CDL->CNN_第16张图片

    参考文献:Learning Semantic Representations of Users and Products for Document Level Sentiment Classification(ACL 2015)

  7. RNN 引文推荐(2016 CIKM)

    在引文推荐中,输入一个context,推荐系统返回一段至理名言(引文);
    直接做法是:测量(q,c)之间的相关程度;现在我们学习出q的具体特征;
    现在不同引文中(即使文本内容很相似,但来源于不同的作者,不同的主题,所以词语权重不一样,为此进行必要的修正)
    如下图,输入一段至理名言 q ,我们将根据topic,author,常规的词向量进行修正,形成 Xq ,最后构造< Xq,Vc >进行监督训练。
    推荐系统总结MF->PMF->CTR->CDL->CNN_第17张图片

    参考文献: A Neural Network Approach to Quote Recommendation in Writings (CIKM 2016)


标签推荐

标签推荐中 利用tag信息,类别信息,构造了tag-label 二部图。
tag为label提供了证据,label也为tag提供了上下文环境。

参考文献:
CLARE A Joint Approach to Label Classification and Tag Recommendation(2017 AAAI)

你可能感兴趣的:(机器学习,推荐系统)