AI算法-协同过滤

一.协同过滤的概念


  协同过滤,英文又称Collaborative Filtering,简称CF,注意这里不是指游戏cf。
举个例子,你想和家人看场电影,但是你们都不知道看什么好,这个时候,你就会想,要不我问问身边和我兴趣差不多的伙伴有什么值得看的吧?这就是协同过滤的核心思想,即协同过滤是一种基于一组兴趣相同的用户项目进行的推荐。
  算法优点:
  ①协同推荐是应用最广泛的推荐算法,可以过滤掉许多人难以量化描述的概念标签的构建;
  ②仅使用用户行为的进行推荐,极大的提升了速度与准确度;
  ③可以很好地发现用户的潜在兴趣偏好。
  算法缺点
  ①用户对商品的评价非常稀疏,而有些用户对使用过的商品根本不做评价,这样基于用户的评价所得到的用户间的相似性可能不准确;
  ②随着用户和物品的增多,系统的性能会越来越低,甚至会出现内存耗尽;
  ③对于新用户或者新物品,推荐的质量会较差,即常说的冷启动问题。

二.相似度的计算


  在协同过滤中,相似度的计算尤为重要,因为我们过滤靠的就是相似度,相似度高的被拿来推荐,低的则被过滤。
  在相似度的计算中,使用sim来代替英文similarity(相似度),用 s i m ( a , b ) sim(a,b) sim(a,b)来表示 a a a b b b的相似度。下面为两个关于相似度的经典算法。

1.余弦相似度


  余弦定理相似性度量余弦距离是通过向量空间中两个向量夹角的余弦值作为衡量两个个体间差异的大小的度量。
三角形余弦定理公式:
c o s A = b 2 + c 2 − a 2 2 b c cosA=\frac{b^{2}+c^{2}-a^{2}}{2bc} cosA=2bcb2+c2a2
  由三角形余弦定理公式可知,角 A A A越小, b , c b,c b,c两边越接近。当角 A A A 0 0 0度时, b , c b,c b,c两边完全重合。在向量空间中,对于向量 a a a和向量 b b b满足公式:
c o s C = < a ⃗ , b ⃗ > ∣ a ⃗ ∣ ∣ b ⃗ ∣ cosC=\frac{<\vec a,\vec b>}{|\vec a||\vec b|} cosC=a b <a ,b >
  当 a a a b b b越接近(越相似)时,余弦值就越大,最大为 1 1 1。所以在比对 a a a b b b的相似度时,可以将其向量化后,计算它的余弦值,从而比较其相似度。即:
s i m ( a , b ) = c o s ( a ⃗ , b ⃗ ) = a ⃗ ⋅ b ⃗ ∣ a ⃗ ∣ ∣ b ⃗ ∣ sim(a,b)=cos(\vec a,\vec b)=\frac{\vec a\cdot\vec b}{|\vec a||\vec b|} sim(a,b)=cos(a ,b )=a b a b
  类似的也可以推广到多个样本的相似性度量公式: s i m ( a , b , ) = c o s θ = x 1 y 1 + x 2 y 2 + ⋯ + x n y n x 1 2 + x 2 2 + ⋯ + x n 2 y 1 2 + y 2 2 + ⋯ + y n 2 sim(a,b,)=cosθ=\frac{x_{1}y_{1}+x_{2}y_{2}+\cdots+x_{n}y_{n}}{\sqrt{x_{1}^{2}+x_{2}^{2}+\cdots+x_{n}^{2}}\sqrt{y_{1}^{2}+y_{2} ^{2}+\cdots+y_{n}^{2}}} sim(a,b,)=cosθ=x12+x22++xn2 y12+y22++yn2 x1y1+x2y2++xn

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值