书签 分享 收藏 举报 版权申诉 / 11

一种基于组合学习的群组推荐方法.pdf

  • 上传人:111****112
  • 文档编号:1290607
  • 上传时间:2018-04-13
  • 格式:PDF
  • 页数:11
  • 大小:659.88KB
  • 摘要
    申请专利号:

    CN201610086248.3

    申请日:

    2016.02.15

    公开号:

    CN106528584A

    公开日:

    2017.03.22

    当前法律状态:

    实审

    有效性:

    审中

    法律详情:

    实质审查的生效IPC(主分类):G06F 17/30申请日:20160215|||公开

    IPC分类号:

    G06F17/30; G06Q50/00(2012.01)I

    主分类号:

    G06F17/30

    申请人:

    中山大学

    发明人:

    王昌栋; 赖剑煌; 李玫

    地址:

    510275 广东省广州市海珠区新港西路135号

    优先权:

    专利代理机构:

    广州粤高专利商标代理有限公司 44102

    代理人:

    林丽明;龚素琴

    PDF完整版下载: PDF下载
    内容摘要

    本发明提出一种基于组合学习的群组推荐方法,包括:方式1:基于K最近邻算法获得所有用户的个人推荐列表,挑选出组A成员的推荐列表,将组A成员的推荐列表中根据组合学习的方法得出组A的推荐列表;方式2:将组A内成员的评分列表累加,求平均值得到组A的评分列表,基于K最近邻算法,根据不在组A中成员的评分列表产生组A的推荐列表;方式3:构建组的喜好模型,将每个用户的喜好用特征因子向量表示,根据单个用户的喜好向量得到表示组喜好的特征因子向量,根据此产生组A的推荐列表;基于以上三种方式分别产生组A的三个推荐列表,并基于组合学习的方法组合出一个更准确的推荐列表。

    权利要求书

    1.一种基于组合学习的群组推荐方法,其特征在于,包括: 方式1:基于K最近邻算法获得所有用户的个人推荐列表,挑选出组A内每个成员的推荐列表,将每个成员的推荐列表根据组合学习的方法得出一个组A的推荐列表; 具体过程为:每个推荐列表中物品的排序与它们自身的影响力有关,首先将每个物品的影响力归一化,用0-1之间的数值表示,然后得到每个物品在不同列表中归一化后的影响力组成向量r=(r1…,rn),rj代表在第j个推荐列表中物品的归一化后的影响力,利用物品的影响力向量得出最终物品在列表中所应占的影响力,并根据每个物品影响力的高低产生一个组合后的推荐列表; 方式2:将组A内成员对每个物品的评分累加,取平均值以此代表组A对每个物品的评分,得到组A的评分列表,基于K最近邻算法,根据不在组A中成员的评分列表产生组A的推荐列表; 方式3:构建组的喜好模型,将每个用户的喜好用特征因子向量表示,根据单个用户的喜好向量得到表示组喜好的特征因子向量,根据此产生组A的推荐列表; 基于以上三种方式分别产生组A的三个推荐列表,并基于组合学习的方法组合出一个更准确的推荐列表,具体过程为: 即将同一组中n个项排序的k个列表合并成一个完整列表的问题,合并后的列表最佳的描述了k个列表所代表的信息,具体采用的是排序整合中的鲁棒排序整合算法。 2.根据权利要求1所述的基于组合学习的群组推荐方法,其特征在于,所述方式1的具体实现方式为: 11)用户通过以下公式计算得到相似度Sim(u,v): 其中ruj表示用户u对物品j的评分,rvj表示用户v对物品j的评分,ruv表 示用户u对物品v的评分,rvj表示用户v对物品j的评分,表示用户u对所有物品评分的平均值,表示用户v对所有物品评分的平均值,Iuv表示用户u和用户v共同评分过的物品集; 每个用户u根据计算得到的相似度找出最相似的k个用户,放在集合S中; 12)用户u对物品i的评分由以下公式计算得到: 13)通过评分排名得出每个用户的推荐列表,挑出组A中成员的推荐列表; 14)将组A中各成员的推荐列表通过组合学习的方法组合,得到组A的推荐列表。 3.根据权利要求1所述的基于组合学习的群组推荐方法,其特征在于,所述方式2的具体实现方式为: 根据以下公式得到组A的评分列表Rij其中ruj表示用户u对物品j的评分,Ui表示第i个组的用户总数; 22)将组A看成一个虚拟人“A”,计算与其他不在组A内成员的相似度Sim(A,v): 其中RAj表示组A对物品j的评分,表示组A对所有物品评分的平均值,IAv表示组A和用户v共同评分过的物品集; 23)选出与“A”最相似的k个用户,基于K最近邻算法得到组A的推荐列表。 4.根据权利要求1所述的基于组合学习的群组推荐方法,其特征在于,所述方式3的具体实现方式为: 31)基于奇异值矩阵分解将用户评分矩阵分解为用户和物品的特征因子矩 阵U∈Rf×s和M∈Rf×t,其中f表示特征数,s表示用户数,t表示物品数; 32)将用户喜好表示成特征因子向量P=(f1,f2,…,fc); 33)合并用户喜好特征因子向量,用距离概念来衡量两个用户喜好的不一致性; 根据该距离概念两个点间距离有以下定义: d(1,0)=d(0,1)=d(0,-1)=d(-1,0)=1 d(1,1)=d(0,0)=d(-1,-1)=0 d(1,-1)=d(-1,1)=2 应用到本场景中,两个用户ui,uj间的分歧表示为: 其中Pi、Pj分别表示用户i、j的喜好的特征因子向量,aq、bq分别表示不同特征向量的第q个位置的值; 34)最终组喜好的特征因子向量G应保证组内成员分歧最小: ∑d(aij,aj)最小,其中i=1,2...N,j=1,2…K; 将每个特征的权重标准化: 其中Wmax表示在一个用户的特征因子向量中最大的值,Wmin表示在一个用户的特征因子向量中最小的值,Wj表示用户的特征因子向量中第j个特征的值。 为每个特征重新赋值如下:其中s代表组内用户数,Wij'表示用户j的特征因子向量中特征i的值; 35)将得到的组A的特征因子向量与物品的特征因子矩阵根据以下公式得出组A的评分矩阵:P=GiMjT36)最终组A的推荐列表通过评分高低排序得到。

    说明书

    一种基于组合学习的群组推荐方法

    技术领域

    本发明涉及计算机技术领域,更具体地,涉及一种基于组合学习的群组推荐方法。

    背景技术

    现如今,人类正处于信息大爆炸时代。为了有效地分析和利用这些数据,推荐系统作为帮助电子商务网站为其顾客提供决策支持和信息服务的一种高级商务智能平台被广泛应用。

    随着社交网络的快速发展,越来越多的人们愿意分享他们的群组活动,例如和同事一起吃晚饭,和配偶一起看电影等。这激发了旨在为一组用户进行推荐的组推荐的研究学习。

    群组推荐问题十分具有挑战性,因为组内不同用户喜好不一样,如何进行推荐使得组内平均满意度最高仍是个难题。以往的群组推荐方法包括基于内存的方法和基于模型的方法两类。基于内存的方法可继续细分为三类:1)为组内每个成员产生推荐物品列表,将这些列表进行组合得到一个组的推荐列表;2)累加组内每个用户对每个物品的评分,取平均值,以此得到一个组的评分列表。根据评分产生组的推荐列表;3)构建组的喜好模型,根据模型产生推荐列表。基于内存的方法的主要缺点就是忽略了组内成员的互相影响。基于模型的方法则是利用一些概率模型来模拟群组推荐的过程,这类方法主要缺点是有些模型可能现实中并不存在。

    发明内容

    本发明是在基于内存的方法的三种推荐算法的基础上提出一种基于组合学习的群组推荐方法,该方法可以产生更加准确结果。

    为了实现上述目的,本发明的技术方案为:

    一种基于组合学习的群组推荐方法,设共有m个组,n个用户,其中一个组用组A代表,推荐方法包括:

    方式1:基于K最近邻算法获得所有用户的个人推荐列表,挑选出组A内 每个成员的推荐列表,将每个成员的推荐列表根据组合学习的方法得出一个组A的推荐列表;

    假设组A中有3个成员的话,首先从n个用户的推荐列表中将组A的3个成员的推荐列表挑出,最终借助组合学习的方法将这3个推荐列表组合成1个列表,此列表即组A的推荐列表。

    组合学习的方法具体过程为:每个推荐列表中物品的排序与它们自身的影响力有关,首先将每个物品的影响力归一化,用0-1之间的数值表示,然后得到每个物品在不同列表中归一化后的影响力组成向量r=(r1…,rn),rj代表在第j个推荐列表中物品的归一化后的影响力,利用物品的影响力向量得出最终物品在列表中所应占的影响力,并根据每个物品影响力的高低产生一个组合后的推荐列表;

    方式2:将组A内成员对每个物品的评分累加,取平均值以此代表组A对每个物品的评分,得到组A的评分列表,基于K最近邻算法,根据不在组A中成员的评分列表产生组A的推荐列表;

    方式3:构建组的喜好模型,将每个用户的喜好用特征因子向量表示,根据单个用户的喜好向量得到表示组喜好的特征因子向量,根据此产生组A的推荐列表;

    基于以上三种方式分别产生组A的三个推荐列表,并基于组合学习的方法组合出一个更准确的推荐列表,具体过程为:

    即将同一组中n个项排序的k个列表合并成一个完整列表的问题,合并后的列表最佳的描述了k个列表所代表的信息,具体采用的是排序整合中的鲁棒排序整合算法(Robust Rank Aggregation)。

    与上述方式1中的组合学习方法相同,首先每个推荐列表中物品的排序与它们自身的影响力有关,先将每个物品的影响力归一化,用0-1之间的数值表示。然后可以得到每个物品在不同列表中归一化后的权重组成向量每个推荐列表中物品的排序与它们自身的影响力有关,首先将每个物品的影响力归一化,用0-1之间的数值表示。然后可以得到每个物品在不同列表中归一化后的影响力组成向量r=(r1…,rn),rj代表在第j个推荐列表中物品的归一化后的影响力。 利用物品的影响力向量得出最终物品在列表中所应占的影响力,并根据每个物品影响力的高低产生一个组合后的推荐列表。,rj代表在第j个推荐列表中物品的归一化后的权重。利用物品在每个推荐列表中的权重得出最终物品在列表中所占的影响力,并根据每个物品影响力的高低产生一个组合后的推荐列表。

    更进一步的,所述方式1的具体实现方式为:

    11)用户通过以下公式计算得到相似度Sim(u,v):

    其中ruj表示用户u对物品j的评分,rvj表示用户v对物品j的评分,ruv表示用户u对物品v的评分,rvj表示用户v对物品j的评分,表示用户u对所有物品评分的平均值,表示用户v对所有物品评分的平均值,Iuv表示用户u和用户v共同评分过的物品集;

    每个用户u根据计算得到的相似度找出最相似的k个用户,放在集合S中;

    12)用户u对物品i的评分r’uj由以下公式计算得到:

    13)通过评分排名得出每个用户的推荐列表,挑出组A中成员的推荐列表;

    14)将组A中各成员的推荐列表通过组合学习的方法组合,得到组A的推荐列表,

    组合学习的方法具体为:

    每个推荐列表中物品的排序与它们自身的影响力有关,首先将每个物品的影响力归一化,用0-1之间的数值表示。然后可以得到每个物品在不同列表中归一化后的影响力组成向量r=(r1…,rn),rj代表在第j个推荐列表中物品的归一化后的影响力。利用物品的影响力向量得出最终物品在列表中所应占的影响力,并根据每个物品影响力的高低产生一个组合后的推荐列表。

    更进一步的,所述方式2的具体实现方式为:

    根据以下公式得到组A的评分列表Rij

    其中ruj表示用户u对物品j的评分,Ui表示第i个组的用户总数;

    22)将组A看成一个虚拟人“A”,计算与其他不在组A内成员的相似度Sim(A,v):

    其中RAj表示组A对物品j的评分,表示组A对所有物品评分的平均值,IAv表示组A和用户v共同评分过的物品集;

    23)选出与“A”最相似的k个用户,基于K最近邻算法得到组A的推荐列表。

    更进一步的,所述方式3的具体实现方式为:

    31)基于奇异值矩阵分解将用户评分矩阵分解为用户和物品的特征因子矩阵U∈Rf×s和M∈Rf×t,其中f表示特征数,s表示用户数,t表示物品数;

    32)将用户喜好表示成特征因子向量P=(f1,f2,...,fc);

    33)合并用户喜好特征因子向量,用距离概念来衡量两个用户喜好的不一致性;

    根据该距离概念两个点间距离有以下定义:

    d(1,0)=d(0,1)=d(0,-1)=d(-1,0)=1

    d(1,1)=d(0,0)=d(-1,-1)=0

    d(1,-1)=d(-1,1)=2

    应用到本场景中,两个用户ui,uj间的分歧表示为:

    其中Pi、Pj分别表示用户i、j的喜好的特征因子向量,aq、bq分别表示不 同特征向量的第q个位置的值;

    34)最终组喜好的特征因子向量G应保证组内成员分歧最小:

    即:∑d(aij,aj)最小,其中i=1,2...N,j=1,2...K;

    将每个特征的权重标准化:

    其中Wmax表示在一个用户的特征因子向量中最大的值,Wmin表示在一个用户的特征因子向量中最小的值,Wj表示用户的特征因子向量中第j个特征的值。

    为每个特征重新赋值如下:

    其中s代表组内用户数,Wij'表示用户j的特征因子向量中特征i的值;

    35)将得到的组A的特征因子向量与物品的特征因子矩阵根据以下公式得出组A的评分矩阵:

    36)最终组A的推荐列表通过评分高低排序得到。

    与现有技术相比,本发明的有益效果为:

    本方法将三种典型的基于内存的组推荐算法分别产生的推荐列表借助组合学习的方法得到了一个更加鲁棒更加准确的推荐结果。本方法最终采取NDCG做为评测指标,实验结果表明,当KNN的K达到最优时,本方法产生的推荐列表相比方式1、方式2、方式3这三种方式产生的结果,效果更优,更加准确。

    附图说明

    图1是根据本发明的流程图。

    图2是根据本发明实施例的K最近邻算法的示意图。

    图3是根据本发明实施例的将稀疏的用户评分矩阵填满后给用户进行推荐的方法的示意图。

    图4是根据本发明实施例的第三种产生组推荐方法中已知用户评分矩阵通过矩阵分解得到用户特征因子矩阵和物品特征因子矩阵的示意图。

    图5是本发明实施例的第三种产生组推荐方法的过程示意图。

    具体实施方式

    下面结合附图对本发明做进一步的描述,但本发明的实施方式并不限于此。

    如图1所示,为本发明的流程图,本发明是基于组推荐的三种基本方法进行应用产生三种推荐结果,然后根据组合学习方法将三种结果组合得到最终结果。

    一种基于组合学习的群组推荐方法,包括:

    方式1:基于K最近邻算法获得所有用户的个人推荐列表,挑选出组A成员的推荐列表,将组A成员的推荐列表中根据组合学习的方法得出组A的推荐列表;

    方式2:将组A内成员的评分列表累加,取平均值得到组A的评分列表,基于K最近邻算法,根据不在组A中成员的评分列表产生组A的推荐列表;

    方式3:构建组的喜好模型,将每个用户的喜好用特征因子向量表示,根据单个用户的喜好向量得到表示组喜好的特征因子向量,根据此产生组A的推荐列表;

    基于以上三种方式分别产生组A的三个推荐列表,并基于组合学习的方法组合出一个更准确的推荐列表;

    这是组合学习中的排序整合问题,即将关于同一组n个项排序的k个列表合并成一个完整列表的问题。合并后的列表最佳的描述了k个列表所代表的信息。具体采用的是排序整合中的鲁棒排序整合算法(Robust Rank Aggregation)算法

    在本实施例中,所述方式1的具体实现方式为:

    11)用户通过以下公式计算得到相似度Sim(u,v):

    其中ruj表示用户u对物品j的评分,rvj表示用户v对物品j的评分,ruv表示用户u对物品v的评分,rvj表示用户v对物品j的评分,表示用户u对所有物品评分的平均值,表示用户v对所有物品评分的平均值,Iuv表示用户u 和用户v共同评分过的物品集;

    每个用户u根据计算得到的相似度找出最相似的k个用户,放在集合S中;

    12)用户u对物品i的评分r’uj由以下公式计算得到:

    13)通过评分排名得出每个用户的推荐列表,挑出组A中成员的推荐列表;

    14)将组A中各成员的推荐列表通过组合学习的方法组合,得到组A的推荐列表。

    在本实施例中,所述方式2的具体实现方式为:

    根据以下公式得到组A的评分列表Rij

    其中ruj表示用户u对物品j的评分,Ui表示第i个组的用户总数;

    22)将组A看成一个虚拟人“A”,计算与其他不在组A内成员的相似度Sim(A,v):

    其中RAj表示组A对物品j的评分,表示组A对所有物品评分的平均值,IAv表示组A和用户v共同评分过的物品集;

    23)选出与“A”最相似的k个用户,基于K最近邻算法得到组A的推荐列表。

    在本实施例中,所述方式3的具体实现方式为:

    31)基于奇异值矩阵分解将用户评分矩阵分解为用户和物品的特征因子矩阵U∈Rf×s和M∈Rf×t,其中f表示特征数,s表示用户数,t表示物品数;

    32)将用户喜好表示成特征因子向量P=(f1,f2,…,fc);

    33)合并用户喜好特征因子向量,用距离概念来衡量两个用户喜好的不一致性;

    根据该距离概念两个点间距离有以下定义:

    d(1,0)=d(0,1)=d(0,-1)=d(-1,0)=1

    d(1,1)=d(0,0)=d(-1,-1)=0

    d(1,-1)=d(-1,1)=2

    应用到本场景中,两个用户ui,uj间的分歧表示为:

    其中Pi、Pj分别表示用户i、j的喜好的特征因子向量,aq、bq分别表示不同特征向量的第q个位置的值;如两个特征向量(1,0,-1)和(0,1,-1),a1代表(1,0,-1)中第一个位置的值1,b1代表(0,1,-1)中第一个位置的值0。这两个向量间距离为

    d(1,0)+d(1,1)+d(1,-1)+d(0,0)+d(0,1)+d(0,-1)+d(-1,0)+d(-1,1)+d(-1,-1);

    34)最终组喜好的特征因子向量G应保证组内成员分歧最小:

    即:∑d(aij,aj)最小,其中i=1,2...N,j=1,2...K;

    将每个特征的权重标准化:

    其中Wmax表示在一个用户的特征因子向量中最大的值,Wmin表示在一个用户的特征因子向量中最小的值,Wj表示用户的特征因子向量中第j个特征的值。

    为每个特征重新赋值如下:

    其中s代表组内用户数,Wij’表示用户j的特征因子向量中特征i的值;

    35)将得到的组A的特征因子向量与物品的特征因子矩阵根据以下公式得出组A的评分矩阵:

    36)最终组A的推荐列表通过评分高低排序得到。

    其中图2展示了本发明中使用广泛的K最近邻算法。首先计算用户间的相似度,然后根据相似度挑选出与用户u1最相似的k个用户。根据这k个用户对物品i2的评分,预测出u1对i2的评分。

    在本发明的第一种推荐方式中,首先利用K最近邻算法补全每个用户的评分列表,然后进行图3阐述的推荐过程。即,已知用户对所有物品的评分后,选出评分列表中评分最高的n个物品,产生用户的推荐列表。然后将每个用户个人的推荐列表借助组合学习的方法得到组的推荐列表。

    本发明的第二种推荐方式是先将组内每个用户不完整的评分列表累加,得到组对每个物品的不完整的评分列表。然后继续采用图2展示的K最近邻算法,计算非组A成员与组A的相似度,然后根据相似度挑选出与组A最相似的k个用户。根据这k个用户对物品的评分,补全组A的评分列表,然后进行图3阐述的推荐过程。

    本发明的第三种推荐方式的过程如图5所示。首先借助图4所示的矩阵分解方法,将不完整的用户评分矩阵分解为用户因子矩阵和物品因子矩阵。将用户喜好用特征因子向量表示。根据组的喜好特征最大程度代表组内每个人的喜好的原则,挑选出有价值的特征因子,并将用户因子矩阵中每个用户的该特征因子权重相加,作为组的特征因子向量中该特征的权重。然后设函数产生的结果为组的评分列表。然后进行图3阐述的推荐过程。

    在得到三个推荐列表后,进行组合学习过程。最终得出组A的推荐列表。

    组合学习过程具体为:首先每个推荐列表中物品的排序与它们自身的影响力有关,先将每个物品的影响力归一化,用0-1之间的数值表示。然后可以得到每个物品在不同列表中归一化后的权重组成向量每个推荐列表中物品的排序与它们自身的影响力有关,首先将每个物品的影响力归一化,用0-1之间的数值表示。然后可以得到每个物品在不同列表中归一化后的影响力组成向量r=(r1…,rn),rj代表在第j个推荐列表中物品的归一化后的影响力。利用物品的影响力向量得出最终物品在列表中所应占的影响力,并根据每个物品影响力的高低产生一个组合后的推荐列表。,rj代表在第j个推荐列表中物品的归一化后的权重。利用物品在每个推荐列表中的权重得出最终物品在列表中所占的影响力,并根据每个物品影响力的高低产生一个组合后的推荐列表。

    以上所述的本发明的实施方式,并不构成对本发明保护范围的限定。任何在本发明的精神原则之内所作出的修改、等同替换和改进等,均应包含在本发 明的权利要求保护范围之内。

    关 键  词:
    一种 基于 组合 学习 推荐 方法
      专利查询网所有文档均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    0条评论

    还可以输入200字符

    暂无评论,赶快抢占沙发吧。

    关于本文
    本文标题:一种基于组合学习的群组推荐方法.pdf
    链接地址:https://www.zhuanlichaxun.net/p-1290607.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

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