• 四川郎酒股份有限公司获第十二届人民企业社会责任奖年度环保奖 2019-05-13
  • 银保监会新规剑指大企业多头融资和过度融资 2019-05-12
  • 韩国再提4国联合申办世界杯 中国网友无视:我们自己来 2019-05-11
  • 中国人为什么一定要买房? 2019-05-11
  • 十九大精神进校园:风正扬帆当有为 勇做时代弄潮儿 2019-05-10
  • 粽叶飘香幸福邻里——廊坊市举办“我们的节日·端午”主题活动 2019-05-09
  • 太原设禁鸣路段 设备在测试中 2019-05-09
  • 拜耳医药保健有限公司获第十二届人民企业社会责任奖年度企业奖 2019-05-08
  • “港独”没出路!“梁天琦们”该醒醒了 2019-05-07
  • 陈卫平:中国文化内涵包含三方面 文化复兴表现在其中 2019-05-06
  • 人民日报客户端辟谣:“合成军装照”产品请放心使用 2019-05-05
  • 【十九大·理论新视野】为什么要“建设现代化经济体系”?   2019-05-04
  • 聚焦2017年乌鲁木齐市老城区改造提升工程 2019-05-04
  • 【专家谈】上合组织——构建区域命运共同体的有力实践者 2019-05-03
  • 【华商侃车NO.192】 亲!楼市火爆,别忘了买车位啊! 2019-05-03
    • / 16
    • 下载费用:30 金币  

    重庆时时彩龙虎合规律: 基于网络社区的协同过滤推荐方法.pdf

    关 键 词:
    基于 网络 社区 协同 过滤 推荐 方法
      专利查询网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    摘要
    申请专利号:

    CN201410007387.3

    申请日:

    2014.01.08

    公开号:

    CN103793476A

    公开日:

    2014.05.14

    当前法律状态:

    授权

    有效性:

    有权

    法律详情: 授权|||实质审查的生效IPC(主分类):G06F 17/30申请日:20140108|||公开
    IPC分类号: G06F17/30 主分类号: G06F17/30
    申请人: 西安电子科技大学
    发明人: 刘静; 焦李成; 刘辰龙; 马文萍; 马晶晶; 李阳阳; 朱虎明
    地址: 710071 陕西省西安市太白南路2号
    优先权:
    专利代理机构: 陕西电子工业专利中心 61205 代理人: 王品华;朱红星
    PDF完整版下载: PDF下载
    法律状态
    申请(专利)号:

    CN201410007387.3

    授权公告号:

    ||||||

    法律状态公告日:

    2017.02.15|||2014.06.11|||2014.05.14

    法律状态类型:

    授权|||实质审查的生效|||公开

    摘要

    本发明公开了一种基于网络社区的协同过滤推荐方法,主要解决现有技术在获得用户之间相似度数据时存在稀疏性,造成推荐准确率低的问题。其实现步骤是:获取用户对待推荐项目的评分信息,并利用用户对待推荐项目的评分数据间接生成用户与用户之间的关系网络;计算用户之间的相似度;通过基于相似度的社区检测将用户关系网络划分成若干个用户社区;选取用户所在社区内相似度最大的k个用户组成近邻用户集合,根据近邻用户集合对目标用户未评分的项目进行预测评分;将评分预测值中最大的项目推荐给用户。仿真实验结果表明,本发明比传统协同过滤推荐方法能得到更好的推荐结果,可用于向用户推荐用户感兴趣的项目。

    权利要求书

    权利要求书
    1.  一种基于网络社区的协同过滤推荐方法,包括如下步骤:
    (1)获取用户对待推荐项目的评分信息,通过用户对待推荐项目的评分数据间接生成用户与用户之间的关系网络,其中任意两个用户共同评分的项目个数表示这两个用户之间的权值关系,这些用户之间的权值关系构成用户与用户的关系网络,用户对项目的评分信息用矩阵R(m,n)表示为:
    R(m,n)=r11,r12...,r1j...,r1n......ri1,ri2...,rij...,rin......rm1,rm2...,rmj...,rmn,]]>
    其中m和n分别表示用户数和项目数,rij表示矩阵中第i行第j列的元素用户i对项目j的评分值;
    (2)通过用户之间的关系网络,计算任意两个用户u和v之间的相似度s(u,v);
    (3)将获得的用户与用户的关系网络划分成若干个用户社区:
    (3a)将每个用户比作一个节点,获得用户网络的节点数n,随机生成Pop=50个初始个体,将每个个体用从1到n的一种随机排列表示为AP,即:
    AP={v1,...vi,...vn},
    其中vi表示第i个节点,i∈[1,n];
    (3b)设AC表示社区集合,对每个个体的随机排列进行解码:
    (3b1)设解码的最初时刻AC为空集合,即集合中社区的数量m为0,将随机排列AP的初始节点v1加入到一个新的空社区Cm+1中,并将此社区加入到社区集合AC中,此时m=m+1;
    (3b2)定义T(Cj)表示第j个社区Cj的质量函数
    T(Cj)=SinCjSinCj+SoutCj,]]>
    其中表示第j个社区Cj的内部节点相似度之和,表 示第j个社区Cj内部节点与外部节点相似度之和;
    (3b3)将随机排列AP中的节点从第二个节点v2开始,依次判断是否加入到社区C1,…Cj,...,Cm中:
    计算社区C1的质量函数值T(C1)和v2加入社区C1后的值T(C1∪v2),当满足T(C1∪v2)>T(C1)时,将节点v2加入到社区C1中并跳到下一个节点v3,否则判断节点v2是否加入到社区C2中,当满足T(C2∪v2)>T(C2)时,将节点v2加入到社区C2中并跳到下一个节点v3,否则判断节点v2是否加入到社区C3中,以此类推,直到节点v2加入到对应的社区中并跳到下一个节点v3;
    如果节点v2不能加入到AC的任意一个社区,则将节点v2加入到一个新的空社区Cm+1中并将此社区加入到社区集合AC中,跳到下一个节点v3,此时m=m+1;
    根据上述规则将所有节点都划分到对应社区中,即将AP解码为AC={C1,…Cj,...,Cm};
    (3c)生成新的个体的随机排列AP′:
    (3c1)定义用于评价每个个体社区划分好坏的适应度函数fun(AC)为:
    fun(AC)=Σj=1mT(Cj)/m,]]>
    其中T(Cj)表示第j个社区Cj的质量函数,m表示社区的数量;
    (3c2)按照适应度函数公式计算出每个个体的适应度函数值,选择出适应度函数值大小排名前10%的个体保留,其余90%的个体再随机生成新的个体的随机排列AP′;
    (3d)获得用户关系网络的最终社区划分:
    (3d1)对生成的新的排列个体AP′,采用步骤(3b)的方式解码,并计算解码后的个体的适应度值;
    (3d2)将之前保留的10%个个体与新生成的个体重新放到一起,挑选出适应度值最大的前10%个个体,将其余90%的个体再重新生成新的排列个体;
    (3d3)循环步骤(3d1)和(3d2)共10次,在最后一次循环后选出适应度函数值最高的个体,并将其对应的社区集合作为最后的社区划分集合:ACu={Cu1,…Cuj,…,Cum},其中m表示社区个数,Cuj表示第j个社区;
    (4)将用户关系网络划分为社区后,对用户未评分的项目进行预测评分,得到未评分项目的评分预测值;
    (5)将评分预测值中最大的项目推荐给用户。

    2.  根据权利要求1所述的方法,其中步骤(2)所述的计算任意两个用户u和v之间的相似度s(u,v),通过如下公式进行:
    s(u,v)=Σx∈Γ(u)Γ(u)w(u,x)·w(v,x)Σx∈Γ(u)w2(u,x)·Σx∈Γ(v)w2(v,x),]]>
    式中Γ(u)表示用户u及与用户u相连接的用户集合,Γ(v)表示用户v及与用户v相连接的用户集合,x∈Γ(u)∩Γ(v)表示同时与用户u和用户v相连接的用户,w(u,x)表示用户u和用户x的权值,w(v,x)表示用户v和用户x的权值。

    3.  根据权利要求1所述的方法,其中步骤(4)所述的对用户未评分的项目进行预测评分,按照如下步骤进行:
    (4a)获得用户对已评分项目的评分平均值,
    在用户对项目的评分矩阵R(m,n)中,计算用户u对已评分项目的评分平均值:其中n为总的项目数,s为已评分的项目数,元素rui表示用户u对项目i的评分值,rui=0表示用户u对项目i未评分;
    (4b)根据步骤(2)获得的用户之间的相似度值s(u,v),选取用户u所在社区内相似度最大的k个用户组成集合Nk,集合中的用户用u′表示;
    (4c)按照下面公式计算用户u对未评分的项目ix的评分预测值为:
    r^u,ix=r‾u+Σu∈Nks(u,u)(ru,ix-r‾u)Σu∈Nks(u,u),]]>
    其中表示用户u对已评分项目的评分平均值,u′表示相似度集合Nk中的用户,s(u,u′)表示用户u和u′的相似度值,表示用户u′对项目ix的评分值,表示用户u′对已评分项目的评分平均值;
    (4d)按照步骤(4c)的公式,计算出所有用户对未评分项目的评分预测值。

    说明书

    说明书基于网络社区的协同过滤推荐方法
    技术领域
    本发明涉及社会网络技术领域,具体涉及一种基于网络社区的协同过滤推荐方法。
    背景技术
    近些年,随着现实生活中计算机网络技术的出现和逐渐普及,个性化服务已成为一种新的信息服务模式,其中推荐技术是个性化服务中一个重要的组成部分。个性化推荐是指根据用户的兴趣爱好对用户信息进行收集、过滤、分类,找到用户感兴趣的项目或信息并将其推荐给用户的技术。个性化推荐应用日益广泛,应用领域涉及电子商务,网页,电影,图书,音乐等多个方面。如一些电子商务网站通过收集和分析用户的购买历史,预测用户可能感兴趣的商品并将其推荐给用户,从而提高了销售业务,又如搜索引擎通过分析用户浏览网页的历史行为,对网页进行分类和排序,进而向用户推荐更精准的信息等。
    目前推荐技术主要分为基于内容的推荐技术和基于协同过滤的推荐技术两大类。传统基于内容的推荐方法通过收集项目的内容或属性信息等特征因素,依据用户信息与对应项目的匹配程度,推荐具有相似属性的项目而不考虑历史评分?;谛说耐萍龇椒ㄔ蛲ü占没У钠婪中畔?计算出用户与用户之间的相似度,并通过获得原用户相似度较高的用户对项目的偏好,来预测原用户对项目的偏好。相比于基于内容的推荐技术,协同过滤技术无需获得对象的信息,可以在缺乏对象内容描述的情况下进行推荐。
    协同过滤推荐技术广泛应用于推荐系统中,然而其同样存在数据稀疏性等问题。所谓数据稀疏性问题是指在一个推荐系统中,用户的数量通常远小于项目的数量,很多用户对项目的评价数据较少,造成了协同过滤技术对于数据的缺乏,最终影响推荐系统的准确性。
    随着网络技术特别是Facebook、人人网等社交网站的兴起,社会网络逐渐成为复杂网络领域的研究热点。社会网络以个人为节点构成社会结构,人与人之间通过相互作用 的关系联结起来。相互作用的关系包括友谊、利益关系、宗教信仰等等。根据大量的研究发现,在许多社会网络中都有一个典型的特征结构——社区结构,即一个复杂网络可以划分成若干社区。通常认为,一个明显的社区结构要求社区内的节点连接相对紧密,社区间的节点连接相对稀疏。同一社区内的点往往具有相似的性质,检测这些具有相似性质的社区可以提供重要信息,有助于理解和推测网络的结构和个体之间的关系。
    通常一个社会网络可以建模为G=(V,E)模型,其中V表示一组节点或顶点,E表示一个链接的集合,称为边集,用于连接任意两个节点。传统的社区结构检测方法主要分为基于图分割的方法和基于层次聚类的方法?;谕挤指畹姆椒ㄊ墙缫酝夹涡问交殖扇舾筛鲎蛹?,同时要求各子集间连接边尽可能少。然而这种方法通常对划分社区的个数有明确的限制?;诓愦尉劾嗟姆椒ㄔ蚴峭ü煌椒ń⒃ざㄒ迤舴⒐嬖?,这类方法通常能够较快速的获得社区结构,但对于不同类型的网络划分结果差异较大。
    发明内容
    本次发明的目的在于针对上述已有技术的不足,提出一种基于相似度的社区检测方法,以有效解决数据稀疏性问题,提高推荐效率。
    实现本发明目的,本发明的技术方案包括如下步骤:
    1.一种基于网络社区的协同过滤推荐方法,包括如下步骤:
    (1)获取用户对待推荐项目的评分信息,通过用户对待推荐项目的评分数据间接生成用户与用户之间的关系网络,其中任意两个用户共同评分的项目个数表示这两个用户之间的权值关系,这些用户之间的权值关系构成用户与用户的关系网络,用户对项目的评分信息用矩阵R(m,n)表示为:
    R(m,n)=r11,r12...,r1j...,r1n......ri1,ri2...,rij...,rin......rm1,rm2...,rmj...,rmn,]]>
    其中m和n分别表示用户数和项目数,rij表示矩阵中第i行第j列的元素用户i对项目j的 评分值;
    (2)通过用户之间的关系网络,计算任意两个用户u和v之间的相似度s(u,v);
    (3)将获得的用户与用户的关系网络划分成若干个用户社区:
    (3a)将每个用户比作一个节点,获得用户网络的节点数n,随机生成Pop=50个初始个体,将每个个体用从1到n的一种随机排列表示为AP,即:
    AP={v1,...vi,...vn},
    其中vi表示第i个节点,i∈[1,n];
    (3b)设AC表示社区集合,对每个个体的随机排列进行解码:
    (3b1)设解码的最初时刻AC为空集合,即集合中社区的数量m为0,将随机排列AP的初始节点v1加入到一个新的空社区Cm+1中,并将此社区加入到社区集合AC中,此时m=m+1;
    (3b2)定义T(Cj)表示第j个社区Cj的质量函数
    T(Cj)=SinCjSinCj+SoutCj,]]>
    其中表示第j个社区Cj的内部节点相似度之和,表示第j个社区Cj内部节点与外部节点相似度之和;
    (3b3)将随机排列AP中的节点从第二个节点v2开始,依次判断是否加入到社区C1,…Cj,...,Cm中:
    计算社区C1的质量函数值T(C1)和v2加入社区C1后的值T(C1∪v2),当满足T(C1∪v2)>T(C1)时,将节点v2加入到社区C1中并跳到下一个节点v3,否则判断节点v2是否加入到社区C2中,当满足T(C2∪v2)>T(C2)时,将节点v2加入到社区C2中并跳到下一个节点v3,否则判断节点v2是否加入到社区C3中,以此类推,直到节点v2加入到对应的社区中并跳到下一个节点v3;
    如果节点v2不能加入到AC的任意一个社区,则将节点v2加入到一个新的空社区Cm+1中并将此社区加入到社区集合AC中,跳到下一个节点v3,此时m=m+1;
    根据上述规则将所有节点都划分到对应社区中,即将AP解码为AC={C1,…Cj,...,Cm};
    (3c)生成新的个体的随机排列AP′:
    (3c1)定义用于评价每个个体社区划分好坏的适应度函数fun(AC)为:
    fun(AC)=Σj=1mT(Cj)/m,]]>
    其中T(Cj)表示第j个社区Cj的质量函数,m表示社区的数量;
    (3c2)按照适应度函数公式计算出每个个体的适应度函数值,选择出适应度函数值大小排名前10%的个体保留,其余90%的个体再随机生成新的个体的随机排列AP′;
    (3d)获得用户关系网络的最终社区划分:
    (3d1)对生成的新的排列个体AP′,采用步骤(3b)的方式解码,并计算解码后的个体的适应度值;
    (3d2)将之前保留的10%个个体与新生成的个体重新放到一起,挑选出适应度值最大的前10%个个体,将其余90%的个体再重新生成新的排列个体;
    (3d3)循环步骤(3d1)和(3d2)共10次,在最后一次循环后选出适应度函数值最高的个体,并将其对应的社区集合作为最后的社区划分集合:ACu={Cu1,…Cuj,…,Cum},其中m表示社区个数,Cuj表示第j个社区;
    (4)将用户关系网络划分为社区后,对用户未评分的项目进行预测评分,得到未评分项目的评分预测值;
    (5)将评分预测值中最大的项目推荐给用户。
    本发明与现有的技术相比具有以下优点:
    1.本发明通过在社区内寻找相似度较高的用户,获得了用户和用户之间的潜在关系,有效解决了传统协同过滤推荐中用户数据稀疏性问题,因为通常在一个社区内,用户具有相似的兴趣爱好,所以可以得到更多用户之间信任度较高关系数据。
    2.本发明由于在社区检测中提出了基于相似度的社区质量函数和适应度函数,通过将随机排列解码为社区集合,并选出适应度函数最高的社区集合,能得到较好的网络社区划分。
    3.本发明将网络社区检测技术与传统协同过滤推荐技术相结合,提高了推荐效率。
    仿真实验结果表明,本发明提出的基于网络社团的协同过滤推荐方法比传统协同过滤推荐方法能得到更好的推荐结果。
    附图说明
    图1是本发明的实现总流程图;
    图2是用户与项目关系的网络示意图;
    图3是本发明对用户网络进行社区检测的子流程图;
    图4是本发明关于用户对未评分项目进行预测评分的子流程图;
    图5是用传统协同过滤方法与本发明方法对movielens数据集所得推荐效果评价指标MAE值的比较示意图;
    图6是传统协同过滤方法与本发明方法对movielens数据集所得推荐效果评价指标RMSE值的比较示意图。
    具体实施方式
    为了对本发明进行清楚描述,本实例以用户对电影的推荐为例,但不构成对本发明的任何限制,本发明可以适用于所有的用户-项目推荐系统,例如用户对商品、网页的推荐等。
    参照图1,本发明的实施步骤如下:
    步骤1.获取用户对待推荐电影的评分信息。
    1a)将用户对电影的评分信息用矩阵R(m,n)表示为:
    R(m,n)=r11,r12...,r1j...,r1n......ri1,ri2...,rij...,rin......rm1,rm2...,rmj...,rmn,]]>
    其中m和n分别表示用户数和项目数,rij表示矩阵中第i行第j列的元素用户i对项目j的评分值,这里的项目指代电影,评分指用户对电影的打分,在其他情形项目还可指代商品、网页、图书等要推荐的内容,评分可以指代观看次数、浏览次数、购买记录等;
    1b)通过用户对待推荐项目的评分数据间接生成用户与用户之间的关系网络,其中任意两个用户共同评分的项目个数表示这两个用户之间的权值关系,这些用户之间的权值关系构成用户与用户的关系网络,如图2所示。
    图2给出了表示一个简单的用户对电影的评分结构,图2中较大的节点代表用户,较小的节点代表电影,边上权值表示用户对电影的评分,由图2可知,用户Ua和用户Ub共同评分了三个电影,因此他们之间的权值w(Ua,Ub)=3。
    步骤2.通过用户之间的关系网络,计算任意两个用户u和v之间的相似度s(u,v)。
    计算任意两个用户u和v之间的相似度s(u,v),有许多现有的计算公式,例如余弦相似度公式、Pearson相关系数公式、Jaccard指标公式等,余弦相似度计算公式如下所示:
    s(u,v)=Σx∈Γ(u)Γ(v)w(u,x)·w(v,x)Σx∈Γ(u)w2(u,x)·Σx∈Γ(v)w2(v,x),]]>
    式中Γ(u)表示用户u及与用户u相连接的用户集合,Γ(v)表示用户v及与用户v相连接的用户集合,x∈Γ(u)∩Γ(v)表示同时与用户u和用户v相连接的用户,w(u,x)表示用户u和用户x的权值,w(v,x)表示用户v和用户x的权值;
    Pearson相关系数计算公式如下所示:
    p(u,v)=Σx∈Γ(u)Γ(v)[w(u,x)-w‾u]·[w(v,x)-w‾v]Σx∈Γ(u)Γ(v)[w(u,x)-w‾u]2·Σx∈Γ(u)Γ(v)[w(v,x)-w‾v]2,]]>
    式中Γ(u)表示用户u及与用户u相连接的用户集合,Γ(v)表示用户v及与用户v相连接的用户集合,x∈Γ(u)∩Γ(v)表示同时与用户u和用户v相连接的用户,w(u,x)表示用户u和用户x的权值,w(v,x)表示用户v和用户x的权值,表示用户u与其他用户的权值的平均值,表示用户v与其他用户的权值的平均值;
    Jaccard指标计算公式如下所示:
    j(u,v)=|NuNv||NuNv|,]]>
    式中Nu表示与用户u连接的用户集合,Nv表示与用户v连接的用户集合。
    相比于其他相似度公式,余弦相似度公式获得的相似度准确率较高,计算复杂度相对较低,应用也最为广泛,因此本发明选用余弦相似度公式,计算任意两个用户u和v之间的相似度s(u,v)。
    步骤3.将获得的用户与用户的关系网络划分成若干个用户社区。
    传统的网络社区检测方法主要包括基于图分割的方法和基于层次聚类的方法?;谕挤指畹姆椒ǖ幕舅枷胧墙缫酝夹涡问交殖扇舾筛鲎蛹?,同时要求各子集间连接边尽可能少。主要方法包括谱聚类方法和Kernighan-Lin方法等,谱聚类方法主要采用二次型优化技术最小化预定义的“截”函数?!敖亍奔粗缸油涞牧用芏?,当一个网络被划分为两个子网络时,具有最小“截”的划分被认为是最优的网络划分;Kernighan-Lin方法主要通过极小化社区之间连接数目与社区内连接数目之差,并将网络划分为两个大小已知的社区。
    基于层次聚类的方法则是通过不同方法建立预定义启发规则获得社区结构。著名的方法包括基于边介数的GN分裂方法等。GN分裂方法的基本思想是不断移除网络中边介数最大的边从而将整个网络划分成若干个社区,其中边介数定义为网络中所有最短路径中经过该边的路径的数目占最短路径总数的比例。
    与传统的社区检测方法相比,本发明应用的社区检测方法以相似度为基础,传统协同过滤推荐技术也应用了相似度技术,因此本发明采用的社区检测能够很好的与传统协同过滤推荐技术相结合。
    参照图3,本步骤的实现如下:
    (3a)将每个用户比作一个节点,获得用户网络的节点数n,随机生成Pop=50个初始个体,将每个个体用从1到n的一种随机排列表示为AP,即:
    AP={v1,...vi,...vn},
    其中vi表示第i个节点,i∈[1,n];
    (3b)设AC表示社区集合,对每个个体的随机排列进行解码:
    (3b1)设解码的最初时刻AC为空集合,即集合中社区的数量m为0,将随机排列AP的初始节点v1加入到一个新的空社区Cm+1中,并将此社区加入到社区集合AC中,此时m=m+1;
    (3b2)定义T(Cj)表示第j个社区Cj的质量函数
    T(Cj)=SinCjSinCj+SoutCj,]]>
    其中表示第j个社区Cj的内部节点相似度之和,表示第j个社区Cj内部节点与外部节点相似度之和;
    (3b3)将随机排列AP中的节点从第二个节点v2开始,依次判断是否加入到社区C1,…Cj,...,Cm中:
    计算社区C1的质量函数值T(C1)和v2加入社区C1后的值T(C1∪v2),当满足T(C1∪v2)>T(C1)时,将节点v2加入到社区C1中并跳到下一个节点v3,否则判断节点v2是否加入到社区C2中,当满足T(C2∪v2)>T(C2)时,将节点v2加入到社区C2中并跳到下一个节点v3,否则判断节点v2是否加入到社区C3中,以此类推,直到节点v2加入到对应的社区中并跳到下一个节点v3;
    如果节点v2不能加入到AC的任意一个社区,则将节点v2加入到一个新的空社区Cm+1中并将此社区加入到社区集合AC中,跳到下一个节点v3,此时m=m+1;
    根据上述规则将所有节点都划分到对应社区中,即将AP解码为AC={C1,…Cj,...,Cm};
    (3c)生成新的个体的随机排列AP′:
    (3c1)定义用于评价每个个体社区划分好坏的适应度函数fun(AC)为:
    fun(AC)=Σj=1mT(Cj)/m,]]>
    其中T(Cj)表示第j个社区Cj的质量函数,m表示社区的数量;
    (3c2)按照适应度函数公式计算出每个个体的适应度函数值,选择出适应度函数值大小排名前10%的个体保留,其余90%的个体再随机生成新的个体的随机排列AP′;
    (3d)获得用户关系网络的最终社区划分:
    (3d1)对生成的新的排列个体AP′,采用步骤(3b)的方式解码,并计算解码后的个体的适应度值;
    (3d2)将之前保留的10%个个体与新生成的个体重新放到一起,挑选出适应度值最大的前10%个个体,将其余90%的个体再重新生成新的排列个体;
    (3d3)循环步骤(3d1)和(3d2)共10次,在最后一次循环后选出适应度函数值最高的个体,并将其对应的社区集合作为最后的社区划分集合:ACu={Cu1,…Cuj,…,Cum},其中m表示社区个数,Cuj表示第j个社区。
    步骤4.将用户关系网络划分为社区后,对用户未评分的项目进行预测评分,得到未评分项目的评分预测值。
    传统的协同过滤推荐步骤包括:获得目标用户对已评分项目的评分平均值;计算用户与其他用户的相似度;选取最近邻的k个相似度用户作为近邻用户域;通过用户的评分平均值和近邻用户域计算目标用户对未评分项目的评分预测值,并将预测值最大的项目推荐给用户。
    传统协同过滤推荐用户之间的数据较为稀疏,并且仅仅与目标用户相似度较高的用户对项目的评分有时参考性也较低,而通常在一个社区内,用户具有相似的兴趣爱好,所以可以得到更多用户之间信任度较高关系数据,因此本发明通过在社区内获得目标用户的最近邻用户,能够提供推荐效率。
    参照图4,本步骤的具体实现如下:
    (4a)获得用户对已评分项目的评分平均值,
    在用户对项目的评分矩阵R(m,n)中,计算用户u对已评分项目的评分平均值:其中n为总的项目数,s为已评分的项目数,元素rui表示用户u对项目i的评分值,rui=0表示用户u对项目i未评分;
    (4b)根据步骤(2)获得的用户之间的相似度值s(u,v),选取用户u所在社区内相似度最大的k个用户组成集合Nk,集合中的用户用u′表示;
    (4c)计算用户u对未评分项目ix的评分预测值
    (4c1)计算用户集合Nk中用户u′对已评分项目的评分平均值
    (4c2)对用户未评分的项目ix,根据用户u与u′的相似度s(u,u′)和u′对已评分项目的评分平均值计算集合Nk内用户u′对ix的评分偏差
    Δruix=Σu∈Nks(u,u)(ru,ix-r‾u)Σu∈Nks(u,u),]]>
    其中u′表示相似度集合Nk中的用户,s(u,u′)表示用户u和u′的相似度值,表示用户u′对项目ix的评分值,表示用户u′对已评分项目的评分平均值;
    (4c3)将用户u对已评分项目的评分平均值与集合Nk内用户u′对ix的评分偏差相加,得到用户u对未评分的项目ix的评分预测值为:
    r^u,ix=r‾u+Δruix=r‾u+Σu∈Nks(u,u)(ru,ix-r‾u)Σu∈Nks(u,u);]]>
    (4d)按照步骤(4c3)的公式,计算出所有用户对未评分项目的评分预测值。
    步骤5.将评分预测值中最大的项目推荐给用户,即从所有评分预测值中选出最大预测值对应的电影,推荐给用户。
    本发明的效果可以通过以下仿真实验进行验证:
    1.实验运行环境和条件设置
    实验运行的环境:CPU为Intel(R)Core(TM)[email protected],内存为2GB,硬盘空间64GB,编译环境为Microsoft Visual Studio 2010,编译语言为C++。
    2.实验内容和结果分析:
    本发明选用Movielens电影推荐系统的一个经典数据集,数据包含943个用户对1682部电影的100000条评分信息,每个用户至少对20部电影评分,评分为从1到5的整数值。将数据集中的数据分成训练数据和测试数据两部分,给定数据集中80%的用户对电 影的评分数据作为训练数据,去预测剩余20%用户对电影的评分值,并将预测得到的评分值与真实的评分值比较。
    本发明选用常用的推荐效果评价指标,即平均绝对误差MAE和均方根误差RMSE作为推荐评价指标。其中MAE反应预测评分和真实评分的误差的平均值,定义如下:
    MAE=Σi=1N(pi-qi)N,]]>
    其中N表示测试集大小,pi和qi分别代表用户预测评分和实际用户评分。
    RMSE反应预测评分和真实评分的均方差值,定义如下:
    RMSE=Σi=1N(pi-qi)2N,]]>
    其中N表示测试集大小,pi和qi分别代表用户预测评分和实际用户评分,MAE和RMSE值越高表示预测期望越低,反之值越低表示预测越准确。
    本实验选用基于余弦相似度的传统协同过滤方法CFC和基于Pearson相关系数的传统协同过滤方法CFP与本发明进行误差比较,由于平均绝对误差MAE和RMSE都受到相似度用户数k的影响,故测试三种方法在不同k值时所得的MAE值和RMSE值,为便于比较,将三种方法在不同k值时所得的MAE值和RMSE值绘制成折线图,其中平均绝对误差MAE比较结果如图5,均方根误差RMSE的比较结果图6所示。
    从图5和图6的实验结果可以看出,本发明与传统协同过滤推荐方法相比,其MAE值和RMSE值都得到了不同程度的降低,表明本发明通过将网络社区检测与协同过滤推荐技术相结合,有效地提高了系统推荐的精度。

    关于本文
    本文标题:基于网络社区的协同过滤推荐方法.pdf
    链接地址://www.4mum.com.cn/p-6185448.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    [email protected] 2017-2018 www.4mum.com.cn网站版权所有
    经营许可证编号:粤ICP备17046363号-1 
     


    收起
    展开
  • 四川郎酒股份有限公司获第十二届人民企业社会责任奖年度环保奖 2019-05-13
  • 银保监会新规剑指大企业多头融资和过度融资 2019-05-12
  • 韩国再提4国联合申办世界杯 中国网友无视:我们自己来 2019-05-11
  • 中国人为什么一定要买房? 2019-05-11
  • 十九大精神进校园:风正扬帆当有为 勇做时代弄潮儿 2019-05-10
  • 粽叶飘香幸福邻里——廊坊市举办“我们的节日·端午”主题活动 2019-05-09
  • 太原设禁鸣路段 设备在测试中 2019-05-09
  • 拜耳医药保健有限公司获第十二届人民企业社会责任奖年度企业奖 2019-05-08
  • “港独”没出路!“梁天琦们”该醒醒了 2019-05-07
  • 陈卫平:中国文化内涵包含三方面 文化复兴表现在其中 2019-05-06
  • 人民日报客户端辟谣:“合成军装照”产品请放心使用 2019-05-05
  • 【十九大·理论新视野】为什么要“建设现代化经济体系”?   2019-05-04
  • 聚焦2017年乌鲁木齐市老城区改造提升工程 2019-05-04
  • 【专家谈】上合组织——构建区域命运共同体的有力实践者 2019-05-03
  • 【华商侃车NO.192】 亲!楼市火爆,别忘了买车位啊! 2019-05-03
  • 河南481快赢 星火矿场怎么赚钱 北京快乐8大小技巧 二码三肖100% 所谓棋牌下载苹果版 婚庆公司做销售赚钱吗 双色球的走势图 湖南的体彩幸运赛车 3期计划防止连挂倍投法 重庆快乐10分在线投注 骰宝大小必胜法 全网最早30码特围论坛 178棋牌财神捕鱼 梦幻西游杀天罡地煞赚钱吗 陕西快乐10分几点停售 趣头条赚钱电脑版登入