人邮《推荐系统》阅读笔记

基本概念

推荐系统是解决信息过载的工具,根植于信息检索和信息过滤。

基于知识:

推荐系统通常会用到有关当前用户和有效物品的额外信息,基于约束的推荐(分辨率、重量、价格),喜欢不喜欢,评分高低,价格高低。

哪种领域知识能够表示成知识库?

什么机制可根据用户的特点来选择和排名物品?

如何在没有购买记录的领域获取用户信息?

如何处理用户直接给出的偏好信息?

哪种交互方式能够用于交互式推荐系统?

设计对话时,要考虑那些个性化因素才能确保准确获得用户的偏好信息?

混合推荐:

哪种方法能被组合,特定组合的前提是什么?

两个或多个推荐算法是应该顺序计算,还是采用其他混合方式?

不同方法的结果如何赋以权重?

推荐系统的解释

解释其推荐结果提高用户对系统的信任度?

推荐策略如何影响解释推荐的方式?

能否通过解释让用户相信推荐系统是公正的?

评估推荐系统:

如何衡量推荐系统所给出的建议的质量。

哪些研究设计适用于评估推荐系统?

如何利用历史数据实验评估推荐系统?

什么衡量标准适合不同的评估目标?

现有评估技术的局限是什么?尤其是在推荐系统的会话性或商业价值方面。

数据稀疏和冷启动问题

主要思想:利用假定用户品味的传递性,并由此增强额外信息矩阵。

直接做法是利用用户的附加信息(年龄、性别、教育程度)

扩展激活的特殊图搜索方法高效地分析由评分矩阵转化为用户和物品的双向图。

缺省投票是处理稀疏评分数据的技术。给那些只有一两个用户评分的物品赋以缺省值,就像一种缓冲机制减少那些个别巧合因素对相似度的影响。

冷启动问题是稀疏问题的一个特例:如何向没给任何物品评分的新用户推荐?如何处理从未被评过分或购买过的物品?都可以利用额外的外部信息解决。

一、协同过滤:用户是在隐式地与其他人相互协作。

用户A和用户B过去有着相同的偏好,那么可以用现在A的偏好预测未来B的偏好。

如何发现与要推荐的用户有着相似偏好的用户?

如何衡量相似度?

如何处理还没有购买经历的新用户?(年龄地区性别特征?)

如果只有很少的评分该怎么办?

 

基于用户的最近邻推荐:给定一个评分数据集合当前活跃用户作为输入,找出和当前用户过于有相似偏好的其他用户(对等用户/最近邻用户)。对当前用户没有见过的物品p,利用其近邻对p的评分计算预测值。

前提:如果用户过去有相似的偏好,那么他们未来也会有相似的偏好,用户偏好不会随时间而变化。

 

Pearson相关系数(强负相关-1~强正相关+1),Pearson方法考虑到了用户评分标准不同的事实(有人爱打高分),但仍然可以发现评分值之间相当明显的线性相关性。用户ab的相似度:sim(a,b)  2.1

用户a对物品p的预测值:pred(a,p)。(2.3

最初概念(inverse document frequency)反文档频率。

Pearson不能解决,但是方差权重因子可以解决高方差评分值的物品。

样本扩展指强调那些接近+1-1的值,对原始数值乘以一个常量p来调整近邻的权值。

 

降低近邻集合规模的方法:为用户相似度定义一个具体的最小阈值,或者将规模大小限制为一个固定值,而且只考虑k个最近邻。(问题:相似度阈值过高,近邻规模就会很小,则很多物品无法预测;相似度阈值过高,近邻规模就会很小)

基于物品的最近邻推荐:非常适合做线下预处理,在评分矩阵非常大的情况下也能做到实时计算推荐。

主要思想:利用物品间的相似度,而不是用户间的相似度来计算预测值。

余弦相似度度量:用两个n维向量之间的夹角来测算相似度。(用于信息检索和文本挖掘,比较两份文档)

sim(向量a,向量b) (2.5)

相似度值介于0~1,改进后像Pearson方法一样,在评分值中减去平均值。则可以在原始的评分数据集上用评分值相对于平均值的偏差取代原始值。

确定了物品的相似度以后,pred(u,p) (2.9)

 

基于物品过滤的数据预处理

事先构建一个物品相似度矩阵,描述物品两两之间的相似度。

二次采样:随机选取数据的子集,或者忽略那些仅有非常少量评分或仅包含非常热门物品的用户记录。

 

隐式和显式评分

数据稀疏和冷启动问题

 

 

协同推荐技术一般分为两类:基于记忆(传统,原始评分保存在内存中,直接生成结果。)和基于模型(离线处理原始数据,运行时预计算或学习过的模型就能预测)

矩阵因子分解

奇异值分解(SVD)

语义分析(LSA)

潜在语义索引(LSI)

简单的检索方法无法检索同义词,SVD将高度相关且一起出现过的词语作为单独因子,把通常很大的文档向量矩阵拆解为更小阶的近似矩阵。

 

 

 

 

 

 

 

 

主成分分析(Eigentaste)主成分分析(PCA对评分数据预处理,过滤得出数据中最重要的方面,以解释大多数变量。

讨论。

 

关联规则挖掘

是一种在大规模交易中识别类似关联规则模式的通用技术。例如买尿布就有可能买奶粉。

规则挖掘算法

目标是自动发现这样的规则,并计算这些规则的质量。

关联规则的衡量标准是支持度可信度

 

 

 

 

 

基于概率分析的推荐方法

用概率方法实现协同过滤,将预测问题看做分类问题,将一个对象分配给几个事先定义好的类别的任务。分类任务可以被看成是从训练示例中学习映射函数(分类模型)的问题。

贝叶斯分类器是数据挖掘领域用到的一种标准技术。计算用户给定的每个可能的评分值的条件概率,然后选择一个最大概率值得评分作为预测值。计算预测某物品评分为1的概率,则必须计算条件概率P(某物品=1|X),X是其他评分(a=2 b=3.....

 

利用到了贝叶斯理论,计算类条件概率P

 

 

 

可以用m估值或Laplace平滑技术来平滑条件概率。

依赖概率模型最常用方法基于的思想是将相似的用户组成一个聚类。

贝叶斯分类方法的优势数据中的个别噪声点被平均化,不相关的属性对计算后验概率只有很少或没有影响。贝叶斯网络没有过拟合模型的强烈倾向。还适用于不完整的数据。

 

Slope One 预测器

 

 

 

 

 

 

 

====================================================================

 

 

二、基于内容的推荐

基于内容

核心:能够得到物品的描述和这些特征的重要记录。

方法:分析用户的行为和反馈,或直接询问用户的兴趣和偏好。

系统如何自动获取并持续改进用户记录?

如何决定哪个物品匹配或者至少能竭尽、符合用户的兴趣?

什么技术能自动抽取或学习物品的描述,从而减少人工标注?

 

推荐系统只要两类信息物品特征的描述和描述了用户(历史)兴趣的用户记录(喜爱物品的特点等),就能完成推荐任务(包括确定最能匹配用户喜爱的物品)。这个过程被称为基于内容的推荐。

关注的算法侧重于推荐文本描述的物品,并能自动学习用户的记录。

 

内容表示和相似度

描述物品目录最简单的方法就是维护每个物品特征的详细列表(属性集/特征集/物品记录),推荐要做的就是将物品特征和用户偏好匹配起来。

 

工作原理:评估用户还没看到的物品与当前用户过去喜欢的物品的相似程度。

方法不一:1.给定一本图书B,可以检查B的体裁是否在Alice喜欢的体裁中,相似度为0/1

                    2.计算相关关键词的相似度或重叠度。典型相似度度量方法会用到Dice系数,它比较适合多值特征集合。

Dice计算bibj相似度的公式为:2|keywords(bi)keywords(bj)|/(|keywords(bi)|+|keywords(bj)|)

 

向量空间模型和TF-IDF

基于内容推荐的标准方法不是去维护一列元信息的特征,而是使用一列出现在文档中的相关关键词。

主要思想:能够从文档内容本身或没有限制的文字描述中生成这样的列表。

简单布尔方法:将出现在所有文档的所有词语设为一个列表,然后用一个布尔型向量描述每个文档,1表示出现,0表示没有出现。如果用户记录用一个相似的列表描述(1表示感兴趣),计算兴趣和文档的重合程度就可以找到匹配的文档。缺点:假如文档过长就会重合频率高,则倾向于推荐长文档。

TF-IDF:解决简单布尔方法缺陷。代表词频和反文档频率。文本文档可以通过TF-IDF转换成多位欧几里得空间中的向量。空间维度(词(term)/标记(token))对应文档中出现的关键词,给定文档在每维(每个词)的坐标由两个子量(词频和反文档频率)的乘积得出。

词频描述某个词在一篇文档中出现的频繁程度(假设重要的词语出现得更多)。必须将文档长度的某种归一化:将词出现的实际次数/文档中其他关键词出现的最多次数。

例如:找出文档j中关键词i的归一化词频值TFi,j)。设freq(i,j)ij中出现的绝对频率。给定关键词i,Otherkeywordsi,j)表示其他关键词集合。

最大频率maxOthers(i,j)计算为max(freq(i,j)),z∈Otherkeywords(i,j)

TF(i,j)=freq(i,j)/maxOthers(i,j)  (3.2)

反文档频率是组合了词频后的第二个衡量值,旨在降低所有文档中几乎都会出现的关键词的权重。

思想:常见词语对区分文档没用,应给仅出现在某些文档中的词更高的权值。

N为所有可推荐文档的数量,n(i)N关键词i出现过文档的数量。

i的反文档频率为:IDF(i)=log(N/n(i))  (3.3)

 

文档j中的关键词i组合TF-IDF权值可以计算为这两个子量的乘积:TF-IDF(i,j)=TF(i,j)*IDF(i)  (3.4)

 

向量空间模型的改进及局限

使得TF-IDF向量紧凑并删除不相干的信息。

1.停用词(a,the)和词干还原或合并go,went,stem,stemming)(英语)

缺点:1.词干还原增加匹配不相关文档的风险。

         2.技术文档的缩略语或文本具有双关语。

2.精简规模。仅用n个信息量最大的词语来减少文档描述的规模。

缺点:1.增加模型复杂度。

             2.这种基于学习的方法可能倾向于过拟合描述训练数据的样本。

可以用外部词典只是来删除该领域不相关的词语。

3.短语。比单词更能描述文本。(查找人工定义的列表或采用统计分析技术来识别短语)

4.局限。没有考虑到关键词所处的上下文。(故前提是这篇文档中的词通常适合刻画文档,而很少在文档中出现相反语境,例如:本菜单不会有素食者喜欢的事物。可能素食者检索时就会搜到这家餐厅)

 

基于内容相似度检索

最近邻

估计用户对某文档的兴趣程度。查一下用户过去是否喜欢相似的文档,需要两类信息:1.用户对以前物品喜欢/不喜欢"的记录。2.一个标准衡量两个文档的相似度。一般用余弦相似度方法。

k最近邻方法(kNN)用于用户短期兴趣规模)

优点:1.相对易于实现。2.快速适应新近变化。3.只要有较少评分数据就能够得到一定的推荐质量。

缺点:纯粹kNN方法比其他更复杂技术的预测精准度更低。

相关性反馈——Rocchio方法

 

主要思想:首先将评分文档划分为两组:D+D-,分别对应喜欢(感兴趣/相关)和不喜欢的文档,并计算这些分类的初始(平均)向量。这些初始向量也可以被看作是相关和不相关文档聚类的重心。当前查询词Qi像文档一样表示为多维单词向量,然后重复地

 

 

 

posted @ 2019-11-03 14:35  鹤花之歌  阅读(235)  评论(0编辑  收藏  举报