信息推荐方法和系统的制作方法

文档序号:6536957阅读:136来源:国知局
信息推荐方法和系统的制作方法
【专利摘要】本发明提供一种信息推荐方法和系统。首先生成用户-对象矩阵,然后建立用户权值向量和对象质量向量,再通过迭代算法计算出用户的优先级权值和对象的质量权值,分别按照权值排序提取用于推荐计算的优先用户高质对象,既剔除了对推荐计算结果影响较小的数据,减少了数据计算量,又能避免无用数据的影响,提高推荐计算的结果的精确度;综合来看,该方案能够明显提高服务器资源利用率,降低推荐计算的时间消耗,提高了信息推荐的效果和效率,更有利于信息推荐的实时化。
【专利说明】信息推荐方法和系统
【技术领域】
[0001]本发明涉及互联网【技术领域】,特别是涉及一种信息推荐方法和系统。
【背景技术】
[0002]现在的互联网网站中,常见的信息推荐方案可以分为两种:基于内容的和基于行为的。前者在新闻、电影等类型的信息推荐中比较常用,而在以特定对象为推荐的一类网站中中,一般只能作为辅助、补充的方法。
[0003]由于网站的浏览量巨大、用户群众多,每天都有大量的用户行为数据积累下来。当前最常见的基于行为的推荐算法,是协同过滤及各种衍生版本。其核心是根据用户与特定对象执行的行为数据,在用户空间中计算特定对象之间的相似度,从而根据特定对象来推荐其他对象;或者在对象空间中计算用户的相似度,然后计算出相似用户有过行为的特定对象,来推荐给当前用户。
[0004]前面所述的计算方法,数据稀疏性比较严重,计算量非常大,算法效率的提升容易遇到瓶颈。由于要计算所有用户和所有对象,数据容易掺进杂质,降低结果的准确率。由于需要推荐的对象和用户数都非常巨大,通常达到百万、千万以上的级别。这样,在计算对象相似度或者用户相似度时,数据稀疏性比较严重。另一方面,更多的长尾用户的网上行为,是零星的、没有规律性的,在推荐流程中,只会增加时间复杂度,而不会对计算的效果有所提闻。
[0005]由此可见,传统方法统计用户行为和数据,涉及过多的用户和对象。正如签名所述,包含较多用户的行为是不具有规律性、可参考性的,经过推荐流程后,包含有较多也并不是作为优先对象所希望选择的;这些用户和对象对最终的推荐效果,并没有太大的正面影响;但在进行推荐流程的技术时,却仍然将其包含到技术范围内,这就明显浪费服务器资源,后续推荐计算的时间消耗多,既降低了推荐的效果,又降低了推荐的效率,阻碍了信息推荐的实时化。

【发明内容】

[0006]基于此,有必要针对现有技术中存在的后续推荐计算的时间消耗多,推荐的效果差和推荐效率低的问题,提供一种信息推荐方法和系统。
[0007]一种信息推荐方法,包括如下步骤:
[0008]根据数据库中保存的用户行为数据,建立用户到待推荐的对象的mXn矩阵A,根据矩阵A的元素Au确定每个用户对每个对象的行为权值;其中,m为用户数量,η为对象数量;
[0009]矩阵A的元素满足:
[0010]A_(ik) >A_(jk),k为同一对象,用户i对对象的行为比用户j更早产生;
[0011]A_(ik) = 0,用户i对对象k没有行为;
[0012]建立m维的用户权值向量E和η维的对象质量向量Q,并将两个向量的所有元素都初始化为1,其中,E表示用户的优先级权值,Q表示对象的质量权值;
[0013]将用户权值向量E和η维的对象质量向量Q进行迭代运算:
[0014]E:= QXAt
[0015]Q:= EXA
[0016]其中,At为矩阵A的转置矩阵;
[0017]将用户权值向量E的各个兀素对应的用户和对象质量向量Q的各个兀素对应的对象分别按照权值排序;
[0018]依顺序提取前面比例为a(a〈l)的权值的用户设为优先用户,依顺序提取前面比例为a的权值的对象设为高质对象;
[0019]根据所述优先用户和高质对象,采用基于对象的协同过滤方法或基于用户的协同过滤方法进行对象信息的推荐。
[0020]一种信息推荐系统,包括:
[0021]矩阵生成模块,用于根据数据库中保存的用户行为数据,建立用户到待推荐的对象的mXn矩阵A,根据矩阵A的元素Au确定每个用户对每个对象的行为权值;其中,m为用户数量,η为对象数量;
[0022]矩阵A的元素满足:
[0023]A_(ik) >A_(jk),k为同一对象,用户i对对象的行为比用户j更早产生;
[0024]A_(ik) = 0,用户i对对象k没有行为;
[0025]向量生成模块,用于建立m维的用户权值向量E和η维的对象质量向量Q,并将两个向量的所有元素都初始化为I,其中,E表示用户的优先级权值,Q表示对象的质量权值;将用户权值向量E和η维的对象质量向量Q进行迭代运算:
[0026]E:= QXAt
[0027]Q:= EXA
[0028]其中,At为矩阵A的转置矩阵;
[0029]用户和对象提取模块,用于将用户权值向量E的各个兀素对应的用户和对象质量向量Q的各个元素对应的对象分别按照权值排序;依顺序提取前面比例为a(a〈l)的权值的用户设为优先用户,依顺序提取前面比例为a的权值的对象设为高质对象;
[0030]信息推荐模块,用于根据所述优先用户和高质对象,采用基于对象的协同过滤方法或基于用户的协同过滤方法进行对象信息的推荐。
[0031]上述信息推荐方法和系统。首先生成用户-对象矩阵,然后建立用户权值向量和对象质量向量,再通过迭代算法计算出用户的优先级权值和质量权值,分别按照权值排序提取用于推荐计算的优先用户高质对象,既剔除了对推荐计算结果影响较小的数据,减少了数据计算量,又能避免无用数据的影响,提高推荐计算的结果的精确度;综合来看,该方案能够明显提高服务器资源利用率,降低推荐计算的时间消耗,提高了信息推荐的效果和效率,更有利于信息推荐的实时化。
【专利附图】

【附图说明】
[0032]图1为本发明的信息推荐方法流程图;
[0033]图2为本发明的信息推荐系统结构示意图。【具体实施方式】
[0034]下面结合附图对本发明的信息推荐方法和系统的【具体实施方式】作详细描述。
[0035]参考图1所示,图1为本发明的信息推荐方法流程图,主要包括如下步骤:
[0036]步骤S10,根据数据库中保存的用户行为数据,建立用户到待推荐的对象的mXn矩阵A,根据矩阵A的元素Au确定每个用户对每个对象的行为权值;其中,m为用户数量,η为对象数量;
[0037]矩阵A的元素满足:
[0038]么_(110>4_(」10,1^为同一对象,用户1对对象的行为比用户j更早产生;A_(ik)=0,用户i对对象k没有行为。
[0039]mXn矩阵A可以表示如下:
【权利要求】
1.一种信息推荐方法,其特征在于,包括如下步骤: 根据数据库中保存的用户行为数据,建立用户到待推荐的对象的mXn矩阵A,根据矩阵A的元素Au确定每个用户对每个对象的行为权值; 其中,m为用户数量,η为对象数量,矩阵A的元素满足: A_(ik) >A_(jk), k为同一对象,用户i对对象的行为比用户j更早产生;A_(ik) = O,用户i对对象k没有行为; 建立m维的用户权值向量E和η维的对象质量向量Q,并将两个向量的所有元素都初始化为I ;其中,E表示用户的优先级权值,Q表示对象的质量权值; 将用户权值向量E和η维的对象质量向量Q进行迭代运算:
E:= QXAt
Q:= EXA 其中,At为矩阵A的转置矩阵; 将用户权值向量E的各个元素对应的用户和对象质量向量Q的各个元素对应的对象分别按照权值排序;依顺序提取前面比例为a(a〈l)的权值的用户设为优先用户,依顺序提取前面比例为a的权值的对象设为高质对象; 根据所述优先用户和高质对象,采用基于对象的协同过滤方法或基于用户的协同过滤方法进行对象信息的 推荐
2.根据权利要求1所述的信息推荐方法,其特征在于,所述根据矩阵A的元素Au确定每个用户对每个对象的行为权值的步骤包括: 建立用户的行为数据集合R ;R = {(u, p, t)},其中,集合R的每个元素(u, P, t)表示用户u在时间t对对象P的一个行为事件; 设定行为权值的数学表达式:
Aij = I {u I (u, Pj, t), (Ui, Pj, ti) e R λ (t>ti)} I ; 其中,符号“ Λ ”表示满足右边条件的元素,“u I ”表示符合右边条件的任意用户,符号“ Il ”表示集合里面的元素的个数; 根据所述数学表达式计算用户对对象的行为权值矩阵。
3.根据权利要求2所述的信息推荐方法,其特征在于,所述根据所述数学表达式计算用户对对象的行为权值矩阵的步骤包括: 将矩阵A初始化为mXn阶的零矩阵; 遍历所有行为数据集,搜索到一个用户i对对象j的行为数据时,则将元素Au置1,并把矩阵A的第j列中所有非零元素自增I ; 遍历完所有行为数据后,为防止最终结果的奇异化,再将矩阵A的非零元素进行平滑处理:
Aij:= 1g(^Aij) 根据平滑处理后的矩阵A确定用户对对象的行为权值矩阵。
4.根据权利要求1所述的信息推荐方法,其特征在于,所述将用户权值向量E和η维的对象质量向量Q进行迭代运算的步骤包括: 遍历向量E中的每个元素Ei ; 遍历矩阵A的第i行的每个元素Aij ;将Aij乘以Qj,然后加到Ei上; 计算完所有E的元素后,开始计算Q,遍历向量Q的每个元素Qj ; 遍历矩阵A的第j列的每一个元素Aij ; 将Aij乘以Ei,加到Qj上; 反复进行以上计算,直至向量E和向量Q都收敛停止。
5.根据权利要求1所述的信息推荐方法,其特征在于,所述基于对象的协同过滤进行对象信息的推荐的步骤包括: 从数据库中查找出所有对象和优先用户的行为记录,生成对象向量P:
Pj — (Pjl, Pj2,..., Pju,..., Pjm*a) 其中,P」为第j个对象向量,向量的每一个分量P#表示对象j对应该优先用户U的行为权值; 计算所有高质对象之间的相似度:
Sij =Eu (Pju*Pju) /1 Pi I * I Pj 其中,IPiI = Σ uPiu, I Pj I = Σ uPju,求和Σ u是对所有优先用户u进行遍历的; 对于每一个对象i,根据计算的相似度进行排序,选择相似度Pu最大的前K个对象,设为原对象i的推荐结果进行对象信息的推荐; 或 所述基于用户的协同过滤方法进行对象信息的推荐的步骤包括: 从数据库中查找出所有用户和高质对象的行为记录,生成用户向量C:
Cu — (Cul,Cu2,…,Cui,…,Cunita) 其中,Cu为第u个用户向量,向量的每一个分量Cui表不闻质对象i对应该用户u的行为权值; 计算所有优先用户之间的相似度:
Wuv=E i (Cui^Cvi)/I Pj* I Pv I 其中,Pu = Σ iPui, Pv = Σ iPvi,求和Σ i是对所有的高质对象i进行遍历的; 根据用户之间的相似度Wuv和用户向量Cu,并以用户间的相似度作为加权,计算针对用户u的对象i的被推荐的权值Rui:
Rui = Σ V (Wuv Cvi/ Σ iCvi) 将所有的对象i按照权值Rui进行排序,选择前K个对象对用户u进行对象信息的推荐。
6.一种信息推荐系统,其特征在于,包括: 矩阵生成模块,用于根据数据库中保存的用户行为数据,建立用户到待推荐的对象的mXn矩阵A,根据矩阵A的元素‘确定每个用户对每个对象的行为权值;其中,m为用户数量,η为对象数量;矩阵A的元素满足: A_(ik) >A_(jk), k为同一对象,用户i对对象的行为比用户j更早产生;A_(ik) = O,用户i对对象k没有行为; 向量生成模块,用于建立m维的用户权值向量E和η维的对象质量向量Q,并将两个向量的所有元素都初始化为1,其中,E表示用户的优先级权值,Q表示对象的质量权值;将用户权值向量E和η维的对象质量向量Q进行迭代运算:E:= QXAt
Q:= EXA 其中,At为矩阵A的转置矩阵; 用户和对象提取模块,用于将用户权值向量E的各个元素对应的用户和对象质量向量Q的各个元素对应的对象分别按照权值排序;依顺序提取前面比例为a(a〈l)的权值的用户设为优先用户,依顺序提取前面比例为a的权值的对象设为高质对象; 信息推荐模块,用于根据所述优先用户和高质对象,采用基于对象的协同过滤方法或基于用户的协同过滤方法进行对象信息的推荐。
7.根据权利要求6所述的信息推荐系统,其特征在于,所述矩阵生成模块用于根据矩阵A的元素Au确定每个用户对每个对象的行为权值的方法具体包括: 建立用户的行为数据集合R ;R = {(u, p, t)},其中,集合R的每个元素(u, P, t)表示用户u在时间t对对象P的一个行为事件; 设定行为权值的数学表达式:
Aij = I {u I (u, Pj, t), (Ui, Pj, ti) ∈ R λ (t>ti)} I ; 其中,符号“ Λ ”表示满足右边条件的元素,“u I ”表示符合右边条件的任意用户,符号“ Il ”表示集合里面的元素的个数; 根据所述数学表达式计算用户对对象的行为权值矩阵。
8.根据权利要求7所述的信息推荐系统,其特征在于,所述矩阵生成模块用于根据所述数学表达式计算用户对对象的行为权值矩阵的方法具体包括: 将矩阵A初始化为mXn阶的零矩阵; 遍历所有行为数据集,搜索到一个用户i对对象j的行为数据时,则将元素Au置1,并把矩阵A的第j列中所有非零元素自增I ; 遍历完所有行为数据后,为防止最终结果的奇异化,再将矩阵A的非零元素进行平滑处理:
Aij:= 1g(^Aij) 根据平滑处理后的矩阵A确定用户对对象的行为权值矩阵。
9.根据权利要求6所述的信息推荐系统,其特征在于,所述向量生成模块用于将用户权值向量E和η维的对象质量向量Q进行迭代运算的方法具体包括: 遍历向量E中的每个元素Ei ; 遍历矩阵A的第i行的每个元素Aij ; 将Aij乘以Qj,然后加到Ei上; 计算完所有E的元素后,开始计算Q,遍历向量Q的每个元素Qj ; 遍历矩阵A的第j列的每一个元素Aij ; 将Aij乘以Ei,加到Qj上; 反复进行以上计算,直至向量E和向量Q都收敛停止。
10.根据权利要求6所述的信息推荐系统,其特征在于,所述信息推荐模块用于基于对象的协同过滤进行对象信息的推荐的方法具体包括: 从数据库中查找出所有对象和优先用户的行为记录,生成对象向量P:
Pj — (Pjl, Pj2,..., Pju,..., Pjm*a)其中,P]为第j个对象向量,向量的每一个分量P#表示对象j对应该优先用户U的行为权值; 计算所有高质对象之间的相似度:
Sij =Eu (piu*pju) /1 Pi I * I Pj 其中,IPiI = Σ UPiu, I Pj I = Σ uPjU,求和Σ U是对所有优先用户U进行遍历的; 对于每一个对象i,根据计算的相似度进行排序,选择相似度Pu最大的前K个对象,设为原对象i的推荐结果进行对象信息的推荐; 或 所述信息推荐模块用于基于用户的协同过滤方法进行对象信息的推荐的方法具体包括: 从数据库中查找出所有用户和高质对象的行为记录,生成用户向量C:
Cu — (Cul,Cu2,…,Cui,…,Cunita) 其中,Cu为第u个用户向量,向量的每一个分量Cui表不闻质对象i对应该用户u的行为权值; 计算所有优先用户 之间的相似度:
Wuv=E i (Cui^Cvi)/I Pj* I Pv I 其中,IpuI = Σ iPui, Pv = Σ iPvi,求和Σ i是对所有的高质对象i进行遍历的; 根据用户之间的相似度Wuv和用户向量Cu,并以用户间的相似度作为加权,计算针对用户u的对象i的被推荐的权值Rui:
Rui = Σ V (Wuv Cvi/ Σ iCvi) 将所有的对象i按照权值Rui进行排序,选择前K个对象对用户u进行对象信息的推荐。
【文档编号】G06F17/30GK103810262SQ201410038156
【公开日】2014年5月21日 申请日期:2014年1月26日 优先权日:2014年1月26日
【发明者】王迎宾 申请人:广州品唯软件有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1