首页
CtrlK

电影推荐简单原理

电影推荐简单原理

视频推送简单原理

体会 学习体会

学习收获:体会下是平台如何推送出你所感兴趣的视频。

推荐 视频链接

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)

用图形表示如下:

![image.png](https://cdn.modevol.com/user/ckxe4nrot01l501s5g2ehd6ge/images/nd6c2jvahcgucn789tljqi32.png)image.png

向量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

同理计算其它用户两两之间的余弦相似度,就得到下面矩阵:

1.000.550.670.600.551.000.430.670.670.431.000.330.600.670.331.00

为了预测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

电影推荐简单原理
Mleon的头像
创建于:05-06
随记
讨论
媒体