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}]$$

  1. $$\alpha控制了规范化的程度; 取\alpha=0.5$$
  2. 修剪;$$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

  • 局部的观点

results matching ""

    No results matching ""