svd:增强的CF方法
- 基本的方法:CF
@@@ An Algorithmmic framework for performing collaborative filtering
1. cf 方法的优点
- 相对简单
- 可解释性好
- 提高了用户体验
- 实时性好
2. 增强的CF方法(全局化的领域矩阵)
- CF方法本质是:局部算法
- 矩阵分解:全局的算法
* 模型
步骤1. 基本公式
$$\hat{r}{ui} = b{ui} + \sum \limits{j \in R(u)} (r{ui} - b{ui}) w{ij}$$
步骤2,修正权重
$$\hat{r}{ui} = b{ui} + \sum \limits{j \in R(u)} (r{ui} - b{ui}) w{ij} + \sum \limits{j \in N(u)} c{ij}$$
N(u)是隐式反馈集合(用户租借或者购买物品的集合)
- 使用全局权重,而不是局部,可以强调:用户的观点,体现在评分物品和未评分物品上
- N(u) ---> R(u)
步骤3. 结合矩阵分解
$$\hat{r}{ui} = \mu+ b_u + b_i +|R(u)|^{-\alpha} \sum \limits{j \in R(u)}[(r{uj}-b{uj})w{ij} +c{ij}]$$
- $$\alpha控制了规范化的程度; 取\alpha=0.5$$
- 修剪;$$S^k(i)$$是与物品i最相似的k个物品的集合
步骤4. 正则化
3. 基于物品关系的因式分解
修剪的选择中,$$k$$的大小
$$w_ij = q_i^Tx_j$$
- $$c_ij = q_i^Ty_i$$
$$\hat{r}{ui} = \mu +b_u+b_i+q_i^T(|R(u)|^{-\frac{1}{2}}\sum\limits{j \in R(u)}(r{uj}-b{uj})x_j+y_j)$$
=>提高的效率
$$(|R(u)|^{-\frac{1}{2}}\sum\limits{j \in R(u)}(r{uj}-b_{uj})x_j+y_j)$$
是和用户有关系,和物品无关
4. 结论
- 效果低于svd++
- 保留了传统cf的优点
5. 基于用户的模型
6 svd和cf的比较
svd
- 插值是从过去所有的评分中得到的,全局求解;
- 关联物品 i 和 j 的权重被分解为两个向量的内积
CF
- 局部的观点