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

基本概念算法

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

基于知识:函数

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

哪一种领域知识可以表示成知识库?学习

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

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

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

哪一种交互方式可以用于交互式推荐系统?orm

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

混合推荐:

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

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

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

推荐系统的解释

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

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

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

评估推荐系统:

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

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

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

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

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

数据稀疏和冷启动问题

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

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

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

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

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

1、协同过滤:用户是在隐式地与其余人相互协做。

用户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 预测器

 

 

 

 

 

 

 

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

 

 

2、基于内容的推荐

基于内容

核心:可以获得物品的描述和这些特征的重要记录。

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

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

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

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

 

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

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

 

内容表示和类似度

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

 

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

方法不一: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像文档同样表示为多维单词向量,而后重复地

相关文章
相关标签/搜索