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算法流程为:

 

       

       

 

 

 

 

 

 

 

 

posted @ 2018-10-30 10:38  hotMemo  阅读(198)  评论(0编辑  收藏  举报