基于用户的协同过滤算法
基于用户的相关性计算就是计算不同用户对多个物品发生行为的相似程度,类似于把用户进行分组,认为相似的用户,感兴趣的物品相似,得到推荐结果,推荐结果群体化。
1. 将用户向量化表示
将用户以往的行为量化如下表:
用户 | 面包 | 牛奶 | 啤酒 |
---|---|---|---|
小明 | 1 | 0 | 1 |
小红 | 1 | 1 | 0 |
小明对面包和啤酒发生了行为,小红对面包和牛奶发生了行为,比如说购买行为
向量化表示为:
U 小明 = [ 1 , 0 , 1 ] U_{小明} = [1,0,1] U小明=[1,0,1]
U 小红 = [ 1 , 1 , 0 ] U_{小红} = [1,1,0] U小红=[1,1,0]
2.使用向量空间模型(vsm)计算基础相关性
想要做到根据用户兴趣推荐,根据用户以往行为对用户感兴趣的物品进行预测就很好理解,利用余弦相似度进行计算
2.1直接用向量进行计算
s i m ( U i , U J ) = c o s ( θ ( U i , U j ) ) = U i ⋅ U j ∣ U i ∣ ∣ U J ∣ sim(U_i,U_J)=cos(θ _{({U_i,U_j})})=\frac{U_i·U_j}{|U_i||U_J|} sim(Ui,UJ)=cos(θ(Ui,Uj))=∣Ui∣∣UJ∣Ui⋅Uj
U i U_i Ui和 U j U_j Uj进行向量点乘(内积)
以小红和小明为例:
U 小明 = [ 1 , 0 , 1 ] U_{小明} = [1,0,1] U小明=[1,0,1]
U 小红 = [ 1 , 1 , 0 ] U_{小红} = [1,1,0]