推荐系统是解决信息过载的工具,根植于信息检索和信息过滤。网络
推荐系统一般会用到有关当前用户和有效物品的额外信息,基于约束的推荐(分辨率、重量、价格),喜欢不喜欢,评分高低,价格高低。工具
设计对话时,要考虑那些个性化因素才能确保准确得到用户的偏好信息?对象
现有评估技术的局限是什么?尤为是在推荐系统的会话性或商业价值方面。
主要思想:利用假定用户品味的“传递性”,并由此加强额外信息矩阵。
扩展激活的特殊图搜索方法高效地分析由评分矩阵转化为用户和物品的双向图。
缺省投票是处理稀疏评分数据的技术。给那些只有一两个用户评分的物品赋以缺省值,就像一种缓冲机制减小那些个别巧合因素对类似度的影响。
冷启动问题是稀疏问题的一个特例:如何向没给任何物品评分的新用户推荐?如何处理从未被评过度或购买过的物品?均可以利用额外的外部信息解决。
用户A和用户B过去有着相同的偏好,那么能够用如今A的偏好预测将来B的偏好。
基于用户的最近邻推荐:给定一个评分数据集合当前活跃用户做为输入,找出和当前用户过于有类似偏好的其余用户(对等用户/最近邻用户)。对当前用户没有见过的物品p,利用其近邻对p的评分计算预测值。
前提:若是用户过去有类似的偏好,那么他们将来也会有类似的偏好,用户偏好不会随时间而变化。
Pearson相关系数(强负相关-1~强正相关+1),Pearson方法考虑到了用户评分标准不一样的事实(有人爱打高分),但仍然能够发现评分值之间至关明显的线性相关性。用户a、b的类似度:sim(a,b) (2.1)
最初概念(inverse document frequency)反文档频率。
Pearson不能解决,可是方差权重因子能够解决高方差评分值的物品。
样本扩展指强调那些接近+1和-1的值,对原始数值乘以一个常量p来调整近邻的权值。
下降近邻集合规模的方法:为用户类似度定义一个具体的最小阈值,或者将规模大小限制为一个固定值,并且只考虑k个最近邻。(问题:类似度阈值太高,近邻规模就会很小,则不少物品没法预测;类似度阈值太高,近邻规模就会很小)
基于物品的最近邻推荐:很是适合作线下预处理,在评分矩阵很是大的状况下也能作到实时计算推荐。
主要思想:利用物品间的类似度,而不是用户间的类似度来计算预测值。
余弦类似度度量:用两个n维向量之间的夹角来测算类似度。(用于信息检索和文本挖掘,比较两份文档)
类似度值介于0~1,改进后像Pearson方法同样,在评分值中减去平均值。则能够在原始的评分数据集上用评分值相对于平均值的误差取代原始值。
二次采样:随机选取数据的子集,或者忽略那些仅有很是少许评分或仅包含很是热门物品的用户记录。
协同推荐技术通常分为两类:基于记忆(传统,原始评分保存在内存中,直接生成结果。)和基于模型(离线处理原始数据,运行时预计算或“学习过”的模型就能预测)
简单的检索方法没法检索同义词,SVD将高度相关且一块儿出现过的词语做为单独因子,把一般很大的文档向量矩阵拆解为更小阶的近似矩阵。
主成分分析(Eigentaste)。主成分分析(PCA)对评分数据预处理,过滤得出数据中最重要的方面,以解释大多数变量。
是一种在大规模交易中识别相似关联规则模式的通用技术。例如买尿布就有可能买奶粉。
用几率方法实现协同过滤,将预测问题看作分类问题,将一个对象分配给几个事先定义好的类别的任务。分类任务能够被当作是从训练示例中学习映射函数(分类模型)的问题。
贝叶斯分类器是数据挖掘领域用到的一种标准技术。计算用户给定的每一个可能的评分值的条件几率,而后选择一个最大几率值得评分做为预测值。计算预测某物品评分为1的几率,则必须计算条件几率P(某物品=1|X),X是其余评分(a=2 b=3.....)
依赖几率模型最经常使用方法基于的思想是将类似的用户组成一个聚类。
贝叶斯分类方法的优点:数据中的个别噪声点被平均化,不相关的属性对计算后验几率只有不多或没有影响。贝叶斯网络没有过拟合模型的强烈倾向。还适用于不完整的数据。
====================================================================
推荐系统只要两类信息:物品特征的描述和描述了用户(历史)兴趣的用户记录(喜好物品的特色等),就能完成推荐任务(包括肯定最能匹配用户喜好的物品)。这个过程被称为基于内容的推荐。
关注的算法侧重于推荐文本描述的物品,并能自动“学习”用户的记录。
描述物品目录最简单的方法就是维护每一个物品特征的详细列表(属性集/特征集/物品记录),推荐要作的就是将物品特征和用户偏好匹配起来。
工做原理:评估用户还没看到的物品与当前用户过去喜欢的物品的类似程度。
方法不一:1.给定一本图书B,能够检查B的体裁是否在Alice喜欢的体裁中,类似度为0/1。
2.计算相关关键词的类似度或重叠度。典型类似度度量方法会用到Dice系数,它比较适合多值特征集合。
Dice计算bi和bj类似度的公式为:2|keywords(bi)∩keywords(bj)|/(|keywords(bi)|+|keywords(bj)|)
基于内容推荐的标准方法不是去维护一列“元信息”的特征,而是使用一列出如今文档中的相关关键词。
主要思想:可以从文档内容自己或没有限制的文字描述中生成这样的列表。
简单布尔方法:将出如今全部文档的全部词语设为一个列表,而后用一个布尔型向量描述每一个文档,1表示出现,0表示没有出现。若是用户记录用一个类似的列表描述(1表示感兴趣),计算兴趣和文档的重合程度就能够找到匹配的文档。缺点:假如文档过长就会重合频率高,则倾向于推荐长文档。
TF-IDF:解决简单布尔方法缺陷。表明词频和反文档频率。文本文档能够经过TF-IDF转换成多位欧几里得空间中的向量。空间维度(词(term)/标记(token))对应文档中出现的关键词,给定文档在每维(每一个词)的坐标由两个子量(词频和反文档频率)的乘积得出。
词频:描述某个词在一篇文档中出现的频繁程度(假设重要的词语出现得更多)。必须将文档长度的某种归一化:将词出现的实际次数/文档中其余关键词出现的最屡次数。
例如:找出文档j中关键词i的归一化词频值TF(i,j)。设freq(i,j)是i在j中出现的绝对频率。给定关键词i,令Otherkeywords(i,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)
1.停用词(a,the)和词干还原或合并(go,went,stem,stemming)(英语)
2.精简规模。仅用n个信息量最大的词语来减小文档描述的规模。
3.短语。比单词更能描述文本。(查找人工定义的列表或采用统计分析技术来识别短语)
4.局限。没有考虑到关键词所处的上下文。(故前提是这篇文档中的词一般适合刻画文档,而不多在文档中出现相反语境,例如:本菜单不会有素食者喜欢的事物。可能素食者检索时就会搜到这家餐厅)
估计用户对某文档的兴趣程度。查一下用户过去是否喜欢类似的文档,须要两类信息:1.用户对之前物品“喜欢/不喜欢"的记录。2.一个标准衡量两个文档的类似度。通常用余弦类似度方法。
优势:1.相对易于实现。2.快速适应新近变化。3.只要有较少评分数据就可以获得必定的推荐质量。
主要思想:首先将评分文档划分为两组:D+和D-,分别对应喜欢(感兴趣/相关)和不喜欢的文档,并计算这些分类的初始(平均)向量。这些初始向量也能够被看做是相关和不相关文档聚类的重心。当前查询词Qi像文档同样表示为多维单词向量,而后重复地