some thoughts of KASR: A Keyword-Aware Service Recommendation Method on MapReduce for Big Data Applications
这个文章写的是关于个性化推荐,在一个服务上不是推荐与当前用户相似的用户总的pref=sim*rating of previous最高的的服务内容,而是选择当前用户特别在意服务的哪一方面,然后再进行推荐
基本符号:
具体步骤:
step1:通过关键词感知技术获取用户的爱好
在获取当前用户的爱好:当前用户自己给的,从keyword-candidate list选择自己的爱好,并且可以选择爱好的重要程度1 general,3 important ,5 very important
在获取先前用户的爱好:是从先前用户之前的评论中提取,并且规范化成一个集合
获取先前用户爱好的步骤:预处理,将爬到的文件中不重要的html标签什么的去除
提取关键字和其出现的次数,次数就当作这个关键字的weight,就是重要程度
step2:相似度计算
在相似度计算之前,将与当前用户在爱好的集合上没有交集的先前用户剔除
相似度计算有两种方式:
1)大概相似度计算
使用Jaccard coefficient算法
2)精确相似度计算
使用cos-based公式计算相似度 like VSM
//当前用户和先前用户的爱好集都会转换成多为权值向量,使用到先前出现次数决定的weight
所以这里的关键字都是在keyword-candidate list,不然向量的维数不确定
确定当前用户的关键字的重要程度的向量使用的AHP 即Analytic Hierarchy Process模型计算
确定先前用户的关键字重要程度向量使用的是TF-IDF即 the term frequency/inverse document frequency 词频-逆向文件频率
TF:
Npki为在先前用户a所有评论所转换成的爱好集合中出现的次数
g是为先前用户a爱好集合的数量
TF表明该关键字在用户a所有评论中整体提及爱好的比重
IDF:
|R'|表示用户a评论的总数
分母表示关键字pki有出现的评论数
常用字html tag等,分母越高,就降低了常用字的权重
所以权值向量和相似度计算公式为:
最后整个精确相似度的计算流程为:
整个AKSR算法流程为: