推荐系统(蒋凡译)— 第三章 基于内容的推荐
在应用协同过滤推荐技术时,除了用户评分数据,我们不需要额外的物品数据。这样的好处是避免了付出很大的代价向系统提供详细而且实时更新的物品描述信息,但是这种仅基于纯粹的协同过滤的算法却无法根据物品的特性和用户的特殊偏好来客观选择推荐物品的。
本章中,将物品的特征描述为“内容”。因为后面章节部分介绍的大多技术的最初目的是推荐有意思的文本文档。此外,绝大多数的方法的假设是物品的特性能自动从文档内容本身或无结构的文本描述中提取。所以,基于内容的推荐系统的典型例子是比较候选文章的主要关键词和用户过去高度评价过的其他文章中出现的关键词来推荐新文章,而这些被推荐的物品,就常常指的是“文档”。本章讨论的基于内容的推荐,关注的算法侧重于推荐文本描述的物品,并能自动“学习”用户记录(基于知识的推荐系统通常是显式询问用户的偏好)。
3.1 内容的表示与相似度
描述物品目录最简单的方法就是维护每个物品的特征的详细列表(属性集、特征集或物品信息)。以推荐图书为例,可以把体裁、作者、出版社等信息保存在数据库中,根据不同的用户兴趣,用这些特征来描述他们的偏好,而要做的就是将物品特征同用户偏好匹配起来。推荐系统需要收集用户的记录,直接的方法是明确询问用户ta所接受的范围和内容,间接的方式是让用户给一组物品进行评分,可以是整体评分,也可以是对不同维度进行评分。
基于内容的推荐系统的工作原理是,评估用户还没看到的物品与当前用户过去喜欢的物品的相似度。
而衡量相似度的方法有两种:1、0/1衡量,就是将用户过去喜欢的物品,同其他ta没见过的物品n进行比较,如果n的类型在ta喜欢的类型中,则标为1,否则就为0;2、计算相关关键词的相似度或重叠度。典型的相似度系数会用到Dice系数,它比较适合多值特征组合。它是这样描述的:如果每本图书b由一组关键词k描述,那么Dice系数描述bi和bj为:2*(kbi∩kbj)/(|kbj|+|kbi|)
向量空间模型和TF-IDF
严格来讲,图书的类别信息,并不算是图书的内容,而只能算是附加知识。基于内容的推荐方法不是去维护一组“元信息”特征,而是使用一列在文档中出现的相关关键词,它的主要思想是,能够从文档内容本身或没有限制的文字描述中自动生成列表。
文档内容可以用不同方法转换到这样的关键词列表中。首先,一种单纯的方法是将现在所有文档的词语设为一个列表,然后用布尔型向量描述每一个文档,1表示文档出现在文档中,0表示没有出现。如果用户记录用一个相似的列表描述,那么计算兴趣文档和文档的重合程度就可以匹配文档。这个方法存在的问题很明显。首先是它假设每个词在文档中的重要性是相同的,此外,当文档比较长的时候,用户记录和文档的重叠几率自然就会大,所以,这样的推荐系统,往往更倾向于推荐长文档。
另一种方法是TF-IDF。它代表的是TF(term-frequence)-IDF(inverse documents frequence),这种技术在信息检索领域应用广泛。文本文档可以转换为多维欧几里得空间中的向量,空间维度为文档中出现的关键词,给定文档在空间中的坐标,通过子量乘积得到词频和反文档频率。
词频描述某个词在一篇文档中出现的频繁程度。为了阻止更长的文档得到更高的相关度的权值,必须对文档长度进行归一化处理,有几种方法是可行的。其中一种简单方法是将词出现的次数比上同文档中其他关键词出现的最多次数。假定:f是某词在文档中出现的频数,fj是其他关键词中最常出现的关键词的频数 TF=f/fj。反文档频率是组合了词频后的第二个衡量值,旨在降低所有文档中几乎都会出现的关键词的权重。其思想是,那些常见的词语对区分文档没有用,应该给那些仅出现在某些文档中的词更高的权值。N是所有可推荐的文档数量,ni是N中关键词i出现的数量。
IDF的计算方式:log (N/ni)。文档关键词的组合TF-IDF的权值可以计算为这两个子向量的乘积。其实,文档在处理之前,实际上还要去掉停用词,停用词的去除,对模型的效果可能更为明显。
TF-IDF的改进及局限
TF-IDF向量一般很大并且很稀疏。可以使用其他技术来让它们更紧凑,并从向量中删除不相关的信息。
1.停用词和词干还原。一种直接的方法是删除所谓的停用词。在英语中,这类词一般是介词和冠词,这类词在文档中几乎都会出现,可以将他们从文档向量中删除。此外,另一种技术是词干还原或合并,目的是将相同的词语的不同变形替换成他们共同的词干(词根)。
2.精简规模。仅用n个信息量最大的词语来减少文档描述的规模,期望删除数据中的“噪声”。原则上,特征选择技术也可以用于觉得信息量的关键词,然而这种基于学习的方法,不仅会增加模型复杂度,也有可能会倾向于过拟合描述训练数据的样本。也有人提出用外部词典来删除该领域不相关的词语,实验表明,这种方法能持续提高精度,尤其是只能得到很少的训练样本时。
3.短语。短语比单词更能描述文本,用它来替换词,可能进一步提高描述的准确性。局限性:从文本中抽取个别关键词并赋权的方法有另外的局限,没有考虑到关键词的上下文,在某些情况下没有正确体现描述的“含义”。一般来说,我们假设出现在一篇文档中的词语通常是适合刻画文档,而不是在文档中出现“反语境”。
3.2 基于内容的相似度检索
协同过滤可以被成为“推荐相似用户喜欢的物品”,基于内容的推荐是称为“推荐与用户过去喜欢的物品相似的物品”。从这里来看,推荐系统的任务还是(基于用户记录)来预测用户是否喜欢自己没有见过的物品。本节会介绍依赖向量——空间文档表示模型的最常见技术。
最近邻:想要估计用户对某篇文档感兴趣的程度,最初的方法是查询用户过去是否喜欢相似的文档。这需要两类信息:1.用户对以前商品的“喜欢/不喜欢”的评价记录,其次,需要一个标准来衡量文档的相似度。一般地,使用余弦相似度方法来评价文档是否相似。优点是,易于实现,快速适应变化,相对少的数据效果也不错,缺点是,预测精度低。
相关性反馈:它也是一种基于向量模型的方法,曾用于信息检索系统SMART,它的特定是,用户不能只提交给系统基于关键词的查询词,还要反馈检索结果是否相关,有了反馈,系统才能改进。
其他文本分类方法:将这类问题看作是分类问题,应用机器学习中的有监督学习技术,就会自动决定用户是否对某篇文档感兴趣,有监督学习意味着算法依赖现成的训练数据。文中还介绍了基于概率模型的方法、其他线性分类器和机器学习、显示决策模型和特征选择。
参考文献:
https://jackence.github.io/2018/01/12/recommendsys2/