1. 推荐系统的背景
大数据时代,信息过载。
信息过载的特点:
- 快:对信息反映的速度远远低于信息传播的速度
- 多:信息量大大高于受众所能消费、承受或需要的信息量
- 杂:大量无关的没用的冗余的数据信息严重干扰
推荐系统和搜索引擎,都可以在一定程度上解决了信息过载问题
- 推荐系统:针对“未知的已知”和“未知的未知”的需求
- 搜索引擎:针对“已知的未知”需求
2. Content Base(基于内容推荐)
推荐系统分为非个性化和个性化两类,CB算法是基于内容的推荐,两种场景都适用
2.1 非个性化
根据用户当前浏览的物品来进行推荐
实际应用场景:比如当前你点开了哪个视频,根据当前点开的视频,来推荐和当前被点开视频,相似的视频。一般应用在PC端,不会泄漏隐私。
2.2 个性化
根据用户历史浏览的物品(从而推理用户的喜好)来进行推荐
应用场景: 主要应用于移动端,私密性比较好。比如生活中比较常见的:不同的人,抖音给推荐的东西不一样。
优点:
(1)可解释性强(我知道平台为什么给我推荐这个东西,因为我之前看过类似的)
(2)速度快
缺点:
只用了title信息(但是比如视频中,还有画面,视频内容等很多信息),所以推荐的物品不够精细。
2.3 实践
3. 协同过滤
协同算法,是推荐系统中,最常用的、最有效的算法之一,在CB算法系统实验的基础上,做了些调整,如下:
User-Item 矩阵
协同算法,分为两类:User-Based CF和Item-Based CF
- User-based CF(ucf):用户喜欢和他相似兴趣用户喜欢的东西 (给你推荐物品,为什么你喜欢,因为你的朋友喜欢)
- Item-based CF(icf):用户喜欢过去喜欢的物品相似的物品(因为你过去点过哪些商品,所以给你推荐)
Q:从原理上来看 ICF 和 Content Base 是一样的?两者到底有什么区别呢?
协同算法,分为两类:User-Based CF和Item-Based CF
- User-based CF(ucf):用户喜欢和他相似兴趣用户喜欢的东西
- Item-based CF(icf):用户喜欢过去喜欢的物品相似的物品
3.1 User-based CF
Q: 右边的那个相似度矩阵是怎么算的呢?
详见3.4实践
3.2 Item-based CF
Q:右边的那个相似度矩阵是怎么算的呢?
详见3.4实践
3.3 总结
推荐系统,主要在乎的是“序”
(1)什么情况下用UCF,什么情况下用ICF?
哪一个维度小,就用哪一个
如果用户量非常大——> ICF
如果商品量非常大——>UCF
3.4 实践
I I矩阵相似度计算。
Q:上述归一化的方法,item1 那一列相加也不为1? 归一化的方法为什么不用(比如user2,iterm1 那里,为什么不用 2/(0+2+5+...+1)),这样子归一化之后,相加就会为1了
同理UU矩阵的相似度计算