学习收获:体会下是平台如何推送出你所感兴趣的视频。
Math is Boring Without Real Life Application! https://youtu.be/s0fm0NvZKXk?si=E2Vc9JdtG9yH_t3o
4个用户:U1, U2, U3, U4
5部电影:M1, M2, M3, M4, M5
用户对电影的评价从一颗星到5颗星,如果没看过这部电影,则为0,得到下表:
M1 | M2 | M3 | M4 | M5 | |
---|---|---|---|---|---|
U1 | 4 | 0 | 2 | 5 | 0 |
U2 | 0 | 3 | 0 | 4 | 2 |
U3 | 5 | 0 | 4 | 0 | 3 |
U4 | 2 | 5 | 0 | 3 | 0 |
现在的问题是:如何猜测 U1 对 M2 的评价
一种解决思路是:看过M2 的有 U2 和 U4,可以根据 U2 和 U4 谁的口味与 U1 更相似来判断 U1对M2的评价
这种口味相似度比较可以用余弦相似度来比较。
假设有如下向量:
A (4, 2)
B (3, 1)
C (1, 5)
用图形表示如下:

向量A跟B在方向上更为接近,夹角更小;而向量A跟C在方向上有较多不同,夹角更大。也就是说,A跟B更相似。
而余弦相似度,就是用来准确计算这种角度的工具。计算后得:
A跟B: 0.9899
A跟C:0.6139
0.9899 > 0.6139,再一次说明A跟B更相似。
两个向量余弦相似度为1,说明角度为0;
余弦相似度为0,说明角度为90;
余弦相似度为-1,说明角度为180,方向相反。
回到上述例子,分别计算 U1 跟其他用户的余弦相似度:
U1 U1 = 1
U1 U2 = 0.55
U1 U3 = 0.67
U1 U4 = 0.60
同理计算其它用户两两之间的余弦相似度,就得到下面矩阵:
为了预测U1对M2的评价:
(U1 U2 余弦相似度) 乘以 (U2对M2的评价): 0.55 * 3 = 1.65,
(U1 U2 余弦相似度) 乘以 (U4对M2的评价): 0.60 * 5 = 3.00,
两值相加:1.65 + 3.00 = 4.65
相似度相加:0.55 + 0.60 = 1.15
最终结果:4.65/1.15 = 4.04
同理,预测 U1 对 M5 的评价为2.5
根据 4 > 2.5,平台会对U1优先推荐M2