当前位置: 首页 > 专利查询>山东大学专利>正文

一种基于并行item-based协同过滤算法的微博关注推荐方法技术

技术编号:13878422 阅读:97 留言:0更新日期:2016-10-22 18:28
本发明专利技术涉及一种基于并行item‑based协同过滤算法的微博关注推荐方法,首先,获取微博用户互动行为数据及微博用户关注行为数据;其次,从这些数据中提取出微博用户互动行为偏好数据及微博用户关注行为偏好数据,分别存储在HDFS上;再次,采用Hadoop的MapReduce框架与HDFS架构,对item‑based协同过滤算法进行并行化设计,并对上述提取出的微博用户互动行为偏好数据及微博用户关注行为偏好数据的进行挖掘分析,找出和用户已经关注过的项目最相似的项目,并过滤掉用户已经关注的项目,将其推荐给目标用户。本发明专利技术解决了在非传统场景下item‑based协同过滤算法的应用,不再依赖于显示的评分数据。提高了推荐的个性化。

【技术实现步骤摘要】

本专利技术涉及一种基于并行item-based协同过滤算法的微博关注推荐方法,属于推荐系统、数据挖掘

技术介绍
随着互联网的普及和社交网络的快速发展,微博已经成为最受欢迎的社交应用之一。在信息过载的时代,用户很难从海量信息中找到感兴趣的关注对象(可以是人、机构或者群组)。因此,抓住用户的兴趣点并有针对性地向用户推荐潜在感兴趣的关注对象是一个至关重要的问题。协同过滤算法是在个性化推荐系统中应用最广泛的算法。其中,基于项目的协同过滤算法的基本思想是可以根据用户已知的确定性偏好来找到此用户相关的喜好。传统协同过滤算法更多用于推荐电影、商品等项目,然而在微博系统中,项目不再是普通的物品而是人、机构或者群体;历史行为数据不再是直接能表现用户倾向的显示评分数据,而是用户转发、评论、好友关系等隐式数据。因此,如何将微博隐式数据转化为用户偏好也是本专利技术所考虑的问题。目前,传统的微博关注推荐更倾向于向用户推荐粉丝众多的大V账号或者根据“朋友的朋友”进行推荐。然而,这些推荐关注对象虽然有较好的流行性,但是却没有考虑用户的个人偏好,因此缺乏个性化。随着微博数据量的急剧增长,在利用item-based协同过滤算法计算项目之间的相似性和进行预测的时候,单机集中式计算已经不能满足推荐系统对于推荐效率的要求。
技术实现思路
针对现有技术的不足,本专利技术公开了一种基于并行item-based协同过滤算法的微博关注推荐方法;首先,获取微博用户互动行为数据及微博用户关注行为数据;其次,从这些数据中提取出微博用户互动行为偏好数据及微博用户关注行为偏好数据,分别存储在HDFS上;再次,采用Hadoop的MapReduce框架与HDFS架构,对item-based协同过滤算法进行并行化设计,并对上述提取出的微博用户互动行为偏好数据及微博用户关注行为偏好数据的进行挖掘分析,找出和用户已经关注过的项目最相似的项目,并过滤掉用户已经关注的项目,将其推荐给目标用户。术语解释1、item-based协同过滤算法,也称基于项目或基于物品的协同过滤算法。算法思想是给用户推荐那些和他们之前喜欢的项目相似的项目。该算法基于以下假设:项目A和项目B具有很大的相似度是因为喜欢项目A的用户大都也喜欢项目B。因此,可以通过分析用户的行为记录来计算项目之间的相似度。2、MapReduce,是一种并行编程模式,包括Map阶段和Reduce阶段。Map阶段主要实现将切片的数据并行化处理,而Reduce阶段实现将Map阶段的结果进行汇总,整个过程中输入输出均以<key,value>的形式进行计算。数据传输形式如下:Map阶段:<K1,V1>→list<K2,V2>Reduce阶段:<K2,list(V2)>→list<K3,V3>MapReduce的输入是经过分割的HDFS文件块的<K1,V1>键值对,其中,K1为数据偏离原文件首行的数值;V1是Text类型,是该行的文本内容;Map阶段根据<K1,V1>进行相关计算,输出多个<K2,V2>,经过合并和排序,将相同key下的所有value进行相关处理后发送到Reduce阶段,输出最后的<K3,V3>到HDFS上。3、HDFS,是指分布式文件系统。采用主从(Master/Slave)结构模型,一个HDFS集群是由一个NameNode和若干个DataNode组成的。文件被分成若干个数据块,存放在一组DataNode上。NameNode执行文件系统的命名空间操作,DataNode负责处理文件系统客户端的文件读写请求,并在DataNode的统一调动下进行数据块的创建、删除和复制工作。本专利技术的技术方案为:一种基于并行item-based协同过滤算法的微博关注推荐方法,具体步骤包括:(1)获取微博用户互动行为数据及微博用户关注行为数据,微博用户互动行为数据包括用户ui、项目Ij、转发次数retwwetj、提到次数@j和评论次数commentj,微博用户关注行为数据包括用户ui、项目Ij;(2)从步骤(1)获取的微博用户互动行为数据及微博用户关注行为数据中提取用户偏好;步骤(2)将隐式反馈转化成用户偏好的目的是从用户的行为特征中发现其中隐藏的偏好信息,并基于此进行推荐。①将步骤(1)获取的微博用户互动行为数据转换为微博用户互动行为偏好数据;微博用户互动行为偏好数据包括用户ui、项目Ij、P(uiIj),P(uiIj)是指用户ui对项目Ij的偏好值,求取P(uiIj)的公式如式(I)所示:P(uiIj)=αm(uiIj)+βc(uiIj)+χr(uiIj) (I)式(I)中,α+β+χ=1,m(uiIj)是用户ui对项目Ij提到次数与用户ui提到总次数的比值,c(uiIj)是用户ui对项目Ij评论次数与用户ui评论行为总次数的比值,r(uiIj)是用户ui对项目Ij转发次数与用户ui转发行为总次数的比值;②将步骤(1)获取的微博用户关注行为数据转换为微博用户关注行为偏好数据,微博用户关注行为偏好数据包括用户ui、项目Ij、用户ui与项目Ij之间的偏好值,若用户ui关注项目Ij,用户ui与项目Ij之间的偏好值为1.0,否则,用户ui与项目Ij之间的偏好值为0.0;③将步骤①及步骤②得到的数据分别存储在HDFS上;(3)利用并行item-based协同过滤算法对目标用户产生推荐:④获取用户矩阵:以步骤③存在HDFS上的文件为输入;输入为<offset,(ui,Ij,pij)>,offset是文件位置偏移量,(ui,Ij,pij)是文件中的文本行,ui表示用户、Ij表示项目和pij表示偏好值;对于微博用户互动行为偏好数据,pij=P(uiIj);对于微博用户关注行为偏好数据,pij为1.0或者0.0;Map阶段,用户ui为key,(Ij,pij)为value,输出<ui,(Ij,pij)>的键值对;Reduce阶段,将相同key值的value进行聚合,形成<ui,list(Ij,pij)>的键值对;⑤构建共现矩阵并求出项目相似度A、对于微博用户互动行为偏好数据,项目相似度的计算公式如式(II)、式(III)所示:dotIm×In=Σi=1UPuiIm×PuiIn---(II)]]>SimiIm×In=11+normsIm-2×dotIm×In+normsIn---(III)]]>式(II)、式(III)中,Im、In分别是指项目Im、项目In,ui是指对项目Im、项目In都有过互动行为的用户,U是指对项目Im、项目In都有过互动行为的用户总数,PuiIm代表用户ui对项目Im的偏好值,PuiIn代表用户ui对项目In的偏好值,dotIm×In是指对项目Im、项目In都有过互动行为的所有用户的偏好值乘积的和;normsIm是指对应项目Im的所有偏好值的平方和,normsIn是指对应项目In的所有偏好值的平方和,SimiIm×In是指项目Im与项目In的相似度;B、对于微博用户关注行为偏好数据,项目相似度的计算公式如式(I本文档来自技高网...

【技术保护点】
一种基于并行item‑based协同过滤算法的微博关注推荐方法,其特征在于,具体步骤包括:(1)获取微博用户互动行为数据及微博用户关注行为数据,微博用户互动行为数据包括用户ui、项目Ij、转发次数retwwetj、提到次数@j和评论次数commentj,微博用户关注行为数据包括:用户ui、项目Ij;(2)从步骤(1)获取的微博用户互动行为数据及微博用户关注行为数据中提取用户偏好;①将步骤(1)获取的微博用户互动行为数据转换为微博用户互动行为偏好数据;微博用户互动行为偏好数据包括用户ui、项目Ij、P(uiIj),P(uiIj)是指用户ui对项目Ij的偏好值,求取P(uiIj)的公式如式(Ⅰ)所示:P(uiIj)=αm(uiIj)+βc(uiIj)+χr(uiIj)   (Ⅰ)式(Ⅰ)中,α+β+χ=1,m(uiIj)是用户ui对项目Ij提到次数与用户ui提到总次数的比值,c(uiIj)是用户ui对项目Ij评论次数与用户ui评论行为总次数的比值,r(uiIj)是用户ui对项目Ij转发次数与用户ui转发行为总次数的比值;②将步骤(1)获取的微博用户关注行为数据转换为微博用户关注行为偏好数据,微博用户关注行为偏好数据包括用户ui、项目Ij、用户ui与项目Ij之间的偏好值,若用户ui关注项目Ij,用户ui与项目Ij之间的偏好值为1.0,否则,用户ui与项目Ij之间的偏好值为0.0;③将步骤①及步骤②得到的数据分别存储在HDFS上;(3)利用并行item‑based协同过滤算法对目标用户产生推荐:④获取用户矩阵:以步骤③存在HDFS上的文件为输入;输入为<offset,(ui,Ij,pij)>,offset是文件位置偏移量,(ui,Ij,pij)是文件中的文本行,ui表示用户、Ij表示项目和pij表示偏好值;对于微博用户互动行为偏好数据,pij=P(uiIj);对于微博用户关注行为偏好数据,pij为1.0或者0.0;Map阶段,用户ui为key,(Ij,pij)为value,输出<ui,(Ij,pij)>的键值对;Reduce阶段,将相同key值的value进行聚合,形成<ui,list(Ij,pij)>的键值对;⑤构建共现矩阵并求出项目相似度A、对于微博用户互动行为偏好数据,项目相似度的计算公式如式(II)、式(Ⅲ)所示:dotIm×In=Σi=1UPuiIm×PuiIn---(II)]]>SimiIm×In=11+normsIm-2×dotIm×In+normsIn---(III)]]>式(II)、式(Ⅲ)中,Im、In分别是指项目Im、项目In,ui是指对项目Im、项目In都有过互动行为的用户,U是指对项目Im、项目In都有过互动行为的用户总数,PuiIm代表用户ui对项目Im的偏好值,PuiIn代表用户ui对项目In的偏好值,dotIm×In是指对项目Im、项目In都有过互动行为的所有用户的偏好值乘积的和;normsIm是指对应项目Im的所有偏好值的平方和,normsIn是指对应项目In的所有偏好值的平方和,SimiIm×In是指项目Im与项目In的相似度;B、对于微博用户关注行为偏好数据,项目相似度的计算公式如式(IV)所示:SimiIo×Ip=|N(Io)∩N(Ip)||N(Io)||N(Ip)|---(IV)]]>式(IV)中,|N(Io)|是关注项目Io的用户数,|N(Ip)|是关注项目Ip的用户数,|N(Io)∩N(Ip)|是同时关注项目Io和项目Ip的用户数;⑥生成项目相似度矩阵将步骤(2)求取的微博用户互动行为偏好数据的项目相似度及微博用户关注行为偏好数据的项目相似度作为输入,即输入为<(Ii,Ij),SimiIi×Ij>,以某一项目为key,与该项目相似的项目发送到同一个reduce节点,输出为<Ii,list(Ij:SimiIi×Ij))>,得到互动相似度列表矩阵和关注相似度列表矩阵,并存储在可共享的存储平台上;⑦生成用户‑项目相似度矩阵将步骤④求取的用户矩阵和步骤⑥求得的项目相似度矩阵进行拼接,Map阶段根据项目进行聚合,将与该项目互动过的用户、用户对该项目的偏好以及该项目的邻近项目聚合在一起,输出形式为<u,(list(Ij:SimiIi×Ij))>,u为目标用户,Ii为该用户已经关注的一个项目,Ij为待推荐给用户的项目,SimiIi×Ij是项目Ii和项目Ij之间的相似度;⑧输出推荐结果将步骤⑦中按照用户互动行为数据和用户关注行为数据生成的用户‑项目相似度矩阵按照项目相似度从高到低排序;根据用户互动行为数据得到前N个项目,生成TOPN互动推荐数据A;根据用户...

【技术特征摘要】
1.一种基于并行item-based协同过滤算法的微博关注推荐方法,其特征在于,具体步骤包括:(1)获取微博用户互动行为数据及微博用户关注行为数据,微博用户互动行为数据包括用户ui、项目Ij、转发次数retwwetj、提到次数@j和评论次数commentj,微博用户关注行为数据包括:用户ui、项目Ij;(2)从步骤(1)获取的微博用户互动行为数据及微博用户关注行为数据中提取用户偏好;①将步骤(1)获取的微博用户互动行为数据转换为微博用户互动行为偏好数据;微博用户互动行为偏好数据包括用户ui、项目Ij、P(uiIj),P(uiIj)是指用户ui对项目Ij的偏好值,求取P(uiIj)的公式如式(Ⅰ)所示:P(uiIj)=αm(uiIj)+βc(uiIj)+χr(uiIj) (Ⅰ)式(Ⅰ)中,α+β+χ=1,m(uiIj)是用户ui对项目Ij提到次数与用户ui提到总次数的比值,c(uiIj)是用户ui对项目Ij评论次数与用户ui评论行为总次数的比值,r(uiIj)是用户ui对项目Ij转发次数与用户ui转发行为总次数的比值;②将步骤(1)获取的微博用户关注行为数据转换为微博用户关注行为偏好数据,微博用户关注行为偏好数据包括用户ui、项目Ij、用户ui与项目Ij之间的偏好值,若用户ui关注项目Ij,用户ui与项目Ij之间的偏好值为1.0,否则,用户ui与项目Ij之间的偏好值为0.0;③将步骤①及步骤②得到的数据分别存储在HDFS上;(3)利用并行item-based协同过滤算法对目标用户产生推荐:④获取用户矩阵:以步骤③存在HDFS上的文件为输入;输入为<offset,(ui,Ij,pij)>,offset是文件位置偏移量,(ui,Ij,pij)是文件中的文本行,ui表示用户、Ij表示项目和pij表示偏好值;对于微博用户互动行为偏好数据,pij=P(uiIj);对于微博用户关注行为偏好数据,pij为1.0或者0.0;Map阶段,用户ui为key,(Ij,pij)为value,输出<ui,(Ij,pij)>的键值对;Reduce阶段,将相同key值的value进行聚合,形成<ui,list(Ij,pij)>的键值对;⑤构建共现矩阵并求出项目相似度A、对于微博用户互动行为偏好数据,项目相似度的计算公式如式(II)、式(Ⅲ)所示:dotIm×In=Σi=1UPuiIm×PuiIn---(II)]]>SimiIm×In=11+normsIm-2×dotIm×In+normsIn---(III)]]>式(II)、式(Ⅲ)中,Im、In分别是指项目Im、项目In,ui是指对项...

【专利技术属性】
技术研发人员:袁东风徐秀珊张艳
申请(专利权)人:山东大学
类型:发明
国别省市:山东;37

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1