一、基于内容的推荐算法
1、简介
基于内容的推荐方法是非常直接的,它以物品的内容描述信息为依据来做出的推荐,本质上是基于对物品和用户自身的特征或属性的直接分析和计算。
例如,假设已知电影A是一部喜剧,而恰巧我们得知某个用户喜欢看喜剧电影,那么我们基于这样的已知信息,就可以将电影A推荐给该用户。
基于内容的推荐实现步骤
画像构建。顾名思义,画像就是刻画物品或用户的特征。本质上就是给用户或物品贴标签。
- 物品画像。例如给电影《战狼2》贴标签,可以有哪些?“动作”、“吴京”、“吴刚”、“张翰”、“大陆电影”、“国产”、“爱国”、“军事”等等一系列标签是不是都可以贴上。
- 用户画像。例如已知用户的观影历史是:“战狼1”、“战狼2”、“建党伟业”、“建军大业”、“建国大业”、“红海行动”、“速度与激情1-8”等,我们是不是就可以分析出该用户的一些兴趣特征如:“爱国”、“战争”、“赛车”、“动作”、“军事”、“吴京”、“韩三平”等标签。
问题:物品的标签来自哪儿?
a)PGC 物品画像--冷启动
- 物品自带的属性(物品一产生就具备的):如电影的标题、导演、演员、类型等等;
- 服务提供方设定的属性(服务提供方为物品附加的属性):如短视频话题、微博话题(平台拟定)
- 其他渠道:如爬虫
根据PGC内容构建的物品画像可以解决物品的冷启动问题
b)UGC 冷启动问题
- 用户在享受服务过程中提供的物品的属性:如用户评论内容,微博话题(用户拟定)
基于内容推荐的算法流程
- 根据PGC/UGC内容构建物品画像
- 根据用户行为记录生成用户画像
- 根据用户画像从物品中寻找最匹配的TOP-N物品进行推荐
物品冷启动处理
- 根据PGC内容构建物品画像
- 利用物品画像计算物品间两两相似情况
- 为每个物品产生TOP-N最相似的物品进行相关推荐:如与该商品相似的商品有哪些?与该文章相似的文章有哪些?
二、电影画像构建
物品画像构建步骤:
- 利用tags.csv中每部电影的标签作为电影的候选关键词
- 利用TFIDF计算每部电影的标签的tfidf值,选取TOP-N个关键词作为电影画像标签
- 将电影的分类词直接作为每部电影的画像标签
1、基于TF-IDF的特征提取技术
1)TF-IDF介绍
上面提到,物品画像的特征标签主要都是指的如电影、导演、演员、图书的作者、出版社等结构化的数据,也就是他们的特征提取,尤其是体征向量的计算是比较简单的,如直接给作品的分类定义为0或1的状态。
但另外一些特征,比如电影的内容简介、电影的影评、图书的摘要等文本数据,这些被称为非结构化数据,首先他们本应该也属于物品的一个特征标签,但是这样的特征标签进行量化时,也就是计算他的特征向量时是很难去定义的。
因此这时就需要借助一些自然语言处理、信息检索等技术,如将用户的文本评论或其他文本内容信息的非结构化数据进行量化处理,从而实现更加完善的物品画像或用户画像。
TF-IDF算法便是其中一种在自然语言处理领域中应用比较广泛的一种算法。可用来提取目标文档,并得到关键词用于计算对于目标文档权重,并将这些权重组合到一起得到特征向量。
2)算法原理
TF-IDF自然语言处理领域中计算文档中词或短语的权值的方法,是词频(Term Frequency,TF)和逆文档频率(Inverse Document Frequency,IDF)的乘积。TF指的是某一个给定的词语在该文件中出现的次数。这个数字通常会被正则化,以防止它偏向长的文件(同一个词语在长文件里可能会比短文件有更高的词频,而不管该词语重要与否)。IDF是一个词语普遍重要性的度量,某一特定词语的IDF,可由总文件数目除以包含该词语之文件的数目,再将得到的商取对数得到。
TF-IDF算法基于一个这样的假设:若一个词语在目标文档中出现的频率高而在其他文档中出现的频率低,那么这个词语就可以用来区分出目标文档。这个假设需要掌握的有两点:
- 在本文档出现的频率高
- 在其他文档出现的频率低
因此,TF-IDF算法的计算可以分为词频(Term Frequency,TF)和逆文档频率(Inverse Document Frequency,IDF)两部分,由TF和IDF的乘积来设置文档词语的权重。
结论:TF-IDF与词语在文档中的出现次数成正比,与该词在整个文档集中的出现次数成反比。
用途:在目标文档中,提取关键词(特征标签)的方法就是将该文档所有词语的TF-IDF计算出来并进行对比,取其中TF-IDF值最大的k个数组成目标文档的特征向量用以表示文档。
注意:文档中存在的停用词(Stop Words),如“是”、“的”之类,对于文档的中心思想表达没有意义的词,在分词时需要先过滤掉再计算其他词语的TF-IDF值。
2、算法实现
2.1、加载数据集并做处理