推荐算法应用举例

1. 推荐算法的作用

在应用系统中,推荐算法发挥着越来越重要的作用:

  1. 提升用户体验:精准推送感兴趣内容,减少查找成本
  2. 挖掘潜在需求:发现用户未主动关注的喜好品类
  3. 提高平台收益:增加内容播放、商品下单、停留时长
  4. 盘活存量资源:冷门内容/商品获得曝光机会
  5. 实现千人千面:差异化分发,适配不同用户偏好
  6. 增强用户粘性:贴合喜好留住用户,提升回访率

2. 推荐算法应用举例

案例:用户看视频时,系统应该怎样利用用户的观看历史,为用户推荐下一个视频?

2.1. 已有数据

已有用户看过的视频编号及停留时间,如下:

用户 视频1 视频2 视频3 视频4 视频5
用户1 4 0 3 2 0
用户2 0 4 0 5 0
用户3 5 0 2 0 3
用户4 3 2 0 3 4
  • 横坐标:有的视频编号;
  • 纵坐标:用户编号;
  • 值:用户看视频停留的时间;

2.2. 问题

对于用户1,已经看过:视频1,视频3,视频4,分别观看时间为:4,3,2分钟;

接下来系统应该推荐视频2 还是视频5?

3. 余弦相似度

3.1. 余弦相似度计算公式

sim(A,B)=A⋅B∣∣A∣∣×∣∣B∣∣\text{sim}(A,B)=\frac{A\cdot B}{||A||\times||B||}sim(A,B)=∣∣A∣∣×∣∣B∣∣A⋅B

或者

cos⁡(a,b)=∑i=1naibi∑i=1nai2⋅∑i=1nbi2\cos(\boldsymbol{a},\boldsymbol{b})=\frac{\sum_{i=1}^n a_ib_i}{\sqrt{\sum_{i=1}^n a_i^2}\cdot\sqrt{\sum_{i=1}^n b_i^2}}cos(a,b)=∑i=1nai2 ⋅∑i=1nbi2 ∑i=1naibi

  • A⋅BA\cdot BA⋅B:向量点积
  • ∣∣A∣∣、∣∣B∣∣||A||、||B||∣∣A∣∣、∣∣B∣∣:向量模长

值域:[−1, 1]\boldsymbol{[-1,\ 1]}[−1, 1]

  • 111:向量完全同向,喜好高度一致
  • 000:向量相互垂直,喜好无关联
  • −1-1−1:向量完全反向,喜好截然相反

3.2. 实例演示

设用户行为向量(影视标签:科幻/喜剧/悬疑)

用户A:[5,1,2][5,1,2][5,1,2]

用户B:[4,2,1][4,2,1][4,2,1]

用户C:[1,5,4][1,5,4][1,5,4]

直观看用户A和用户B 都喜看科幻(分别为5,4),不喜欢戏剧和悬疑(得分都比较低),用户C喜看喜剧和悬疑(分别为5,4),不喜欢科幻(得分1)。所以用户A和用户B的相似度更高,

3.2.1. 计算公式

cos⁡θ=x1x2+y1y2+z1z2x12+y12+z12⋅x22+y22+z22\cos\theta=\frac{x_1x_2+y_1y_2+z_1z_2}{\sqrt{x_1^2+y_1^2+z_1^2}\cdot\sqrt{x_2^2+y_2^2+z_2^2}}cosθ=x12+y12+z12 ⋅x22+y22+z22 x1x2+y1y2+z1z2

设向量
A=(5,1,2)A=(5,1,2)A=(5,1,2),B=(4,2,1)B=(4,2,1)B=(4,2,1),C=(1,5,4)C=(1,5,4)C=(1,5,4)

3.2.2. 计算用户A与用户B的余弦相似度

点积:5×4+1×2+2×1=245\times4+1\times2+2\times1=245×4+1×2+2×1=24

A模长:52+12+22=30\sqrt{5^2+1^2+2^2}=\sqrt{30}52+12+22 =30

B模长:42+22+12=21\sqrt{4^2+2^2+1^2}=\sqrt{21}42+22+12 =21
cos⁡θAB=2430×21≈0.956\cos\theta_{AB}=\frac{24}{\sqrt{30}\times\sqrt{21}}\approx0.956cosθAB=30 ×21 24≈0.956

3.2.3. 计算用户A与用户C的余弦相似度

点积:5×1+1×5+2×4=185\times1+1\times5+2\times4=185×1+1×5+2×4=18

C模长:12+52+42=42\sqrt{1^2+5^2+4^2}=\sqrt{42}12+52+42 =42
cos⁡θAC=1830×42≈0.507\cos\theta_{AC}=\frac{18}{\sqrt{30}\times\sqrt{42}}\approx0.507cosθAC=30 ×42 18≈0.507

3.2.4. 结论

  1. A与B相似度:≈0.95\approx0.95≈0.95,喜好高度相近,可互相推荐影片
  2. A与C相似度:≈0.51\approx0.51≈0.51,喜好差异偏大
  3. A、B相似度更高,喜好更贴合。

4. 推荐算法计算过程

4.1. 步骤1:计算用户之间的相似度,得到相似度矩阵

向量
u1=(4,0,3,2,0)u_1=(4,0,3,2,0)u1=(4,0,3,2,0)
u2=(0,4,0,5,0)u_2=(0,4,0,5,0)u2=(0,4,0,5,0)
u3=(5,0,2,0,3)u_3=(5,0,2,0,3)u3=(5,0,2,0,3)
u4=(3,2,0,3,4)u_4=(3,2,0,3,4)u4=(3,2,0,3,4)

  1. 用户1&用户2
    cos⁡=4×0+0×4+3×0+2×5+0×042+02+32+22+02⋅02+42+02+52+02=102941≈0.290\cos=\frac{4{\times}0+0{\times}4+3{\times}0+2{\times}5+0{\times}0}{\sqrt{4^2+0^2+3^2+2^2+0^2}\cdot\sqrt{0^2+4^2+0^2+5^2+0^2}}=\frac{10}{\sqrt{29}\sqrt{41}}\approx0.290cos=42+02+32+22+02 ⋅02+42+02+52+02 4×0+0×4+3×0+2×5+0×0=29 41 10≈0.290

  2. 用户1&用户3
    cos⁡=4×5+0×0+3×2+2×0+0×342+02+32+22+02⋅52+02+22+02+32=262938≈0.783\cos=\frac{4{\times}5+0{\times}0+3{\times}2+2{\times}0+0{\times}3}{\sqrt{4^2+0^2+3^2+2^2+0^2}\cdot\sqrt{5^2+0^2+2^2+0^2+3^2}}=\frac{26}{\sqrt{29}\sqrt{38}}\approx0.783cos=42+02+32+22+02 ⋅52+02+22+02+32 4×5+0×0+3×2+2×0+0×3=29 38 26≈0.783

  3. 用户1&用户4
    cos⁡=4×3+0×2+3×0+2×3+0×442+02+32+22+02⋅32+22+02+32+42=182938≈0.542\cos=\frac{4{\times}3+0{\times}2+3{\times}0+2{\times}3+0{\times}4}{\sqrt{4^2+0^2+3^2+2^2+0^2}\cdot\sqrt{3^2+2^2+0^2+3^2+4^2}}=\frac{18}{\sqrt{29}\sqrt{38}}\approx0.542cos=42+02+32+22+02 ⋅32+22+02+32+42 4×3+0×2+3×0+2×3+0×4=29 38 18≈0.542

  4. 用户2&用户3
    cos⁡=0×5+4×0+0×2+5×0+0×302+42+02+52+02⋅52+02+22+02+32=04138≈0.000\cos=\frac{0{\times}5+4{\times}0+0{\times}2+5{\times}0+0{\times}3}{\sqrt{0^2+4^2+0^2+5^2+0^2}\cdot\sqrt{5^2+0^2+2^2+0^2+3^2}}=\frac{0}{\sqrt{41}\sqrt{38}}\approx0.000cos=02+42+02+52+02 ⋅52+02+22+02+32 0×5+4×0+0×2+5×0+0×3=41 38 0≈0.000

  5. 用户2&用户4
    cos⁡=0×3+4×2+0×0+5×3+0×402+42+02+52+02⋅32+22+02+32+42=234138≈0.584\cos=\frac{0{\times}3+4{\times}2+0{\times}0+5{\times}3+0{\times}4}{\sqrt{0^2+4^2+0^2+5^2+0^2}\cdot\sqrt{3^2+2^2+0^2+3^2+4^2}}=\frac{23}{\sqrt{41}\sqrt{38}}\approx0.584cos=02+42+02+52+02 ⋅32+22+02+32+42 0×3+4×2+0×0+5×3+0×4=41 38 23≈0.584

  6. 用户3&用户4
    cos⁡=5×3+0×2+2×0+0×3+3×452+02+22+02+32⋅32+22+02+32+42=273838≈0.711\cos=\frac{5{\times}3+0{\times}2+2{\times}0+0{\times}3+3{\times}4}{\sqrt{5^2+0^2+2^2+0^2+3^2}\cdot\sqrt{3^2+2^2+0^2+3^2+4^2}}=\frac{27}{\sqrt{38}\sqrt{38}}\approx0.711cos=52+02+22+02+32 ⋅32+22+02+32+42 5×3+0×2+2×0+0×3+3×4=38 38 27≈0.711

4.1.1. 相似度矩阵

通过上面的计算可以得到用户之间的相似度矩阵,如下:

用户1 用户2 用户3 用户4
用户1 1.000 0.290 0.783 0.542
用户2 0.290 1.000 0.000 0.584
用户3 0.783 0.000 1.000 0.711
用户4 0.542 0.584 0.711 1.000

这个相似度矩阵,可以告诉我们基于偏好两个用户之间的相似度。例如用户1和有用户3的相似度是0.783,是其他用户中最高的一个,即用户1和用户3的喜好高度相近,可互相推荐视频。

4.2. 步骤2:根据相似度矩阵,预测用户在未播放视频的停留时间

这里使用用户相似度的加权平均值来预测某用户对某视频的停留时间。

  • 用户1还未观看的视频有:视频2和视频5。

  • 用户1在视频2的预计停留时间为

看过视频2的用户有:用户2看了4分钟;用户4看了2分钟。
与用户2相似度∗用户2观看视频2时长+与用户4相似度∗用户4观看视频2时长与用户2相似度+与用户4相似度=0.290×4+0.542×20.290+0.542=1.16+1.0840.832=2.2440.832≈2.697\frac{与用户2相似度*用户2观看视频2时长+与用户4相似度*用户4观看视频2时长}{与用户2相似度+与用户4相似度}=\frac{0.290\times4+0.542\times2}{0.290+0.542}=\frac{1.16+1.084}{0.832}=\frac{2.244}{0.832}\approx\boldsymbol{2.697}与用户2相似度+与用户4相似度与用户2相似度∗用户2观看视频2时长+与用户4相似度∗用户4观看视频2时长=0.290+0.5420.290×4+0.542×2=0.8321.16+1.084=0.8322.244≈2.697

  • 用户1在视频5的预计停留时间为
    看过视频5的用户有:用户3看了3分钟;用户4看了4分钟。
    与用户3相似度∗用户3观看视频5时长+与用户4相似度∗用户4观看视频5时长与用户3相似度+与用户4相似度=0.783×3+0.542×40.783+0.542=2.349+2.1681.325=4.5171.325≈3.409\frac{与用户3相似度*用户3观看视频5时长+与用户4相似度*用户4观看视频5时长}{与用户3相似度+与用户4相似度}=\frac{0.783\times3+0.542\times4}{0.783+0.542}=\frac{2.349+2.168}{1.325}=\frac{4.517}{1.325}\approx\boldsymbol{3.409}与用户3相似度+与用户4相似度与用户3相似度∗用户3观看视频5时长+与用户4相似度∗用户4观看视频5时长=0.783+0.5420.783×3+0.542×4=1.3252.349+2.168=1.3254.517≈3.409

4.3. 步骤3:根据预测的停留时间,推荐给用户1的视频

根据前面的计算,用户1预计在视频2的停留时间为2.697分钟,在视频5预计停留时间为3.409分钟。用户1在视频5的预计停留时间较长,因此下面推荐给用户1的视频是视频5。

相关推荐
2601_9583529014 小时前
免提通话中的非线性回声与神经降噪:A-29P 模块背后的算法与系统架构
算法·系统架构·语音处理·回音消除·降噪模块
小O的算法实验室14 小时前
2026年IEEE TEVC,具有子结构保持双学习进化算法+带容量约束车辆路径问题
算法
用户9385156350714 小时前
数组去重,从双重循环到一行 Set,我经历了什么?
javascript·算法
小许同学记录成长14 小时前
gr-analog 模拟信号模块完整源码分析
python·算法·信号处理
计算机安禾14 小时前
【算法分析与设计】第8篇:贪心策略的理论基础与拟阵模型
算法
手写码匠14 小时前
手写 MoE(混合专家模型):从零实现大模型的稀疏激活架构
人工智能·深度学习·算法·aigc
MediaTea14 小时前
PyTorch:主要模块简介
人工智能·pytorch·python·深度学习·机器学习
Black蜡笔小新14 小时前
自动化AI算法训练服务器/企业AI算力工作站DLTM赋能产业智能数字化升级
人工智能·算法·自动化
ZHW_AI课题组15 小时前
基于MLP神经网络的红酒品质回归预测
人工智能·神经网络·机器学习·回归