一种信息推荐方法.pdf

上传人:e2 文档编号:6179898 上传时间:2019-05-17 格式:PDF 页数:18 大小:1.71MB
返回 下载 相关 举报
摘要
申请专利号:

CN201310726417.1

申请日:

2013.12.25

公开号:

CN103678672A

公开日:

2014.03.26

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||专利申请权的转移IPC(主分类):G06F 17/30登记生效日:20170421变更事项:申请人变更前权利人:北京中兴通软件科技股份有限公司变更后权利人:北京中兴通德网络科技有限公司变更事项:地址变更前权利人:100085 北京市海淀区上地三街9号C座C1007变更后权利人:100094 北京市海淀区西北旺东路10号院东区15号楼B座四层404|||实质审查的生效IPC(主分类):G06F 17/30申请日:20131225|||公开

IPC分类号:

G06F17/30

主分类号:

G06F17/30

申请人:

北京中兴通软件科技股份有限公司

发明人:

程嘉薪; 李丽丽; 雷翻翻; 马雪峰

地址:

100085 北京市海淀区上地三街9号C座C1007

优先权:

专利代理机构:

北京超凡志成知识产权代理事务所(普通合伙) 11371

代理人:

吴开磊

PDF下载: PDF下载
内容摘要

本发明涉及信息技术领域,特别涉及一种信息推荐方法,包括:接收到访问请求时,提取与访问请求相对应的当前用户的特征信息,根据特征信息确定当前用户是否为新用户;确定当前用户为新用户时,根据当前用户的历史访问记录,按照点击率排名向当前用户进行热点推荐;确定当前用户为老用户时,对预先存储的用户信息及项目信息进行聚类,生成用户聚类;在用户聚类中,生成基于项目内容的第一推荐列表,还生成基于用户-项目网络的协同过滤的第二推荐列表;根据第一推荐列表及第二推荐列表生成混合推荐列表;根据混合推荐列表向当前用户进行信息推荐。该信息推荐方法形成的推荐信息的实时性提高,精确性及关联性提高,能够有效为用户进行信息推荐。

权利要求书

权利要求书
1.  一种信息推荐方法,其特征在于,包括:
接收到访问请求时,提取与所述访问请求相对应的当前用户的特征信息,根据所述特征信息确定所述当前用户是否为新用户;
确定所述当前用户为新用户时,根据所述当前用户的历史访问记录,按照点击率排名向所述当前用户进行热点推荐;
确定所述当前用户为老用户时,对预先存储的用户信息及项目信息进行聚类,生成用户聚类;在所述用户聚类中,生成基于项目内容的第一推荐列表,还生成基于用户-项目网络的协同过滤的第二推荐列表;根据所述第一推荐列表及所述第二推荐列表生成混合推荐列表;根据所述混合推荐列表向当前用户进行信息推荐。

2.  根据权利要求1所述的方法,其特征在于,所述根据所述特征信息确定所述当前用户是否为新用户,包括:
所述特征信息为发出所述访问请求的当前用户的已参与项目数目;
将提取的所述已参与项目数目与预设的项目数目阈值进行比较,若所述已参与项目数目不大于所述项目数目阈值,则确定所述当前用户为新用户,否则确定所述当前用户为老用户。

3.  根据权利要求1所述的方法,其特征在于,所述对预先存储的用户信息及项目信息进行聚类,生成用户聚类,包括:
根据预先存储的用户信息及项目信息,构建用户偏好向量;
基于Hadoop技术,采用MapReduce编程模型下的K-Means算法对构建的所有所述用户偏好向量进行聚类操作,生成用户聚类。

4.  根据权利要求3所述的方法,其特征在于,所述根据预先存储的用户信息及项目信息,构建用户偏好向量,包括:
所述项目信息对应设置有项目类别标签,根据所述项目类别标签确定所述用户偏好向量的分量及维度;
其中,所述用户偏好向量的数学表达式为:
u={(t1,w1u),(t2,w2u),...,(tk,wku)};]]>
所述用户偏好向量的分量的前部为项目类别标签,后部为分量权重;所述用户偏好向量的维度k由项目类别数目确定;
采用TF-IDF算法确定所述用户偏好向量的分量权重。

5.  根据权利要求4所述的方法,其特征在于,所述采用TF-IDF算法确定所述用户偏好向量的分量权重,包括:
存储的所有所述项目信息组成项目集,所述项目集中的项目信息的项目数目记为N;
所述项目集中设置有项目类别标签ti的项目信息的项目数目为ni;
所述项目集中,将项目类别标签ti在任意用户u已参与项目信息中出现的次数记为fiu;
则,项目类别标签ti在所述用户u已参与项目集中出现的词频为TFiu=fiumaxzfzu;]]>
其中,maxzfzu是指所述用户u已参与项目集中项目类别标签出现的最大次数;
项目类别标签ti在所述项目集中出现的逆频为
根据所述项目类别标签ti在所述用户u已参与项目集中出现的词频及在所述项目集中出现的逆频,确定项目类别标签ti在与用户u相关的用户偏好向量中的分量权重为:
wiu=fiumaxzfzu·logNni.]]>

6.  根据权利要求3所述的方法,其特征在于,所述基于Hadoop技术,采用MapReduce编程模型下的K-Means算法对构建的所有所述用户偏好向量进行聚类操作,生成用户聚类,包括:
所有所述用户偏好向量组成用户偏好向量集合;
从所述用户偏好向量集合中随机选取K个用户偏好向量分别作为K个类的初始中心;
利用Split过程按预设规则对所述用户偏好向量集合中的所有用户偏好向量进行分组;
利用Map过程,按照所述Split过程分组的结果,计算所述用户偏好向量集合中每个所述用户偏好向量分别到K个所述初始中心的中心距离,并根据最短中心距离原则,形成K个聚类,同时确定K个所述聚类的用户中心;
利用Shuffle过程,对K个所述聚类进行洗牌归类;
利用Reduce过程,重新计算所述洗牌归类后的K个聚类的聚类中心;
将重新计算得到的所述聚类中心分别对应地与所述用户中心进行比较;
若重新计算得到的所述聚类中心分别对应地与所述用户中心相等,则完成聚类操作,输出聚类结果;否则,按预设规则重新计算聚类用户中心,直至聚类用户中心稳定。

7.  根据权利要求3所述的方法,其特征在于,所述在所述用户聚类中,生成基于项目内容的第一推荐列表,包括:
在当前用户所属的用户聚类中,构建项目属性向量;
其中,所述项目属性向量的数学表达式为:
i={(t1,w1i),(t2,w2i),...,(tk,wki)};]]>
所述项目属性向量的分量的前部为项目信息的项目类别标签,后部为分量权重;所述项目属性向量的维度k由项目类别数目确定;所述项目属性向量的分量的权重中的i取值为1或0;
计算当前用户的用户偏好向量与所述项目属性向量间的相似度;
根据所述相似度的计算结果,选取当前用户的用户偏好向量相似度值满足预设阈值的多个项目作为当前用户的第一推荐列表。

8.  根据权利要求3所述的方法,其特征在于,在所述用户聚类中,还生成基于用户-项目网络的协同过滤的第二推荐列表,包括:
在所述用户聚类中,构建项目网络;
基于所述项目网络构建用户网络;
在所述用户网络中,按预设规则确定当前用户的最近邻居集;
根据所述当前用户的已参与项目信息集合及所述最近邻居集的已参与项目信息集合,形成候选推荐项目集合;
计算所述候选推荐项目集合中的项目信息对于当前用户的推荐度;
根据所述推荐度的计算结果,从所述候选推荐项目集合中
选取项目信息形成第二推荐列表。

9.  根据权利要求8所述的方法,其特征在于,所述在所述用户聚类中,构建项目网络,包括:
在所述用户聚类中,所有项目信息形成项目集I,根据任意两个项目信息之间的边权值,确定边集E;
其中,所述边权值的数学表达式为:
w(i,j)=|UiUj||Ui|+|Uj|;]]>
Ui表示已参与项目i的用户信息的集合,Uj表示已参与项目j的用户信息的集合;
根据所述项目集I及所述边集E,构建初步项目网络;
将所述初步项目网络中,任意两个项目间边权值小于预设的边权阈值的边去掉,形成项目网络G=(I,E)。

10.  根据权利要求9所述的方法,其特征在于,所述基于所述项目网络构建用户网络,包括:
构建用户网络u=(Iu,Eu);
其中,Iu为任意用户u已参与项目的项目信息集合,Eu={(i,j)|(i,j)∈E且i,j∈Iu}为任意用户u已参与的任意两个项目之间的边集,所述E指所述项目网络中的边集E。

11.  根据权利要求10所述的方法,其特征在于,所述在所述用户网络中,按预设规则确定当前用户的最近邻居集,包括:
根据预设的同一项目对关系计算当前用户与任意用户u之间的Jaccard相似性,其中当前用户记为用户a,计算公式为:
sim1(a,u)=|IaIu||IaIu|;]]>
根据预设的相似项目对关系,计算用户a和任意用户u之间的相似项目相似性,计算公式为:

根据预设的相关项目对关系,计算用户a和任意用户u之间的相关项目相似性,计算公式为:

根据所述Jaccard相似性、所述相似项目相似性及所述相关项目相似性的计算结果,确定用户a和任意用户u之间的相似度量值,所述相似度量值的计算公式为:
sim(a,u)=αsim1(a,u)+βsim2(a,u)+γsim3(a,u),其中α+β+γ=1;
根据所述相似度量值的计算确定当前用户的最近邻居集。

12.  根据权利要求11所述的方法,其特征在于,所述根据所述Jaccard相似性、所述相似项目相似性及所述相关项目相似性的计算结果,确定用户a和任意用户u之间的相似度量值,包括:
在所述用户聚类中,除构建项目网络外,还构建用户-项目兴趣度矩阵;
利用所述用户-项目兴趣度矩阵实现所述sim1(a,u)、sim2(a,u)及sim3(a,u);
利用矩阵实现的所述sim1(a,u)、sim2(a,u)及sim3(a,u)确定用户a和任意用户u之间的相似度量值。

13.  根据权利要求11所述的方法,其特征在于,所述同一项目对关系、相似项目对关系、相关项目对关系分别为:
设任意两个用户a和用户u,Iu为用户u已参与项目的项目信息集合,Ia为用户a已参与项目的项目信息集合,i及j分别表示任意项目i及任意项目j;
若i∈Ia,j∈Iu,i,j∈Ia∩Iu,则称i,j为同一项目对;
若i∈Ia/Iu,j∈Iu/Ia,(i,j)∈E,称i,j为用户a和u之间的相似项目对;
若且w(i,j)>θ,称i,j为用户a和用户u之间的相关项目对,其中θ=12[Σ(k,t)∈N(Iu)w(k,t)|N(Iu)|+Σ(k,t)∈N(Ia)w(k,t)|N(Ia)|],]]>且N(Iu)={(k,t)|w(k,t)≤0.01,且k,t∈Iu},|N(Iu)|表示集合N(Iu)的元素个数。

说明书

说明书一种信息推荐方法
技术领域
本发明涉及信息技术领域,具体而言,涉及一种信息推荐方法。
背景技术
随着信息技术的发展,用户可方便快捷地接触到大量信息。但,海量信息及海量用户的同时出现,一方面令用户难以从海量数据信息中发现自己的目标数据,同时也造成大量信息的无人问津,使得信息利用率低;另一方面,用户访问量的增加造成原始日志文件的增加。为了有针对性的向用户提供其所需要的信息,进而出现了用于向用户推荐相关信息的推荐系统及推荐方法。具体地,推荐系统,就是通过建立用户与信息产品之间的二元关系,利用已有的选择过程或相似性关系挖掘每个用户潜在的感兴趣的对象,进而进行个性化推荐,其本质就是信息过滤。
相关技术中的信息推荐方法的推荐形式主要有两种,一种是基于内容的推荐,另一种是基于协同过滤算法的推荐。但,现有的该两种推荐方法均存在着一定局限性。
例如,基于协同过滤算法的推荐方法需通过计算用户或是项目的相似度以识别“最近邻居”,在大数据情况下,计算量的增加直接影响信息推荐的实时性和精确度。而基于内容的推荐则过分依赖信息的特征,使得实现后的推荐不能够很好的表达信息的关联性,进而导致不能够为用户进行有效的信息推荐。
发明内容
本发明的目的在于提供一种信息推荐方法,以解决上述的问题。
在本发明的实施例中提供了一种信息推荐方法,包括:
接收到访问请求时,提取与所述访问请求相对应的当前用户的特征信息,根据所述特征信息确定所述当前用户是否为新用户;
确定所述当前用户为新用户时,根据所述当前用户的历史访问记录,按照点击率排名向所述当前用户进行热点推荐;
确定所述当前用户为老用户时,对预先存储的用户信息及项目信息进行聚类,生成用户聚类;在所述用户聚类中,生成基于项目内容的第一推荐列表,还生成基于用户-项目网络的协同过滤的第二推荐列表;根据所述第一推荐列表及所述第二推荐列表生成混合推荐列表;根据所述混合推荐列表向当前用户进行信息推荐。
本发明上述实施例的信息推荐方法,接收到用户的访问请求,向用户进行信息推荐时,能够根据用户的特征信息将用户分为新用户及老用户,对于新用户进行热点推荐;而向老用户进行信息推荐时,会将系统中存储的大量数据进行聚类,如此能够将海量用户降维成有限的几个聚类,在形成的用户聚类中对用户形成推荐信息,如此能够简化海量数据的计算,保证信息推荐的实时性,而且在形成的聚类中形成面向老用户的推荐信息时,能够基于项目内容生成第一推荐列表及基于用户-项目网络的协同过滤生成第二推荐列表,其中用户-项目网络是指根据用户信息及项目信息形成的信息网络。根据第一推荐列表及第二推荐列表形成混合推荐列表,通过混合推荐列表能够避免基于内容推荐的过于依赖信息特征的缺陷,而且通过混合推荐列表向用户进行信息推荐,保证推荐的信息的精确性,及推荐的信息的关联性,因此通过本发明的信息推荐方法形成的推 荐信息的实时性提高,推荐信息的精确性及关联性提高,保证能够有效为用户进行信息推荐。
附图说明
图1示出了本发明实施例信息推荐方法的流程图;
图2示出了本发明实施例中对预先存储的用户信息及项目信息进行聚类的流程图;
图3示出了本发明实施例中构建用户偏好向量的流程图;
图4示出了本发明实施例中基于Hadoop技术,采用MapReduce编程模型下的K-Means算法对构建的所有用户偏好向量进行聚类操作的流程图;
图5示出了本发明实施例中在用户聚类中生成基于项目内容的第一推荐列表的流程图;
图6示出了本发明实施例中在用户聚类中生成基于用户-项目网络的协同过滤的第二推荐列表的流程图;
图7示出了本发明实施例中在用户聚类中构建项目网络的流程图。
具体实施方式
下面通过具体的实施例子并结合附图对本发明做进一步的详细描述。
本发明实施例提供一种推荐方法,如图1所示,主要处理步骤包括:
步骤A:接收到访问请求时,提取与所述访问请求相对应的当前用户的特征信息,根据所述特征信息确定所述当前用户是否为新用户;
确定所述当前用户为新用户时,执行步骤B:根据所述当前用户的历史访问记录,按照点击率排名向所述当前用户进行热点推荐;
确定所述当前用户为老用户时,执行步骤C:对预先存储的用户信息及项目信息进行聚类,生成用户聚类;在所述用户聚类中,生成基于项目内容的第一推荐列表,还生成基于用户-项目网络的协同过滤的第二推荐列表;根据所述第一推荐列表及所述第二推荐列表生成混合推荐列表;根据所述混合推荐列表向当前用户进行信息推荐。
步骤A中,所述根据所述特征信息确定所述当前用户是否为新用户,包括:
所述特征信息为发出所述访问请求的当前用户的已参与项目数目;将提取的所述已参与项目数目与预设的项目数目阈值进行比较,若所述已参与项目数目不大于所述项目数目阈值,则确定所述当前用户为新用户,否则确定所述当前用户为老用户。
步骤C中,所述对预先存储的用户信息及项目信息进行聚类,生成用户聚类,如图2所示,包括:
步骤C1:根据预先存储的用户信息及项目信息,构建用户偏好向量;
步骤C2:基于Hadoop技术,采用MapReduce编程模型下的K-Means算法对构建的所有所述用户偏好向量进行聚类操作,生成用户聚类。
步骤C1中所述根据预先存储的用户信息及项目信息,构建用户偏好向量,如图3所示,包括:
步骤C11:所述项目信息对应设置有项目类别标签,根据所述项目类别标签确定所述用户偏好向量的分量及维度;
其中,所述用户偏好向量的数学表达式为:
u={(t1,w1u),(t2,w2u),...,(tk,wku)};]]>
所述用户偏好向量的分量的前部为项目类别标签,后部为分量权重;所述用户偏好向量的维度k由项目类别数目确定;
步骤C12:采用TF-IDF算法确定所述用户偏好向量的分量权重。
具体地,步骤C12采用TF-IDF算法确定所述用户偏好向量的分量权重,包括:
存储的所有所述项目信息组成项目集,所述项目集中的项目信息的项目数目记为N;
所述项目集中设置有项目类别标签ti的项目信息的项目数目为ni;
所述项目集中,将项目类别标签ti在任意用户u已参与项目信息中出现的次数记为fiu;
则,项目类别标签ti在所述用户u已参与项目集中出现的词频为
TFiu=fiumaxzfzu;]]>
其中,maxzfzu是指所述用户u已参与项目集中项目类别标签出现的最大次数;
项目类别标签ti在所述项目集中出现的逆频为
根据所述项目类别标签ti在所述用户u已参与项目集中出现的词频及在所述项目集中出现的逆频,确定项目类别标签ti在与用户u相关的用户偏好向量中的分量权重为:
wiu=fiumaxzfzu·logNni.]]>
步骤C2中基于Hadoop技术,采用MapReduce编程模型下的K-Means算法对构建的所有所述用户偏好向量进行聚类操作,生成用户聚类,如图4所示,包括:
步骤C21:所有所述用户偏好向量组成用户偏好向量集合;
其中,用户偏好向量集合表达式为{P1,P2,...,Pn}
步骤C22:从所述用户偏好向量集合中随机选取K个用户偏好向量分别作为K个类的初始中心,该K个初始中心分别记为C1,C2,...CK;
步骤C23:利用Split过程按预设规则对所述用户偏好向量集合中的所有用户偏好向量进行分组;
步骤C24:利用Map过程,按照所述Split过程分组的结果,计算所述用户偏好向量集合中每个所述用户偏好向量分别到K个所述初始中心的中心距离,并根据最短中心距离原则,形成K个聚类,同时确定K个所述聚类的用户中心;
其中,中心距离的计算公式为:
||Pi-Cj||=(w1Pi-w1Cj)2+(w2Pi-w2Cj)2+···+(wkPi-wkCj)2,]]>(1≤i≤n,1≤j≤K);
根据最短中心距离原则,确定每个用户偏好向量的最短中心距离,其中最短中心距离的计算公式为Δi={||Pi-C1||,||Pi-C2||,…,||Pi-CK||}(1≤i≤n),将每个用户偏好向量归于与最短中心距离对应的聚类中。
步骤C25:利用Shuffle过程,对K个所述聚类进行洗牌归类;
步骤C26:利用Reduce过程,重新计算所述洗牌归类后的K个聚类的聚类中心:
Λj=ΣPt,Cj∈{Cj}||Cj-Pt,Cj|||{Cj}|,]]>(1≤j≤K,1≤t≤|{Cj}|);
表示类Cj中第t个用户,|{Cj}|表示类Cj中用户的个数。
该步骤中,利用Reduce过程重新计算洗牌归类后的K个聚类的聚类中心后,进行Reduce结果输出,具体地,将重新计算得到的所述聚类中心与所述用户中心对应排列输出。
步骤C27:将重新计算得到的所述聚类中心分别对应地与所述用户中心进行比较;
步骤C28:若重新计算得到的所述聚类中心分别对应地与所述用户中心相等,则完成聚类操作,输出聚类结果;否则,按预设规则重新计算聚类用户中心,直至聚类用户中心稳定。
重新计算得到的所述聚类中心分别对应地与所述用户中心相等,即Λi=Ci,(1≤i≤K),输出聚类结果,最终聚类中心为O1,O2,...,OK。
步骤C28中,按预设规则重新计算聚类用户中心,是指重新执行步骤C24至C28,进行迭代更新,直到聚类用户中心稳定,此处稳定是指得到的聚类的中心不再移动。
步骤C中,在所述用户聚类中,生成基于项目内容的第一推荐列表,如图5所示,包括:
步骤SC11:在当前用户所属的用户聚类中,构建项目属性向量;
其中,所述项目属性向量的数学表达式为:
i={(t1,w1i),(t2,w2i),...,(tk,wki)};]]>
所述项目属性向量的分量的前部为项目信息的项目类别标签,后部为分量权重;所述项目属性向量的维度k由项目类别数目确定;所述项目属性向量的分量的权重中的i取值为1或0;
步骤SC12:计算当前用户的用户偏好向量与所述项目属性向量间的相似度;
当前用户记为用户a,用户a与任意项目d之间的相似度的计算过程为:sim(a,d)=cos(a,d)=Σi=1kwia·widΣi=1k(wia)2·Σi=1k(wid)2;]]>
其中,a={(t1,w1a),(t2,w2a),...,(tk,wka)},d={(t1,w1d),(t2,w2d),...,(tk,wkd)}.]]>
步骤SC13:根据所述相似度的计算结果,选取当前用户的用户偏好向量相似度值满足预设阈值的多个项目作为当前用户的第一推荐列表。
步骤C中,在所述用户聚类中,还生成基于用户-项目网络的协同过滤的第二推荐列表,如图6所示,包括:
步骤CC11:在所述用户聚类中,构建项目网络;
步骤CC12:基于所述项目网络构建用户网络;
步骤CC13:在所述用户网络中,按预设规则确定当前用户的最近邻居集;
其中,用户的最近邻居集用Sa表示。
步骤CC14:根据所述当前用户的已参与项目信息集合及所述最近邻居集的已参与项目信息集合,形成候选推荐项目集合;
设定当前用户a的已参与项目信息集合记为Ia,其最近邻居集的已参与项目信息集合记为D,则候选推荐项目集合为
步骤CC15:计算所述候选推荐项目集合中的项目信息对于当前用户的推荐度;
步骤CC16:根据所述推荐度的计算结果,从所述候选推荐项目集合中选取项目信息形成第二推荐列表。
其中,步骤CC15及CC16中,候选项目则候选项目i对于当前用户a的推荐度为
Reci,a=Σs∈Sacounts,i|{Sa}|,]]>
其中,用户s对项目i感兴趣,则counts,i=1,否则counts,i=0。
步骤CC11中,在所述用户聚类中,构建项目网络,如图7所示,包括:
步骤CC111:在所述用户聚类中,所有项目信息形成项目集I,根据任意两个项目信息之间的边权值,确定边集E;
其中,所述边权值的数学表达式为:
w(i,j)=|UiUj||Ui|+|Uj|;]]>
Ui表示已参与项目i的用户信息的集合,Uj表示已参与项目j的用户信息的集合;
步骤CC112:根据所述项目集I及所述边集E,构建初步项目网络;
步骤CC113:将所述初步项目网络中,任意两个项目间边权值小于预设的边权阈值的边去掉,形成项目网络G=(I,E)。
步骤CC12中,基于所述项目网络构建用户网络,包括:
构建用户网络u=(Iu,Eu);
其中,Iu为任意用户u已参与项目的项目信息集合,Eu={(i,j)|(i,j)∈E且i,j∈Iu}为任意用户u已参与的任意两个项目之间的边集,所述E指所述项目网络中的边集E。
步骤CC13中,在所述用户网络中,按预设规则确定当前用户的最近邻居集,包括:
步骤CC131:根据预设的同一项目对关系计算当前用户与任意用户u之间的Jaccard相似性,其中当前用户记为用户a,计算公式为:
sim1(a,u)=|IaIu||IaIu|;]]>
步骤CC132:根据预设的相似项目对关系,计算用户a和任意用户u之间的相似性,计算公式为:

步骤CC133:根据预设的相关项目对关系,计算用户a和任意用户u之间的相似性,计算公式为:

步骤CC134:根据所述Jaccard相似性、所述相似项目相似性及所述相关项目相似性的计算结果,确定用户a和任意用户u之间的相似度量值,所述相似度量值的计算公式为:
sim(a,u)=αsim1(a,u)+βsim2(a,u)+γsim3(a,u),其中α+β+γ=1;
步骤CC135:根据所述相似度量值的计算确定当前用户的最近邻居集。
本发明实施例中,按预设规则确定当前用户的最近邻居集时,会根据任意项目所属的用户网络,预先确定任意两个项目间的相似关系,其中确定出的相似关系包括:同一项目对、相似项目对、相关项目对和无关项目对。
具体地,同一项目对关系、相似项目对关系、相关项目对关系分别为:
设任意两个用户a和u,Iu为用户u已参与项目的项目信息集合,Ia为用户a已参与项目的项目信息集合,i及j分别表示任意项目i及任意项目j;
若i∈Ia,j∈Iu,i,j∈Ia∩Iu,称i,j为同一项目对;
若i∈Ia/Iu,j∈Iu/Ia,(i,j)∈E,称i,j为用户a和u之间的相似项目对;
若且w(i,j)>θ,称i,j为用户a和u之间的相关项目对,其中θ=12[Σ(k,t)∈N(Iu)w(k,t)|N(Iu)|+Σ(k,t)∈N(Ia)w(k,t)|N(Ia)|],]]>且N(Iu)={(k,t)|w(k,t)≤0.01,且k,t∈Iu},|N(Iu)|表示集合N(Iu)的元素个数。
称用户a和u之间的其余项目对为无关项目对。
步骤CC134中,所述根据所述Jaccard相似性、所述相似项目相似性及所述相关项目相似性的计算结果,确定用户a和任意用户u之间的相似度量值,包括:
在所述用户聚类中,除构建项目网络外,还构建用户-项目兴趣度矩阵;
利用所述用户-项目兴趣度矩阵实现所述sim1(a,u)、sim2(a,u)及sim3(a,u);
利用矩阵实现的所述sim1(a,u)、sim2(a,u)及sim3(a,u)确定用户a和任意用户u之间的相似度量值。
信息推荐时,仅仅根据用户的评价并不能完整体现用户真实兴趣,进而结合用户浏览记录和购买记录等隐式数据,将其转换成评分数据,构建伪评分数据,获取用户综合兴趣度,构造用户-项目兴趣度矩阵,其中所述用户-项目兴趣度矩阵R的数学表达式为:
R=r11r12···r1i···r1nr21r22···r2i···r2n··················ru1ru2···rui···run··················rm1rm2···rmi···rmn]]>
可以看出,用户-项目兴趣度矩阵表现形式为一个m×n的矩阵R,m表示用户数,n表示项目数目。
该矩阵中,rui=1或0,1≤u≤m,1≤i≤n。
利用所述用户-项目兴趣度矩阵实现所述sim1(a,u)、sim2(a,u)及sim3(a,u)的实现方法具体包括:
项目集中的任意项目i,j之间的边权值定义为
利用矩阵R实现边权值为:
w(i,j)=|UiUj||Ui|+|Uj|=RiT·RjRiT·Rj+RjT·Rj-RiT·Rj]]>
其中,Ri=(r1i,r2i,…,rmi)T为用户-项目兴趣度矩阵R中第i列的元素构成的向量,RiT为向量Ri的转置。
sim1(a,u)的矩阵实现为:
sim1(a,u)=|IaIu||IaIu|=Ra·RuTRa·RaT+Ru·RuT-Ra·RuT]]>
其中,Ru=(ru1,ru2,…,run)为用户-项目矩阵R中第u行的元素构成的向量,表示用户u兴趣项目的向量。
sim2(a,u)的矩阵实现包括:

矩阵实现为:
取矩阵RuT·Ra对角线元素组成向量A=(A1,A2,…An),(1≤i≤n),Ai=1表示用户a和用户u共同对项目i感兴趣,Ai=0表示用户a和用户u至少有一个对项目i不感兴趣。
则,
|Ia/Iu|=||Ra-A||2
|Iu/Ia|=||Ru-A||2
其中,||Ru||2如步骤C24所定义。
|{(i,j)|(i,j)∈E,i∈Ia/Iu,j∈Iu/Ia}|
=(Ra-A)·L·(Ru-A)T
其中,L=l11l12···l1i···l1nl21l22···l2i···l2n··················li1li2···lij···lin··················ln1ln2···lnj···lnn]]>为项目-项目矩阵,lij=1表示项目i与项目j项目之间有边,即(i,j)∈E,lij=0表示1≤i,j≤n。
于是,
sim2(a,u)=(Ra-A)·L·(Ru-A)T||Ra-A||2×||Ru-A||2.]]>
sim3(a,u)的矩阵实现:
根据相关项目相似定义,计算用户a和u之间的相似性,有

其中,
θ=12[Σ(k,t)∈N(Iu)w(k,t)|N(Iu)|+Σ(k,t)∈N(Ia)w(k,t)|N(Ia)|]]]>
N(Iu)={(k,t)|w(k,t)≤0.01,且k,t∈Iu}
矩阵实现为:
|N(Iu)|=P||Ru||22-Ra·L·RaT2,]]>其中Pnm=n!(n-m)!]]>
再由边权值的矩阵实现可知w(i,j)=|UiUj||Ui|+|Uj|=RkT·RtRkT·Rk+RtT·Rt-RkT·Rt,]]>
由此可知θ可由矩阵形式实现。
定义矩阵
L=l1,1l1,2···l1,j···l1,||Ru-A||l2,1l2,2···l2,j···l2,||Ru-A||··················li,1li,2···li,j···li,||Ru-A||··················l||Ra-A||,1l||Ra-A||···l||Ra-A||···l||Ra-A||,||Ru-A||,]]>
li,j′=1表示项目i与项目j之间满足:且i∈Ia/Iu,j∈Iu/Ia;li,j′=0表示w(i,j)≤θ,,且i∈Ia/Iu,j∈Iu/Ia。
于是
sim3(a,u)=(Ra-A)·L·(Ru-A)T||Ra-A||2×||Ru-A||2.]]>
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

一种信息推荐方法.pdf_第1页
第1页 / 共18页
一种信息推荐方法.pdf_第2页
第2页 / 共18页
一种信息推荐方法.pdf_第3页
第3页 / 共18页
点击查看更多>>
资源描述

《一种信息推荐方法.pdf》由会员分享,可在线阅读,更多相关《一种信息推荐方法.pdf(18页珍藏版)》请在专利查询网上搜索。

1、(10)申请公布号 CN 103678672 A (43)申请公布日 2014.03.26 CN 103678672 A (21)申请号 201310726417.1 (22)申请日 2013.12.25 G06F 17/30(2006.01) (71)申请人 北京中兴通软件科技股份有限公司 地址 100085 北京市海淀区上地三街 9 号 C 座 C1007 (72)发明人 程嘉薪 李丽丽 雷翻翻 马雪峰 (74)专利代理机构 北京超凡志成知识产权代理 事务所 ( 普通合伙 ) 11371 代理人 吴开磊 (54) 发明名称 一种信息推荐方法 (57) 摘要 本发明涉及信息技术领域, 特别涉。

2、及一种信 息推荐方法, 包括 : 接收到访问请求时, 提取与访 问请求相对应的当前用户的特征信息, 根据特征 信息确定当前用户是否为新用户 ; 确定当前用户 为新用户时, 根据当前用户的历史访问记录, 按 照点击率排名向当前用户进行热点推荐 ; 确定当 前用户为老用户时, 对预先存储的用户信息及项 目信息进行聚类, 生成用户聚类 ; 在用户聚类中, 生成基于项目内容的第一推荐列表, 还生成基于 用户 - 项目网络的协同过滤的第二推荐列表 ; 根 据第一推荐列表及第二推荐列表生成混合推荐 列表 ; 根据混合推荐列表向当前用户进行信息推 荐。该信息推荐方法形成的推荐信息的实时性提 高, 精确性及关。

3、联性提高, 能够有效为用户进行信 息推荐。 (51)Int.Cl. 权利要求书 4 页 说明书 9 页 附图 4 页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书4页 说明书9页 附图4页 (10)申请公布号 CN 103678672 A CN 103678672 A 1/4 页 2 1. 一种信息推荐方法, 其特征在于, 包括 : 接收到访问请求时, 提取与所述访问请求相对应的当前用户的特征信息, 根据所述特 征信息确定所述当前用户是否为新用户 ; 确定所述当前用户为新用户时, 根据所述当前用户的历史访问记录, 按照点击率排名 向所述当前用户进行热点推荐 ; 确定所。

4、述当前用户为老用户时, 对预先存储的用户信息及项目信息进行聚类, 生成用 户聚类 ; 在所述用户聚类中, 生成基于项目内容的第一推荐列表, 还生成基于用户 - 项目网 络的协同过滤的第二推荐列表 ; 根据所述第一推荐列表及所述第二推荐列表生成混合推荐 列表 ; 根据所述混合推荐列表向当前用户进行信息推荐。 2. 根据权利要求 1 所述的方法, 其特征在于, 所述根据所述特征信息确定所述当前用 户是否为新用户, 包括 : 所述特征信息为发出所述访问请求的当前用户的已参与项目数目 ; 将提取的所述已参与项目数目与预设的项目数目阈值进行比较, 若所述已参与项目数 目不大于所述项目数目阈值, 则确定所。

5、述当前用户为新用户, 否则确定所述当前用户为老 用户。 3. 根据权利要求 1 所述的方法, 其特征在于, 所述对预先存储的用户信息及项目信息 进行聚类, 生成用户聚类, 包括 : 根据预先存储的用户信息及项目信息, 构建用户偏好向量 ; 基于 Hadoop 技术, 采用 MapReduce 编程模型下的 K-Means 算法对构建的所有所述用户 偏好向量进行聚类操作, 生成用户聚类。 4. 根据权利要求 3 所述的方法, 其特征在于, 所述根据预先存储的用户信息及项目信 息, 构建用户偏好向量, 包括 : 所述项目信息对应设置有项目类别标签, 根据所述项目类别标签确定所述用户偏好向 量的分量。

6、及维度 ; 其中, 所述用户偏好向量的数学表达式为 : 所述用户偏好向量的分量的前部为项目类别标签, 后部为分量权重 ; 所述用户偏好向 量的维度 k 由项目类别数目确定 ; 采用 TF-IDF 算法确定所述用户偏好向量的分量权重。 5. 根据权利要求 4 所述的方法, 其特征在于, 所述采用 TF-IDF 算法确定所述用户偏好 向量的分量权重, 包括 : 存储的所有所述项目信息组成项目集, 所述项目集中的项目信息的项目数目记为 N ; 所述项目集中设置有项目类别标签 ti的项目信息的项目数目为 ni; 所述项目集中, 将项目类别标签 ti在任意用户 u 已参与项目信息中出现的次数记为 fiu。

7、; 则, 项目类别标签 ti在所述用户 u 已参与项目集中出现的词频为 权 利 要 求 书 CN 103678672 A 2 2/4 页 3 其中, maxzfzu是指所述用户 u 已参与项目集中项目类别标签出现的最大次数 ; 项目类别标签 ti在所述项目集中出现的逆频为 根据所述项目类别标签 ti在所述用户 u 已参与项目集中出现的词频及在所述项目集 中出现的逆频, 确定项目类别标签 ti在与用户 u 相关的用户偏好向量中的分量权重为 : 6.根据权利要求3所述的方法, 其特征在于, 所述基于Hadoop技术, 采用MapReduce编 程模型下的 K-Means 算法对构建的所有所述用户偏。

8、好向量进行聚类操作, 生成用户聚类, 包括 : 所有所述用户偏好向量组成用户偏好向量集合 ; 从所述用户偏好向量集合中随机选取 K 个用户偏好向量分别作为 K 个类的初始中心 ; 利用 Split 过程按预设规则对所述用户偏好向量集合中的所有用户偏好向量进行分 组 ; 利用Map过程, 按照所述Split过程分组的结果, 计算所述用户偏好向量集合中每个所 述用户偏好向量分别到K个所述初始中心的中心距离, 并根据最短中心距离原则, 形成K个 聚类, 同时确定 K 个所述聚类的用户中心 ; 利用 Shuffle 过程, 对 K 个所述聚类进行洗牌归类 ; 利用 Reduce 过程, 重新计算所述洗。

9、牌归类后的 K 个聚类的聚类中心 ; 将重新计算得到的所述聚类中心分别对应地与所述用户中心进行比较 ; 若重新计算得到的所述聚类中心分别对应地与所述用户中心相等, 则完成聚类操作, 输出聚类结果 ; 否则, 按预设规则重新计算聚类用户中心, 直至聚类用户中心稳定。 7. 根据权利要求 3 所述的方法, 其特征在于, 所述在所述用户聚类中, 生成基于项目内 容的第一推荐列表, 包括 : 在当前用户所属的用户聚类中, 构建项目属性向量 ; 其中, 所述项目属性向量的数学表达式为 : 所述项目属性向量的分量的前部为项目信息的项目类别标签, 后部为分量权重 ; 所述 项目属性向量的维度 k 由项目类别。

10、数目确定 ; 所述项目属性向量的分量的权重中的 i 取值 为 1 或 0 ; 计算当前用户的用户偏好向量与所述项目属性向量间的相似度 ; 根据所述相似度的计算结果, 选取当前用户的用户偏好向量相似度值满足预设阈值的 多个项目作为当前用户的第一推荐列表。 8. 根据权利要求 3 所述的方法, 其特征在于, 在所述用户聚类中, 还生成基于用户 - 项 目网络的协同过滤的第二推荐列表, 包括 : 在所述用户聚类中, 构建项目网络 ; 基于所述项目网络构建用户网络 ; 权 利 要 求 书 CN 103678672 A 3 3/4 页 4 在所述用户网络中, 按预设规则确定当前用户的最近邻居集 ; 根据。

11、所述当前用户的已参与项目信息集合及所述最近邻居集的已参与项目信息集合, 形成候选推荐项目集合 ; 计算所述候选推荐项目集合中的项目信息对于当前用户的推荐度 ; 根据所述推荐度的计算结果, 从所述候选推荐项目集合中 选取项目信息形成第二推荐列表。 9. 根据权利要求 8 所述的方法, 其特征在于, 所述在所述用户聚类中, 构建项目网络, 包括 : 在所述用户聚类中, 所有项目信息形成项目集 I, 根据任意两个项目信息之间的边权 值, 确定边集 E ; 其中, 所述边权值的数学表达式为 : Ui表示已参与项目 i 的用户信息的集合, Uj表示已参与项目 j 的用户信息的集合 ; 根据所述项目集 I。

12、 及所述边集 E, 构建初步项目网络 ; 将所述初步项目网络中, 任意两个项目间边权值小于预设的边权阈值的边去掉, 形成 项目网络 G=(I,E)。 10. 根据权利要求 9 所述的方法, 其特征在于, 所述基于所述项目网络构建用户网络, 包括 : 构建用户网络 u=(Iu,Eu) ; 其中, Iu为任意用户 u 已参与项目的项目信息集合, Eu=(i,j)|(i,j) E 且 i,j Iu 为任意用户 u 已参与的任意两个项目之间的边集, 所述 E 指所述项目网络中的边集 E。 11. 根据权利要求 10 所述的方法, 其特征在于, 所述在所述用户网络中, 按预设规则确 定当前用户的最近邻居。

13、集, 包括 : 根据预设的同一项目对关系计算当前用户与任意用户 u 之间的 Jaccard 相似性, 其中 当前用户记为用户 a, 计算公式为 : 根据预设的相似项目对关系, 计算用户a和任意用户u之间的相似项目相似性, 计算公 式为 : 根据预设的相关项目对关系, 计算用户a和任意用户u之间的相关项目相似性, 计算公 式为 : 权 利 要 求 书 CN 103678672 A 4 4/4 页 5 根据所述 Jaccard 相似性、 所述相似项目相似性及所述相关项目相似性的计算结果, 确定用户 a 和任意用户 u 之间的相似度量值, 所述相似度量值的计算公式为 : sim(a,u)=sim1(。

14、a,u)+sim2(a,u)+sim3(a,u), 其中 +=1 ; 根据所述相似度量值的计算确定当前用户的最近邻居集。 12. 根据权利要求 11 所述的方法, 其特征在于, 所述根据所述 Jaccard 相似性、 所述相 似项目相似性及所述相关项目相似性的计算结果, 确定用户 a 和任意用户 u 之间的相似度 量值, 包括 : 在所述用户聚类中, 除构建项目网络外, 还构建用户 - 项目兴趣度矩阵 ; 利用所述用户 - 项目兴趣度矩阵实现所述 sim1(a,u)、 sim2(a,u) 及 sim3(a,u) ; 利用矩阵实现的所述 sim1(a,u)、 sim2(a,u) 及 sim3(a。

15、,u) 确定用户 a 和任意用户 u 之 间的相似度量值。 13. 根据权利要求 11 所述的方法, 其特征在于, 所述同一项目对关系、 相似项目对关 系、 相关项目对关系分别为 : 设任意两个用户 a 和用户 u, Iu为用户 u 已参与项目的项目信息集合, Ia为用户 a 已参 与项目的项目信息集合, i 及 j 分别表示任意项目 i 及任意项目 j ; 若 i Ia, j Iu, i,j Ia Iu, 则称 i,j 为同一项目对 ; 若 i Ia/Iu, j Iu/Ia, (i,j) E, 称 i,j 为用户 a 和 u 之间的相似项目对 ; 若且 w(i,j), 称 i,j 为 用 户。

16、 a 和 用 户 u 之 间 的 相 关 项 目 对, 其 中 且 N(Iu)=(k,t)|w(k,t) 0.01, 且 k,t Iu, |N(Iu)| 表示集合 N(Iu) 的元素个数。 权 利 要 求 书 CN 103678672 A 5 1/9 页 6 一种信息推荐方法 技术领域 0001 本发明涉及信息技术领域, 具体而言, 涉及一种信息推荐方法。 背景技术 0002 随着信息技术的发展, 用户可方便快捷地接触到大量信息。 但, 海量信息及海量用 户的同时出现, 一方面令用户难以从海量数据信息中发现自己的目标数据, 同时也造成大 量信息的无人问津, 使得信息利用率低 ; 另一方面, 用。

17、户访问量的增加造成原始日志文件的 增加。为了有针对性的向用户提供其所需要的信息, 进而出现了用于向用户推荐相关信息 的推荐系统及推荐方法。具体地, 推荐系统, 就是通过建立用户与信息产品之间的二元关 系, 利用已有的选择过程或相似性关系挖掘每个用户潜在的感兴趣的对象, 进而进行个性 化推荐, 其本质就是信息过滤。 0003 相关技术中的信息推荐方法的推荐形式主要有两种, 一种是基于内容的推荐, 另 一种是基于协同过滤算法的推荐。但, 现有的该两种推荐方法均存在着一定局限性。 0004 例如, 基于协同过滤算法的推荐方法需通过计算用户或是项目的相似度以识别 “最近邻居” , 在大数据情况下, 计。

18、算量的增加直接影响信息推荐的实时性和精确度。而基于 内容的推荐则过分依赖信息的特征, 使得实现后的推荐不能够很好的表达信息的关联性, 进而导致不能够为用户进行有效的信息推荐。 发明内容 0005 本发明的目的在于提供一种信息推荐方法, 以解决上述的问题。 0006 在本发明的实施例中提供了一种信息推荐方法, 包括 : 0007 接收到访问请求时, 提取与所述访问请求相对应的当前用户的特征信息, 根据所 述特征信息确定所述当前用户是否为新用户 ; 0008 确定所述当前用户为新用户时, 根据所述当前用户的历史访问记录, 按照点击率 排名向所述当前用户进行热点推荐 ; 0009 确定所述当前用户为。

19、老用户时, 对预先存储的用户信息及项目信息进行聚类, 生 成用户聚类 ; 在所述用户聚类中, 生成基于项目内容的第一推荐列表, 还生成基于用户 - 项 目网络的协同过滤的第二推荐列表 ; 根据所述第一推荐列表及所述第二推荐列表生成混合 推荐列表 ; 根据所述混合推荐列表向当前用户进行信息推荐。 0010 本发明上述实施例的信息推荐方法, 接收到用户的访问请求, 向用户进行信息推 荐时, 能够根据用户的特征信息将用户分为新用户及老用户, 对于新用户进行热点推荐 ; 而 向老用户进行信息推荐时, 会将系统中存储的大量数据进行聚类, 如此能够将海量用户降 维成有限的几个聚类, 在形成的用户聚类中对用。

20、户形成推荐信息, 如此能够简化海量数据 的计算, 保证信息推荐的实时性, 而且在形成的聚类中形成面向老用户的推荐信息时, 能够 基于项目内容生成第一推荐列表及基于用户 - 项目网络的协同过滤生成第二推荐列表, 其 中用户 - 项目网络是指根据用户信息及项目信息形成的信息网络。根据第一推荐列表及第 说 明 书 CN 103678672 A 6 2/9 页 7 二推荐列表形成混合推荐列表, 通过混合推荐列表能够避免基于内容推荐的过于依赖信息 特征的缺陷, 而且通过混合推荐列表向用户进行信息推荐, 保证推荐的信息的精确性, 及推 荐的信息的关联性, 因此通过本发明的信息推荐方法形成的推荐信息的实时性。

21、提高, 推荐 信息的精确性及关联性提高, 保证能够有效为用户进行信息推荐。 附图说明 0011 图 1 示出了本发明实施例信息推荐方法的流程图 ; 0012 图 2 示出了本发明实施例中对预先存储的用户信息及项目信息进行聚类的流程 图 ; 0013 图 3 示出了本发明实施例中构建用户偏好向量的流程图 ; 0014 图 4 示出了本发明实施例中基于 Hadoop 技术, 采用 MapReduce 编程模型下的 K-Means 算法对构建的所有用户偏好向量进行聚类操作的流程图 ; 0015 图 5 示出了本发明实施例中在用户聚类中生成基于项目内容的第一推荐列表的 流程图 ; 0016 图6示出了。

22、本发明实施例中在用户聚类中生成基于用户-项目网络的协同过滤的 第二推荐列表的流程图 ; 0017 图 7 示出了本发明实施例中在用户聚类中构建项目网络的流程图。 具体实施方式 0018 下面通过具体的实施例子并结合附图对本发明做进一步的详细描述。 0019 本发明实施例提供一种推荐方法, 如图 1 所示, 主要处理步骤包括 : 0020 步骤 A : 接收到访问请求时, 提取与所述访问请求相对应的当前用户的特征信息, 根据所述特征信息确定所述当前用户是否为新用户 ; 0021 确定所述当前用户为新用户时, 执行步骤 B : 根据所述当前用户的历史访问记录, 按照点击率排名向所述当前用户进行热点。

23、推荐 ; 0022 确定所述当前用户为老用户时, 执行步骤 C : 对预先存储的用户信息及项目信息 进行聚类, 生成用户聚类 ; 在所述用户聚类中, 生成基于项目内容的第一推荐列表, 还生成 基于用户 - 项目网络的协同过滤的第二推荐列表 ; 根据所述第一推荐列表及所述第二推荐 列表生成混合推荐列表 ; 根据所述混合推荐列表向当前用户进行信息推荐。 0023 步骤 A 中, 所述根据所述特征信息确定所述当前用户是否为新用户, 包括 : 0024 所述特征信息为发出所述访问请求的当前用户的已参与项目数目 ; 将提取的所述 已参与项目数目与预设的项目数目阈值进行比较, 若所述已参与项目数目不大于所。

24、述项目 数目阈值, 则确定所述当前用户为新用户, 否则确定所述当前用户为老用户。 0025 步骤 C 中, 所述对预先存储的用户信息及项目信息进行聚类, 生成用户聚类, 如图 2 所示, 包括 : 0026 步骤 C1 : 根据预先存储的用户信息及项目信息, 构建用户偏好向量 ; 0027 步骤 C2 : 基于 Hadoop 技术, 采用 MapReduce 编程模型下的 K-Means 算法对构建的 所有所述用户偏好向量进行聚类操作, 生成用户聚类。 0028 步骤 C1 中所述根据预先存储的用户信息及项目信息, 构建用户偏好向量, 如图 3 说 明 书 CN 103678672 A 7 3。

25、/9 页 8 所示, 包括 : 0029 步骤 C11 : 所述项目信息对应设置有项目类别标签, 根据所述项目类别标签确定 所述用户偏好向量的分量及维度 ; 0030 其中, 所述用户偏好向量的数学表达式为 : 0031 0032 所述用户偏好向量的分量的前部为项目类别标签, 后部为分量权重 ; 所述用户偏 好向量的维度 k 由项目类别数目确定 ; 0033 步骤 C12 : 采用 TF-IDF 算法确定所述用户偏好向量的分量权重。 0034 具体地, 步骤 C12 采用 TF-IDF 算法确定所述用户偏好向量的分量权重, 包括 : 0035 存储的所有所述项目信息组成项目集, 所述项目集中的。

26、项目信息的项目数目记为 N ; 0036 所述项目集中设置有项目类别标签 ti 的项目信息的项目数目为 ni; 0037 所述项目集中, 将项目类别标签 ti在任意用户 u 已参与项目信息中出现的次数记 为 fiu; 0038 则, 项目类别标签 ti在所述用户 u 已参与项目集中出现的词频为 0039 0040 其中, maxzfzu是指所述用户 u 已参与项目集中项目类别标签出现的最大次数 ; 0041 项目类别标签 ti在所述项目集中出现的逆频为 0042 根据所述项目类别标签 ti在所述用户 u 已参与项目集中出现的词频及在所述项 目集中出现的逆频, 确定项目类别标签 ti在与用户 u。

27、 相关的用户偏好向量中的分量权重 为 : 0043 0044 步骤 C2 中基于 Hadoop 技术, 采用 MapReduce 编程模型下的 K-Means 算法对构建 的所有所述用户偏好向量进行聚类操作, 生成用户聚类, 如图 4 所示, 包括 : 0045 步骤 C21 : 所有所述用户偏好向量组成用户偏好向量集合 ; 0046 其中, 用户偏好向量集合表达式为 P1,P2,.,Pn 0047 步骤 C22 : 从所述用户偏好向量集合中随机选取 K 个用户偏好向量分别作为 K 个 类的初始中心, 该 K 个初始中心分别记为 C1,C2,.CK; 0048 步骤 C23 : 利用 Spli。

28、t 过程按预设规则对所述用户偏好向量集合中的所有用户偏 好向量进行分组 ; 0049 步骤 C24 : 利用 Map 过程, 按照所述 Split 过程分组的结果, 计算所述用户偏好向 量集合中每个所述用户偏好向量分别到 K 个所述初始中心的中心距离, 并根据最短中心距 离原则, 形成 K 个聚类, 同时确定 K 个所述聚类的用户中心 ; 说 明 书 CN 103678672 A 8 4/9 页 9 0050 其中, 中心距离的计算公式为 : 0051 (1 i n,1 j K) ; 0052 根据最短中心距离原则, 确定每个用户偏好向量的最短中心距离, 其中最短中心 距离的计算公式为 i=|。

29、Pi-C1|,|Pi-C2|,|Pi-CK|(1 i n) , 将每个用户偏 好向量归于与最短中心距离对应的聚类中。 0053 步骤 C25 : 利用 Shuffle 过程, 对 K 个所述聚类进行洗牌归类 ; 0054 步骤 C26 : 利用 Reduce 过程, 重新计算所述洗牌归类后的 K 个聚类的聚类中心 : 0055 (1 j K,1 t |Cj|) ; 0056 表示类 Cj中第 t 个用户, |Cj| 表示类 Cj中用户的个数。 0057 该步骤中, 利用 Reduce 过程重新计算洗牌归类后的 K 个聚类的聚类中心后, 进行 Reduce 结果输出, 具体地, 将重新计算得到的。

30、所述聚类中心与所述用户中心对应排列输出。 0058 步骤 C27 : 将重新计算得到的所述聚类中心分别对应地与所述用户中心进行比 较 ; 0059 步骤 C28 : 若重新计算得到的所述聚类中心分别对应地与所述用户中心相等, 则 完成聚类操作, 输出聚类结果 ; 否则, 按预设规则重新计算聚类用户中心, 直至聚类用户中 心稳定。 0060 重新计算得到的所述聚类中心分别对应地与所述用户中心相等, 即 i=Ci, (1 i K) , 输出聚类结果, 最终聚类中心为 O1,O2,.,OK。 0061 步骤C28中, 按预设规则重新计算聚类用户中心, 是指重新执行步骤C24至C28, 进 行迭代更新。

31、, 直到聚类用户中心稳定, 此处稳定是指得到的聚类的中心不再移动。 0062 步骤C中, 在所述用户聚类中, 生成基于项目内容的第一推荐列表, 如图5所示, 包 括 : 0063 步骤 SC11 : 在当前用户所属的用户聚类中, 构建项目属性向量 ; 0064 其中, 所述项目属性向量的数学表达式为 : 0065 0066 所述项目属性向量的分量的前部为项目信息的项目类别标签, 后部为分量权重 ; 所述项目属性向量的维度 k 由项目类别数目确定 ; 所述项目属性向量的分量的权重中的 i 取值为 1 或 0 ; 0067 步骤 SC12 : 计算当前用户的用户偏好向量与所述项目属性向量间的相似度。

32、 ; 0068 当前用户记为用户 a, 用户 a 与任意项目 d 之间的相似度的计算过程为 : 说 明 书 CN 103678672 A 9 5/9 页 10 0069 其中, 0070 步骤 SC13 : 根据所述相似度的计算结果, 选取当前用户的用户偏好向量相似度值 满足预设阈值的多个项目作为当前用户的第一推荐列表。 0071 步骤C中, 在所述用户聚类中, 还生成基于用户-项目网络的协同过滤的第二推荐 列表, 如图 6 所示, 包括 : 0072 步骤 CC11 : 在所述用户聚类中, 构建项目网络 ; 0073 步骤 CC12 : 基于所述项目网络构建用户网络 ; 0074 步骤 CC。

33、13 : 在所述用户网络中, 按预设规则确定当前用户的最近邻居集 ; 0075 其中, 用户的最近邻居集用 Sa表示。 0076 步骤 CC14 : 根据所述当前用户的已参与项目信息集合及所述最近邻居集的已参 与项目信息集合, 形成候选推荐项目集合 ; 0077 设定当前用户 a 的已参与项目信息集合记为 Ia, 其最近邻居集的已参与项目信息 集合记为 D, 则候选推荐项目集合为 0078 步骤 CC15 : 计算所述候选推荐项目集合中的项目信息对于当前用户的推荐度 ; 0079 步骤 CC16 : 根据所述推荐度的计算结果, 从所述候选推荐项目集合中选取项目信 息形成第二推荐列表。 0080。

34、 其中, 步骤 CC15 及 CC16 中, 候选项目则候选项目 i 对于当前用户 a 的推荐 度为 0081 0082 其中, 用户 s 对项目 i 感兴趣, 则 counts,i=1, 否则 counts,i=0。 0083 步骤 CC11 中, 在所述用户聚类中, 构建项目网络, 如图 7 所示, 包括 : 0084 步骤 CC111 : 在所述用户聚类中, 所有项目信息形成项目集 I, 根据任意两个项目 信息之间的边权值, 确定边集 E ; 0085 其中, 所述边权值的数学表达式为 : 0086 0087 Ui表示已参与项目i的用户信息的集合, Uj表示已参与项目j的用户信息的集合 。

35、; 0088 步骤 CC112 : 根据所述项目集 I 及所述边集 E, 构建初步项目网络 ; 0089 步骤 CC113 : 将所述初步项目网络中, 任意两个项目间边权值小于预设的边权阈 值的边去掉, 形成项目网络 G=(I,E)。 说 明 书 CN 103678672 A 10 6/9 页 11 0090 步骤 CC12 中, 基于所述项目网络构建用户网络, 包括 : 0091 构建用户网络 u=(Iu,Eu) ; 0092 其中, Iu为任意用户 u 已参与项目的项目信息集合, Eu=(i,j)|(i,j) E 且 i,j Iu 为任意用户 u 已参与的任意两个项目之间的边集, 所述 E。

36、 指所述项目网络中的边 集 E。 0093 步骤 CC13 中, 在所述用户网络中, 按预设规则确定当前用户的最近邻居集, 包括 : 0094 步骤 CC131 : 根据预设的同一项目对关系计算当前用户与任意用户 u 之间的 Jaccard 相似性, 其中当前用户记为用户 a, 计算公式为 : 0095 0096 步骤 CC132 : 根据预设的相似项目对关系, 计算用户 a 和任意用户 u 之间的相似 性, 计算公式为 : 0097 0098 步骤 CC133 : 根据预设的相关项目对关系, 计算用户 a 和任意用户 u 之间的相似 性, 计算公式为 : 0099 0100 步骤 CC134。

37、 : 根据所述 Jaccard 相似性、 所述相似项目相似性及所述相关项目相似 性的计算结果, 确定用户 a 和任意用户 u 之间的相似度量值, 所述相似度量值的计算公式 为 : 0101 sim(a,u)=sim1(a,u)+sim2(a,u)+sim3(a,u), 其中 +=1 ; 0102 步骤 CC135 : 根据所述相似度量值的计算确定当前用户的最近邻居集。 0103 本发明实施例中, 按预设规则确定当前用户的最近邻居集时, 会根据任意项目所 属的用户网络, 预先确定任意两个项目间的相似关系, 其中确定出的相似关系包括 : 同一项 目对、 相似项目对、 相关项目对和无关项目对。 01。

38、04 具体地, 同一项目对关系、 相似项目对关系、 相关项目对关系分别为 : 0105 设任意两个用户 a 和 u, Iu为用户 u 已参与项目的项目信息集合, Ia为用户 a 已参 说 明 书 CN 103678672 A 11 7/9 页 12 与项目的项目信息集合, i 及 j 分别表示任意项目 i 及任意项目 j ; 0106 若 i Ia, j Iu, i,j Ia Iu, 称 i,j 为同一项目对 ; 0107 若 i Ia/Iu, j Iu/Ia, (i,j) E, 称 i,j 为用户 a 和 u 之间的相似项目对 ; 0108 若且 w(i,j), 称 i,j 为 用 户 a 。

39、和 u 之 间 的 相 关 项 目 对, 其 中 且 N(Iu)=(k,t)|w(k,t) 0.01, 且 k,t Iu, |N(Iu)| 表示集合 N(Iu) 的元素个数。 0109 称用户 a 和 u 之间的其余项目对为无关项目对。 0110 步骤CC134中, 所述根据所述Jaccard相似性、 所述相似项目相似性及所述相关项 目相似性的计算结果, 确定用户 a 和任意用户 u 之间的相似度量值, 包括 : 0111 在所述用户聚类中, 除构建项目网络外, 还构建用户 - 项目兴趣度矩阵 ; 0112 利用所述用户 - 项目兴趣度矩阵实现所述 sim1(a,u)、 sim2(a,u) 及。

40、 sim3(a,u) ; 0113 利用矩阵实现的所述 sim1(a,u)、 sim2(a,u) 及 sim3(a,u) 确定用户 a 和任意用户 u 之间的相似度量值。 0114 信息推荐时, 仅仅根据用户的评价并不能完整体现用户真实兴趣, 进而结合用户 浏览记录和购买记录等隐式数据, 将其转换成评分数据, 构建伪评分数据, 获取用户综合兴 趣度, 构造用户 - 项目兴趣度矩阵, 其中所述用户 - 项目兴趣度矩阵 R 的数学表达式为 : 0115 0116 可以看出, 用户 - 项目兴趣度矩阵表现形式为一个 mn 的矩阵 R, m 表示用户数, n 表示项目数目。 0117 该矩阵中, ru。

41、i=1 或 0, 1 u m,1 i n。 0118 利用所述用户 - 项目兴趣度矩阵实现所述 sim1(a,u)、 sim2(a,u) 及 sim3(a,u) 的 实现方法具体包括 : 0119 项目集中的任意项目 i,j 之间的边权值定义为 0120 利用矩阵 R 实现边权值为 : 0121 0122 其中, Ri=(r1i,r2i,rmi)T为用户 - 项目兴趣度矩阵 R 中第 i 列的元素构成的向 量, RiT为向量 Ri的转置。 0123 sim1(a,u) 的矩阵实现为 : 说 明 书 CN 103678672 A 12 8/9 页 13 0124 0125 其中, Ru=(ru1。

42、,ru2,run) 为用户 - 项目矩阵 R 中第 u 行的元素构成的向量, 表示 用户 u 兴趣项目的向量。 0126 sim2(a,u) 的矩阵实现包括 : 0127 0128 矩阵实现为 : 0129 取矩阵 RuTRa对角线元素组成向量 A=(A1,A2,An),(1 i n) , Ai=1 表示用户 a 和用户 u 共同对项目 i 感兴趣, Ai=0 表示用户 a 和用户 u 至少有一个对项目 i 不感兴趣。 0130 则, 0131 |Ia/Iu|=|Ra-A|2 0132 |Iu/Ia|=|Ru-A|2 0133 其中, |Ru|2如步骤 C24 所定义。 0134 |(i,j)。

43、|(i,j) E,i Ia/Iu,j Iu/Ia| 0135 =(Ra-A)L(Ru-A)T 0136 其中,为项目 - 项目矩阵, lij=1 表示项目 i 与项目 j 项目之间有边, 即 (i,j) E, lij=0 表示1 i,j n。 0137 于是, 0138 0139 sim3(a,u) 的矩阵实现 : 0140 根据相关项目相似定义, 计算用户 a 和 u 之间的相似性, 有 0141 说 明 书 CN 103678672 A 13 9/9 页 14 0142 其中, 0143 0144 N(Iu)=(k,t)|w(k,t) 0.01, 且 k,t Iu 0145 矩阵实现为 :。

44、 0146 其中 0147 再由边权值的矩阵实现可知 0148 由此可知 可由矩阵形式实现。 0149 定义矩阵 0150 0151 li,j =1 表示项目 i 与项目 j 之间满足 :且 i Ia/Iu,j Iu/ Ia; li,j =0 表示 w(i,j) ,, 且 i Ia/Iu,j Iu/Ia。 0152 于是 0153 0154 以上所述仅为本发明的优选实施例而已, 并不用于限制本发明, 对于本领域的技 术人员来说, 本发明可以有各种更改和变化。 凡在本发明的精神和原则之内, 所作的任何修 改、 等同替换、 改进等, 均应包含在本发明的保护范围之内。 说 明 书 CN 103678672 A 14 1/4 页 15 图 1 图 2 说 明 书 附 图 CN 103678672 A 15 2/4 页 16 图 3 图 4 说 明 书 附 图 CN 103678672 A 16 3/4 页 17 图 5 图 6 说 明 书 附 图 CN 103678672 A 17 4/4 页 18 图 7 说 明 书 附 图 CN 103678672 A 18 。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1