推荐系统--矩阵分解(5)
推薦系統–矩陣分解(1)
推薦系統–矩陣分解(2)
推薦系統–矩陣分解(3)
推薦系統–矩陣分解(4)
推薦系統–矩陣分解(5)
推薦系統–矩陣分解(6)
8 基于隱式反饋的矩陣分解
8.1 引入
相對于顯示反饋的評分數據,隱式反饋有以下幾方面的特征:
8.2 模型
模型引入喜好變量和置信度變量。
fui={1rui>00rui=0(1)f_{u i}=\left\{\begin{array}{cc} 1 & r_{u i}>0 \\ 0 & r_{u i}=0 \end{array}\right. \tag1 fui?={10?rui?>0rui?=0?(1)
符號說明:
喜好變量fuif_{u i}fui?:一個二元變量,表示用戶是否具有該偏好。
置信度變量的計算有兩種方式:
cui=1+αrui(2)c_{u i}=1+\alpha r_{u i} \tag2 cui?=1+αrui?(2)
或
cui=1+αlog?(1+rui/?)(3)c_{u i}=1+\alpha \log \left(1+r_{u i} / \epsilon\right) \tag3 cui?=1+αlog(1+rui?/?)(3)
符號說明:
置信度變量 cuic_{u i}cui?:表示用戶對物品喜好的置信程度。
最終得到如下優化目標函數:
L(p,q)=min?p?,q?∑u,icui(fui?puTqi)2+λ(∑u∥pu∥2+∑i∥qi∥2)(4)L(p, q) = \min _{p_{\star}, q_{\star}} \sum_{u, i} c_{u i}\left(f_{u i}-p_{u}^{T} q_{i}\right)^{2}+\lambda\left(\sum_{u}\left\|p_{u}\right\|^{2}+\sum_{i}\left\|q_{i}\right\|^{2}\right) \tag4 L(p,q)=p??,q??min?u,i∑?cui?(fui??puT?qi?)2+λ(u∑?∥pu?∥2+i∑?∥qi?∥2)(4)
8.3 求解pup_upu?和qiq_iqi?
首先計算梯度:
12?L(p,q)?pu=∑icui(puTqi?fui)qi+λpu=∑icui(qiTpu?fui)qi+λpu=QTCuQpu?QTCuf(u)+λpu\begin{aligned} \frac{1}{2} \frac{\partial L(p, q)}{\partial p_{u}} &=\sum_{i} c_{u i}\left(p_{u}^{T} q_{i}-f_{u i}\right) q_{i}+\lambda p_{u} \\ &=\sum_{i} c_{u i}\left(q_{i}^{T} p_{u}-f_{u i}\right) q_{i}+\lambda p_{u} \\ &=Q^{T} C^{u} Q p_{u}-Q^{T} C^{u} f(u)+\lambda p_{u} \end{aligned} 21??pu??L(p,q)??=i∑?cui?(puT?qi??fui?)qi?+λpu?=i∑?cui?(qiT?pu??fui?)qi?+λpu?=QTCuQpu??QTCuf(u)+λpu??
有兩種方法可以求解pup_upu?和qiq_iqi?:
- 第一種方法為直接法,令偏導為0,則有:
pu=(QTCuQ+λI)?1QTCuf(u)p_{u}=\left(Q^{T} C^{u} Q+\lambda I\right)^{-1} Q^{T} C^{u} f(u) pu?=(QTCuQ+λI)?1QTCuf(u)
矩陣計算的維度如下:
(k×n&n×n&n×k)&(k×n)&(n×n)&(n×1)=k×1(k \times n \& n \times n \& n \times k) \& (k \times n) \& (n \times n) \& (n \times 1)= k \times 1(k×n&n×n&n×k)&(k×n)&(n×n)&(n×1)=k×1
同理可得:
qi=(PTCiP+λI)?1PTCif(i)q_{i}=\left(P^{T} C^{i} P+\lambda I\right)^{-1} P^{T} C^{i} f(i) qi?=(PTCiP+λI)?1PTCif(i)
符號說明:
f(u)∈Rnf(u) \in \mathbb{R}^{n}f(u)∈Rn:包含用戶uuu的所有偏好向量;
f(i)∈Rmf(i) \in \mathbb{R}^{m}f(i)∈Rm:包含用戶對物品tit_iti?的偏好向量;
P∈Rm×kP \in \mathbb{R}^{m \times k}P∈Rm×k:潛在用戶特征矩陣;
Q∈Rn×kQ \in \mathbb{R}^{n \times k}Q∈Rn×k:潛在物品特征矩陣;
Cu∈Rn×nC^{u} \in \mathbb{R}^{n \times n}Cu∈Rn×n:是Ciiu=cuiC_{i i}^{u}=c_{u i}Ciiu?=cui?,其余地方為0的對角矩陣,如下所示:
| C22uC_{22}^{u}C22u? | ||||
| C33uC_{33}^{u}C33u? | ||||
| C44uC_{44}^{u}C44u? | ||||
| C55uC_{55}^{u}C55u? |
Ci∈Rm×mC^{i} \in \mathbb{R}^{m \times m}Ci∈Rm×m:是Cuui=cuiC_{uu}^{i}=c_{u i}Cuui?=cui?的對角矩陣,其余地方為0的對角矩陣,如下所示:
| C22iC_{22}^{i}C22i? | ||||
| C33iC_{33}^{i}C33i? | ||||
| C44iC_{44}^{i}C44i? | ||||
| C55iC_{55}^{i}C55i? |
- 第二種方法為迭代法:
梯度計算如下:
12?L(p,q)?pu=∑i[cui(puTqi?fui)]qi+λpu=∑i[cui(qiTpu?fui)]qi+λpu12?L(p,q)?qi=∑u[cui(puTqi?fui)]pu+λqi\begin{aligned} \frac{1}{2} \frac{\partial L(p, q)}{\partial p_{u}} &=\sum_{i} \left[c_{u i}\left(p_{u}^{T} q_{i}-f_{u i}\right)\right] q_{i}+\lambda p_{u} \\ &=\sum_{i} \left[c_{u i}\left(q_{i}^{T} p_{u}-f_{u i}\right)\right] q_{i}+\lambda p_{u} \\ \frac{1}{2}\frac{\partial L(p, q)}{\partial {q}_{i}}&= \sum_{u}\left[c_{u i}\left({p}_{u}^{T}{q}_{i}- f_{u i}\right)\right] {p}_{u}+ \lambda {q}_{i} \end{aligned} 21??pu??L(p,q)?21??qi??L(p,q)??=i∑?[cui?(puT?qi??fui?)]qi?+λpu?=i∑?[cui?(qiT?pu??fui?)]qi?+λpu?=u∑?[cui?(puT?qi??fui?)]pu?+λqi??
迭代公式為:
pu=pu?γ?L(p,q)?puqi=qi?γ?L(p,q)?qi\begin{aligned} {p}_{u}&={p}_{u}-\gamma \frac{\partial L(p, q)}{\partial {p}_{u}}\\ {q}_{i}&={q}_{i}-\gamma \frac{\partial L(p, q)}{\partial {q}_{i}} \end{aligned} pu?qi??=pu??γ?pu??L(p,q)?=qi??γ?qi??L(p,q)??
總結
以上是生活随笔為你收集整理的推荐系统--矩阵分解(5)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java string返回_Java的S
- 下一篇: java信息管理系统总结_java实现科