基于内容的推荐(第二周)

说明:文章为初学者看推荐系统(蒋凡),结合网上资料做的笔记,不保证其正确性。欢迎指正^_

1、  继续记录下svd的一个例子(参考http://blog.sina.com.cn/s/blog_7c76633901019oi8.html,http://blog.csdn.net/abcjennifer/article/details/8131087):

1)  看下图,表示9篇文章中,book,dads……value等词语的出现次数:

2)  可以使用相应的软件(例如matlab)进行svd分解,得到下面的3个小的矩阵(会减小存储量和计算量),其中左奇异向量可以表示词语在文章中出现的次数,右奇异向量表示文章中出现词语的次数,中间的矩阵表示左奇异向量一行和右奇异向量一列重要性。例如下图中:第一个矩阵的第一列中,book的0.15表示对应svd分解前矩阵中在所有文章中共出现2次,0.36对应3次,0.74对应9次,大致呈现出线性的关系;而右奇异向量矩阵中0.35表示对应T1文章svd分解前矩阵中所有词语出现4次,0.49对应5次。

 

3)  对左奇异向量和右奇异向量降维处理(下图中在左奇异向量中取了第2,3列,右奇异向量取了第2,3行),将3维变为2维,得到下图,在实际中可以根据分块,将在相同的块的属性作为一个属性来处理,例如音乐的安静和悲伤在一个块中,我们就认为它们在推荐系统中是很相似的,处理时可认为它们是等效来处理,或者推荐时可以在相似的属性中找出歌曲推荐。在这个例子中stock和macket在同一个块中出现,在检索文档时,可根据这个来进行近义词检索,同时也可通过设置近义词集合来降低存储空间:

 

(注1:MATLAB中“:”的作用matlab : http://jingyan.baidu.com/article/8cdccae99ff546315413cd0f.html

   (注2:基于svd的降维,没有使用考虑到所有的可用信息。另外,svd可能过滤掉一些数据噪声,且可能检测出不同属性的关系)


2、  主成分分析(PCA):对数据进行处理,过滤出“最重要”的数据,已解释大多数变量;

3、  关联规则挖掘:

1)  定义:一种大规模交易中识别类似规则关系模式的通用技术。例子“用户再超市中买了婴儿食品,70%的概率会买尿布”;

2)  关联规则的衡量标准是支持度和可信度:

例如关联规则为a->b时

支持度=包含a和且包含b的数量/总数量;

可信度=包含a和且包含b的数量/包含a的数量;

3)  例子(来源:http://www.cnblogs.com/dolphin0520/archive/2012/10/29/2733356.html),下面有7个用户的购买情况。以“牛肉—>鸡肉”为例,那么同时购买牛肉和鸡肉的顾客比例是3/7,为支持度,而购买牛肉的顾客当中也购买了鸡肉的顾客比例是3/4,为可信度。

4)  下图更直观:

 

5)  上面是物品的关联,下面再举一个用户间的关联,规则为“用户1喜欢听稻香,用户2不喜欢听稻香,则Alice喜欢稻香”,此时,基于可信度和支持度可以用以下公式进行评分(22页):x为用户1喜欢听的歌,用户2不喜欢听的歌,Alice喜欢听的歌的数量;y为用户1喜欢听的歌,用户2不喜欢听的歌的数量;

支持度=x/sum;

可信度=x/y;

然后同时对七里香、匿名的好友等等计算出可信度,支持度,根据公式算出得分即可;

 

4、  基于概率分析的推荐方法

1)  基础知识,一个条件概率的例子,A表示:大熊猫活到15岁,B表示大熊猫活到10岁,则p(A)=0.6,p(B)=0.8,其中该题中p(AB)=p(B):

2)  所用公式(来源:http://blog.sina.com.cn/s/blog_4cb0b54301013f48.html):

3)  实例一个:

 

为了预测物品5的评分为1时的概率,我们必须计算条件概率P(物品5=1|X),X是Alice的其他评分:X=(物品1=1,物品2=3,物品3=3,物品4=2):

a)        P(物品5=1|X)=p(X|物品5=1)*p(物品5=1)/p(X);

b)       P(X|物品5=1)=2/2+1/2+1/2+1/2(分母的2表示物品5=1的数量,分子表示在物品5=1的情况下其他物品的评分与Alice评分相同的数量)

c)        p(物品5=1)=2/4

 

5、  Slope One预测器:

1)     基于物品的评分差异来评分;

2)     公式:

 

3)     看一个实例:

预测方法:平均偏差值((5-3)+(3-4))/2=0.5;(5-2)/1=3

               结果(2*(2+0.5)+1*(5+3))/(2+1)=4.33

 

 

二、基于内容的推荐:

1、基于内容的推荐的思路:某个用户喜欢有特点A的物品,然后将含有特点A的物品推荐给这个用户;

2、两篇文章相似度的衡量可以使用Dice系数,例如文章a,b各有100,200个词,相同的词有50个,则Dice系数=2*(50)/(100+200):

3、TF-IDFtermfrequency–inverse document frequency,词频-反文档频率:

1)简单布尔方法

a)        比较两篇文档是否相似,有个简单的思路就是:首先将可能出现的所有词列出一个表,接着对应表中的词使用一个bool型向量描述每个文档,然后对用户的历史记录也使用一个描述,那么计算该描述和各个文档的重合程度即可找到匹配的文档。

b)       该法缺陷:未考虑词语出现的频率,且该法倾向于推荐长文档

2)TF-IDF方法可以解决简单布尔方法的缺陷:

a)         


b)       TF的计算公式,freq(i,j)表示词i在文章j中出现的次数,maxOthers(i,j)表示除了词i,出现最多的词的数量:

c)        IDF的计算公式(可以屏蔽“的,是,我”这些词,),N表示可推荐文档的数量,n(i)表示N中出现过词i的文档数量:

 

4)  实例(来源:http://www.cnblogs.com/biyeymyhjob/archive/2012/07/17/2595249.html,有修改):

例如利用关键字k1,k2,k3进行文档相似度的对比,此时TF1*IDF1+TF2*IDF2+TF3*IDF3,

假设document1的中k1,k2,k3的数目为50,200,100,出现最多的词为300,总文档数为10000,出现k1,k2,k3的文档数分别为1000,2000,10000。

则TF1=50/300,TF2=200/300,TF3=100/300,

IDF1=lg(10000/1000)=1,IDF2= lg(10000/2000),IDF3=lg(10000/10000)=0

 

5)  IF-IDF的改进方法:

a)        停用词和词干还原:如不计算“a”,“the”这类词,如将“running”转为“run”,“went”转为“go”;

b)       精简规模:仅用n个信息量最大的词来减少文档描述的规模,最优个数根据实验而定,一般来说50太少,300过多。不同领域可以选择不同词;

c)        短语:用短语替换词描述的准确可能更好。例如“United Nations”即联合国,可以人工定义出这些列表;

d)       局限,例如一个读者喜欢素食,然后他喜欢了一篇文章,批判了“肉食”是残忍的,可能因为出现了很多肉食的词语,然后系统推荐了肉食的文章给该读者

 

3、 基于内容内容相似度检索(本节介绍依赖向量空间文档表示模型最为常见的技术):

1)k最近邻(KNN,,k-NearestNeighbor)(来源:http://wenku.baidu.com/link?url=Vhzc6sR04NXDI0HHVRuSMRqXcGlndfs6QPpOgmBpy6ovffsxIVIuHkTdHTB0R1BkXw0qu_Rs9ecO4DKouSV5BgBT9vX8tESboE9T72WALrK):

a)      如想知道A的分类,则需要找出k与A最相近的点,然后统计这k个点的所属分类,选择出分类比例最大的,则将A判断为该类;

b)     例如有一部电影A,打斗为18,接吻为70,那么他属于aciton还是是Romance呢?,我们计算A与下面6部电影的距离,选出最近的k部,然后看这k部是action多还是Romance多,多的即为电影A的类别。

2) 相关性反馈-Rocchio方法(参考:http://blog.csdn.net/sulliy/article/details/6670980):

a)        假定存在一个用户查询,然后我们有一些相关文档和不相关文档,然后通过这些文档来调整这个用户查询;

b)       首先将文档分为两类,Cr表示相关文档集,Cnr表示不相关文档集,其中q0为原始向量,qm为优化后的向量。查询词q0表示为像文档一样的多位单词向量,然后重复的增加相关文档的加权向量,并减去代表不相关文档的加权向量

c)        效果:

d)       我的理解,例如查询词“计算机”q0最开始可能为(0,0,0,0,0),然后搜索计算机返回一个文档“计算机系统”给用户,用户觉得返回得很正确,则该文档“计算机系统”(1,1,0,1)为相关文档,加权后加到查询词向量q0中,若返回的是“那妹子很漂亮研究论文”(1,0,1,0)文档,用户觉得这是扯淡,即该文档为不相关文档,q0减去该文档加权后的向量;

 

4)  基于概率模型的方法:

下次继续

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值