-
基于内容的推荐与基于领域的推荐
- 最广泛
-
基于领域的算法分两类
- 基于用户的协同过滤
- 基于物品的协同过滤
- 就是直接给用户推荐和他之前喜欢的物品相似的物品。
-
本章介绍基于内容的推荐与基于领域的算法
-
采用以上算法,可能会冷启动
- 结合深度学习
- 本章几个采用深度学习算法解决冷启动
4.1基于内容的推荐算法
- 基于内容的推荐系统本质是对内容分析,建立特征;
- 基于用户对何种特征的内容感兴趣以及分析一个内容具备什么特征来进行推荐。
- 第一部分: 基于内容的推荐系统的基本概念与流程,及其主要优势和缺点。
- 第二部分: 如何从非结构化信息中提取物品的特征,从而帮助我们完善基于内容的推荐。
4.1.1基于內容的推荐算法基本流程
- 基于内容的推荐
- 根据这些物品的内容属性和用户历史评分或操作记录,
- 计算出用户对不同内容属性的爱好程度,再根据这些爱好推荐其他相同属性的物品。
- 每一部电影,都由爱情、科幻属性组成:
- A对《银河护卫队》《变形金刚》《星际迷航》科幻平均4.7
- 三生三世《美人鱼》《北京遇上西雅图》爱情平均2.3分
- A对科幻电影有偏好
- 推荐系统预测A在独立日上评分时,
- 可用A在所有科幻电影上的平均分4.7分替换
- 可预测A在七月与安生的评分为2.3分,因此推荐系统优先将独立日推荐给A
- 对B,爱情电影上平均分更高,故而推荐系统会将三生三世推荐给B
- 很多视频APP,都有类似的基于内容的推荐方法,见图4.1
- 内容推荐3步
- (1)特征(内容)提取:
- 提取每个待推荐物品的特征(内容属性),
- 上文的电影、书籍、商品的分类标签等。
- 下一节中具体介绍几种物品内容特征的提取方法
- (2)用户偏好计算:
- 用一个用户过去的显式评分或者隐式操作记录,
- 计算用户不同特征(内容属性)上的偏好分数。
- 可直接使用统计特征,即计算用户在不同标签下的分数,
- 上文为例,用户A在科幻下的分数为(5+4+5)/3=4.7。
- 某些场景对时间敏感,用户的兴趣迁移比较快,计算偏好得分时增加时间因子
- (3)内容召回:将待推荐物品的特征与用户偏好得分匹配,取出用户最有可能喜欢的物品池。
- 对于A,最有可能喜欢的物品池是科幻电影的物品池;
- 对于B,最有可能喜欢的物品池是爱情电影的物品池。
- (4)物品排序:按用户偏好召回物品池,可能一次性挑选出很多,
- 这时可进一步根据这些电影的平均分排序
- 对于A,科幻电影的推荐池有《独立日》《星球大战》《变形金刚》,但是其他用户对《独立日》是3.5分,对于《星球大战》是4.8,对变形金刚》是3.1分,这时挑选平均分最高的《星球大战》给A。
- 以上四步,就可构建一个推荐系统。
- 基于内容的推荐方法用户易于理解,简单有效,常和其他推荐方法共同应用于推荐系统
- 基于内容的推荐方法的优点
- 物品没有冷启动问题,
- 因为物品的内容特征不依赖于用户数据;
- 同时推荐出的物品不会存在过于热门的问题
- 能为具有特殊兴趣爱好的用户进行推荐
- 原理简单,易于定位问题。
4.1.2基于內容推荐的特征提取
- 基于内容推荐建立在物品已经有明确的内容特征的基础上
- 数据库中并没有内容特征数据时,如何处理?
- 真实推荐系统中待推荐的物品都有一些可以描述它的特征。
- 分两种:结构化的特征与非结构化
- 结构化特征就是特征的取值限定在某个区间,且可按照定长的格式表示
- 如上面的电影类别特征,往往会和编辑提前约定好所有可选的电影类别,并把所有备选的电影都标注上这些类别标签
- 电影类别“爱情、剧情、科幻、战争、中、日、韩、美”
- 《星球大战》科幻和美国2个内容特征
- 结构化特征可用8位二进制
- 非结构化的特征无法按固定格式表示,最常见的非结构化就是文章。
- 对推荐文章,往往会把文本上的非结构化特征转化为结构化特征,然后加入到模型
- 介绍如何把非结构化的文字信息结构化
- N个待推荐文章为 D = { d 1 , d 2 , … , d N } D=\{d_1,d_2,…,d_N\} D={d1,d2,…,dN}
- 文章中出现的词
{
t
1
,
t
2
,
…
…
,
t
m
}
\{t_1,t_2,……,t_m\}
{t1,t2,……,tm},
- 称词典(英文文本,可直接取单词;中文文章,需先分词,
- 结巴分词①、中科院分词
- N N N篇待推荐文章,这些描述里包含了m个不同的词。
- 用一个向量来表示每一篇文章,
- 如第j篇文章表示为$d_j=(1,21…2,20n),
- a1表示第1个词t1在第う篇文章中的权重,该值越大表示越重要;
- d中其他向量的解释类似。
- 现在关键就是如何计算d各分量的值
- 有以下方法