一种基于用户双向关系的推荐方法
【专利摘要】本发明公开了一种基于用户双向关系的推荐方法,根据用户对已有的项目的评分记录,计算用户之间的正向和反向相似度,并得到用户的正向和反向相似用户群,然后通过正向相似用户群和反向相似用户群的加权评分预测用户评分;在二值评分模式或多值评分模式下进行,包括:1)根据用户已有的项目的评分记录,计算用户之间的正向相似度和反向相似度;2)创建正向相似用户群和反向相似用户群;3)根据正向和反向相似用户群,预测出目标用户对未知项目的评分;4)产生推荐;为了缓解数据稀疏时相似用户不足导致评分预测不准确的问题,在用户相似关系的基础上,进一步挖掘用户近似相反或反向相似关系的作用,结合用户的正反双向相似关系产生最终推荐。
【专利说明】
一种基于用户双向关系的推荐方法
技术领域
[0001] 本发明涉及信息技术、大数据技术等领域,具体的说,是一种基于用户双向关系的 推荐方法。
【背景技术】
[0002] 随着信息技术的发展,网络规模急剧扩大,网上数据急剧增多,而大数据在满足用 户的信息需求同时,带来了信息过载的问题一一用户无法从海量的信息中获取到对自己有 用的部分。推荐系统的出现使得信息过载问题得到缓解,它通过分析用户历史数据和行为, 挖掘出用户感兴趣的信息或项目并主动推荐给用户。另外,推荐系统能够提供针对性的服 务,满足了用户的个性化需求。推荐系统如今已广泛应用于电子商务、广告推荐等多个领 域。
[0003] 协同过滤推荐方法是目前推荐系统应用最为广泛最为有效的,其基本思想是具有 相同或相似兴趣偏好的用户对信息或项目的需求也是相似的。与其他推荐方法相比,协同 过滤推荐方法只需用户对项目的评价信息,因此它的数据容易获取;无需考虑项目本身属 性特征,对推荐对象没有特殊要求,能对任何可评分的对象进行推荐。
[0004] 目前,基于用户的协同过滤推荐方法通过用户评分的相似性找到目标用户的相似 用户,并根据相似用户的评分来预测目标用户对未知项目的评分。然而,由于实际推荐环境 中,用户的评分数据十分稀疏,导致目标用户的相似用户过少,或者对目标项目有评分的相 似用户过少。而在有效相似用户数量不足,甚至为零的情况下,难以准确预测出目标用户的 评分,因此使得推荐效果不佳。
【发明内容】
[0005] 本发明的目的在于缓解数据稀疏时相似用户不足导致评分预测不准确的问题,在 用户相似关系的基础上,进一步挖掘用户近似相反或反向相似关系的作用,结合用户的正 反双向相似关系,设计出一种基于用户双向关系的推荐方法。
[0006] 本发明通过下述技术方案实现:一种基于用户双向关系的推荐方法,根据用户已 有的项目的评分记录,计算用户之间的正向相似度和反向相似度,并得到用户的正向和反 向相似用户群,然后通过正向相似用户群和反向相似用户群的加权评分预测用户评分。
[0007] 进一步的为更好地实现本发明,特别采用下述设置方式:所述推荐方法在二值评 分模式或多值评分模式下进行,包括以下具体步骤:
[0008] 1)根据用户已有的项目的评分记录,计算用户之间的正向相似度和反向相似度; [0009] 2)创建正向相似用户群和反向相似用户群;
[0010] 3)根据正向和反向相似用户群,预测出目标用户对未知项目的评分;
[0011] 4)产生推荐。
[0012] 进一步的为更好地实现本发明,特别采用下述设置方式:在二值评分模式下,所述 步骤1)包括以下具体步骤:
[0013] 1-a.l)根据用户已有项目的评分记录,将用户之间的关系分为正向相似关系与反 向相似关系,将评分设置为正负两种情况;用户对项目的偏好分为正向/负向两种,如视频 网站的"顶/踩",微博的"关注/不关注";
[0014] ι-a. 2)设定两用户对某项目的评分相同则判定两用户在该项目上的偏好相同,评 分不同则判定两用户偏好相反;由于评分本身具有明显的正反关系,则有两用户对某项目 的评分相同则表示他们在该项目上的偏好相同,评分不同则偏好相反;
[0015] l-a.3)采用Jaccard(杰卡德)相关系数,结合评分相同项与共同评分项计算用户 之间的正向相似度;结合评分相反项与共同评分项计算用户之间的反向相似度;具体的基 于杰卡德相关系数的相似度度量方法,用"评分相同项/共同评分项"表示用户之间的正向 相似程度,在此基础上,进一步采用"评分相反项/共同评分项"表示用户之间的反向相似程 度;
[0016] ι-a.4)通过惩罚函数对正向相似度或/和反向相似度进行平滑处理;由于数据稀 疏会导致正向和反向相似度过度估计,则引入惩罚函数分别对正向和反向相似度进行平 滑;所述惩罚函数的原则是,当共同评分项小于给定的惩罚阈值时,正向和反向相似度降 低;否则不变。
[0017] 进一步的为更好地实现本发明,特别采用下述设置方式:在二值评分模式下,所述 步骤3)包括以下具体步骤:
[0018] 3-a.l)设定分别代表反向相似用户权重和正向相似用户权重的权重因子;由于正 向和反向相似用户群对用户推荐的影响可能不同,则引入权重因子进行权衡;
[0019] 3-a. 2)设定参考值:反向相似用户将评分的相反值作为目标用户预测的参考值; 正向相似用户将评分本身作为目标用户预测的参考值;由于用户与其反向相似用户的评分 具有近似相反的关系,因此反向相似用户将其评分的相反值作为目标用户预测评分的参 考;正向相似用户将其评分本身作为参考;
[0020] 3-a. 3)以相应的参考值为标准值,分别以正向相似度和相应的权重因子的乘积或 反向相似度和相应的权重因子的乘积作为正向相似用户与反向相似用户的权值;以正向和 反向相似用户的标准值与对应权值的加权平均值作为目标用户的预测评分。
[0021 ]进一步的为更好地实现本发明,特别采用下述设置方式:
[0022]在多值评分模式下,所述步骤1)包括以下步骤:
[0023] Ι-b.l)基于评分偏量定义用户之间的正向和反向相似关系,评分偏量通过用户当 前评分减去该用户已有评分记录的平均值得到;由于不同用户评分的标准不同,有的用户 对喜爱的项目会打5分,有的用户可能只打4分,同理对待不喜的项目也有打1分、2分甚至3 分的差异;则不能简单的认为打4分的用户和打2分的用户有完全相反的态度,也不能认为 给某一项目打相同分数的用户在该项目上的态度完全一致;为此,引入评分偏量,评分偏量 通过用户当前评分减去该用户已有评分的平均值得到;由于评分偏量平衡了用户的评分标 准,它的正负性分别代表了用户的态度基于该用户平均态度的正向和负向,有一个明确的 正反关系,所以可以基于评分偏量定义用户之间的正向和反向相似关系;
[0024] l-b. 2)将两个用户之间对所有项目的评分偏量分别表不为向量家_和向量贫,利用 向量余弦度量相似关系,两用户的正向相似度即为两用户的反向相似度为 cos(H'j;g卩用户a和用户b对所有项目的评分偏量看作向量g和,,利用向量余弦度量相 似关系,用户a和用户b的正向相似度即为·,反向相似度为-1?实际上,正向 相似度度量方法就是修正的余弦相似度算法;
[0025] l_b. 3)通过惩罚函数对正向相似度或/和反向相似度进行平滑处理,避免过度估 计;所述惩罚函数的原则是,当共同评分项小于给定的惩罚阈值时,正向和反向相似度降 低;否则不变。
[0026]进一步的为更好地实现本发明,特别采用下述设置方式:在多值评分模式下,所述 步骤3)包括以下具体步骤:
[0027] 3-b.l)设定分别代表反向相似用户权重和正向相似用户权重的权重因子;由于正 向和反向相似用户群对用户推荐的影响可能不同,引入权重因子进行权衡;
[0028] 3-b. 2)设定参考值:正向相似用户将评分偏量作为目标用户预测的参考值,反向 相似用户将评分偏量的相反值作为目标用户预测的参考值;多值评分模式下用户的双向关 系是基于用户的评分偏量而不是评分本身,因此将正向相似用户的评分偏量和反向相似用 户评分偏量的相反值作为预测评分的参考值;
[0029] 3-b. 3)以相应的参考值为标准值,分别以正向相似度和相应的权重因子的乘积与 反向相似度和相应的权重因子的乘积作为正向相似用户与反向相似用户的权值;以正向和 反向相似用户的标准值与对应权值的加权平均值作为目标用户的预测评分偏量;
[0030] 3-b.4)以预测的目标用户的评分偏量和评分均值之和作为目标用户的预测评分。
[0031] 进一步的为更好地实现本发明,特别采用下述设置方式:所述步骤2)具体为:将目 标用户与其他用户的正向相似度进行排名,取最大的K个用户为目标用户的正向相似用户 群;将目标用户与其他用户的反向相似度进行排名,取最大的K个用户为目标用户的反向相 似用户群,K的取值根据实际情况设定,K值的确定采用10折交叉检验方法,统计不同K值的 平均误差率,选择误差率最小的作为本发明的K值。
[0032] 进一步的为更好地实现本发明,特别采用下述设置方式:所述步骤4)具体为:经步 骤3)后,进行评分排名,得到排名列表,从排名列表中为目标用户推荐预测评分最大的N个 项目。
[0033] 进一步的为更好地实现本发明,特别采用下述设置方式:所述惩罚函数的原则是, 当共同评分项小于给定的惩罚阈值时,正向相似度或反向相似度降低;否则不变。
[0034] 本发明与现有技术相比,具有以下优点及有益效果:
[0035] (1)本发明为了缓解数据稀疏时相似用户不足导致评分预测不准确的问题,在用 户相似关系的基础上,进一步挖掘用户近似相反或反向相似关系的作用,结合用户的正反 双向相似关系,设计出一种基于用户双向关系的推荐方法。
[0036] (2)本发明能够在相似用户不足的情况下,发挥反向相似用户的作用,结合两者的 共同作用来缓解数据稀疏性问题,进而提高推荐精度。
[0037] (3)本发明在基于用户的协同过滤推荐方法中引入用户反向相似的关联作用;结 合了用户正向和反向相似关系的协同作用进行推荐,来缓解评分数据稀疏的问题;提出的 反向相似作用可扩展到基于项目的协同过滤推荐方法中,引申为基于项目双向关系的推荐 方法。
【附图说明】
[0038]图1为本发明工作流程图;
[0039]图2为二值评分矩阵示意图;
[0040]图3为五值评分矩阵示意图;
[0041 ]图4为创建正向和反向相似用户群示意图;
[0042]图5为产生推荐示意图。
【具体实施方式】
[0043] 下面结合实施例对本发明作进一步地详细说明,但本发明的实施方式不限于此。
[0044] 实施例1:
[0045] 本发明为了缓解数据稀疏时相似用户不足导致评分预测不准确的问题,在用户相 似关系的基础上,进一步挖掘用户近似相反或反向相似关系的作用,结合正向和反向相似 两种用户关联关系,设计出一种基于用户双向关系的推荐方法,如图1-4所示,根据用户已 有的项目的评分记录,计算用户之间的正向和反向相似度,并得到用户的正向和反向相似 用户群,然后通过正向相似用户群和反向相似用户群的加权评分预测用户评分。
[0046] 实施例2:
[0047]本实施例是在上述实施例的基础上进一步优化,进一步的为更好地实现本发明, 如图1-4所示,特别采用下述设置方式:所述推荐方法在二值评分模式下进行时,包括以下 具体步骤:
[0048]步骤1:计算用户正向和反向相似度:
[0049]二值评分模式下,用户对项目的评分数据表示为一个二值评分矩阵;如图2所示, 在一个mXn阶的二值评分矩阵条件下,m为用户数,η为项目数,矩阵元素 1?^^{-1,〇,1}表 示用户i对项目j的评分,Ru = 〇则表示未评分;
[0050]基于二值评分矩阵,采用杰卡德相关系数相似度度量方法计算用户之间的正向相 似度,即"评分相同项/共同评分项";进一步,采用"评分相反项/共同评分项"表示用户之间 的反向相似度;
[0051]由于数据稀疏会导致正向和反向相似度过度估计,本发明引入惩罚函数分别对正 向和反向相似度进行平滑。
[0052]二值评分模式下的用户正向和反向相似度度量方法分别如公式(1)和公式(2)所 示,
[0055]公式(1)和公式(2)中,Rau与Rbu分别为用户a与用户b对项目j的评分;1{*}表示一 个指示函数:{trUe,falSe} - {l,0};ri为惩罚阈值,当共同评分项小于该阈值时,对用户相 似度进行平滑,否则不变。
[0056]步骤2:创建正向和反向相似用户群:
[0057]如图4所示,将目标用户u与其他用户的正向相似度进行排名,取最大的K个用户为 目标用户的正向相似用户群P_G(u);将目标用户u与其他用户的反向相似度进行排名,取最 大的K个用户为目标用户的反向相似用户群N_G(u),K的取值根据实际情况设定。
[0058] 步骤3:预测评分:
[0059] 由于正向和反向相似用户群对用户推荐的影响可能不同,本发明引入权重因子对 正反向用户的重要性进行权衡,权重因子λ表示反向相似用户权重,权重因子(l-λ)表示正 向相似用户权重。
[0060] 二值评分模式下,用户与其反向相似用户的评分具有近似相反的关系,因此反向 相似用户将其评分的相反值推荐给用户。
[0061] 预测评分如公式(3)所示;
[0063]公式(3)中,λ为反向相似用户权重因子;P_G(u)为用户u的正向相似用户群,N_G (u)为用户u的反向相似用户群;Sim(u,x)为用户u与用户X的正向相似度;Fsim(u,y)为用户 u与户y的反向相似度。
[0064] 步骤4:产生推荐:
[0065]如图5所示,根据上述步骤预测出目标用户对未知项目的评分,进行评分排名后, 得到排名列表。
[0066]根据Τ0Ρ-Ν,从排名列表中为目标用户推荐预测评分最大的N个产品。
[0067] 实施例3:
[0068]本实施例是在上述实施例的基础上进一步优化,进一步的为更好地实现本发明, 如图1-4所示,特别采用下述设置方式:所述推荐方法在多值评分模式下进行时(本实施例 在5值评分模式下),包括以下具体步骤:
[0069]步骤1:计算用户正向和反向相似度:
[0070]多值评分模式下,用户对产品的评分数据表示为一个多值评分矩阵;如图3所示, 表示为一个mXn阶的五值评分矩阵,m为用户数,η为产品数,矩阵元素 Rlue{〇,l,2,3,4,5} 表示用户i对项目j的评分,Rw = 〇则表示未评分;
[0071]评分本身没有明确的正反关系,本发明采用评分偏量的正负性表示用户偏好的正 反关系,评分偏量通过用户当前评分减去该用户所有评分的平均值得到;
[0072]将用户a和用户b对所有项目的评分偏量看作向量?和^,利用向量余弦度量相似 关系,用户a和用户b的正向相似度即为反向相似度为sosg、-f).实际上,正向相 7 , 似度度量方法就是修正的余弦相似度算法。
[0073]同样的,为了避免过度估计,使用惩罚函数平滑正向和反向相似度。
[0074]多值评分模式下的用户正向和反向相似度度量方法分别如公式(4)和公式(5)所 不。
[0077]公式(4)和公式(5)中,1与1£分别表示用户a与b对所有项目评分的均值;I^Ib 分别表示用户a与b评价过的项目集合;1'表示用户a与b共同评价的项目集合,
{*}表示一个指示函数:{trUe,falSe卜{l,0};ri为惩罚阈值,当共同评分项小于该阈值时, 对用户相似度进行平滑,否则不变。
[0078]步骤2:创建正向和反向相似用户群:
[0079] 如图4所示,将目标用户u与其他用户的正向相似度进行排名,取最大的K个用户为 目标用户的正向相似用户群P_G(u);将目标用户u与其他用户的反向相似度进行排名,取最 大的K个用户为目标用户的反向相似用户群N_G(u),K的取值根据实际情况设定。
[0080] 步骤3:预测评分:
[0081] 由于正向和反向相似用户群对用户推荐的影响可能不同,本发明引入权重因子对 正反向用户的重要性进行权衡,权重因子λ表示反向相似用户权重,(l-λ)表示正向相似用 户权重。
[0082] 多值标注模式下用户的双向关系是基于用户的评分偏量而不是评分本身,因此需 将正向相似用户的评分偏量和反向相似用户评分偏量的相反值作为预测评分的参考值。 [0083] 预测评分如公式(6)所示:
[0085]公式(6)中,C为用户u打分的均值;λ为反向相似用户权重因子;P_G(u)为用户u的 正向相似用户群,N_G(u)为用户u的反向相似用户群;Sim(u,x)为用户u与用户X的正向相似 度;Fsim(u,y)为用户u与用户y的反向相似度。
[0086] 步骤4:产生推荐:
[0087]如图5所示,根据上述步骤预测出目标用户对未知项目的评分,进行评分排名后, 得到排名列表。
[0088]根据Τ0Ρ-Ν,从排名列表中为目标用户推荐预测评分最大的N个产品。
[0089]以上所述,仅是本发明的较佳实施例,并非对本发明做任何形式上的限制,凡是依 据本发明的技术实质对以上实施例所作的任何简单修改、等同变化,均落入本发明的保护 范围之内。
【主权项】
1. 一种基于用户双向关系的推荐方法,其特征在于:根据用户已有的项目的评分记录, 计算用户之间的正向相似度和反向相似度,并得到用户的正向和反向相似用户群,然后通 过正向相似用户群和反向相似用户群的加权评分预测用户评分。2. 根据权利要求1所述的一种基于用户双向关系的推荐方法,其特征在于:所述推荐方 法在二值评分模式或多值评分模式下进行,包括W下具体步骤: 1) 根据用户已有的项目的评分记录,计算用户之间的正向相似度和反向相似度; 2) 创建正向相似用户群和反向相似用户群; 3) 根据正向和反向相似用户群,预测出目标用户对未知项目的评分; 4) 产生推荐。3. 根据权利要求2所述的一种基于用户双向关系的推荐方法,其特征在于:在二值评分 模式下,所述步骤1)包括W下具体步骤: 1-a.l)根据用户已有项目的评分记录,将用户之间的关系分为正向相似关系与反向相 似关系; 1-a. 2)设定两用户对某项目的评分相同则判定两用户在该项目上的偏好相同,评分不 同则判定两用户偏好相反; 1-a. 3)采用化ccard相关系数,结合评分相同项与共同评分项计算用户之间的正向相 似度;结合评分相反项与共同评分项计算用户之间的反向相似度; 1 -a. 4)通过惩罚函数对正向相似度或/和反向相似度进行平滑处理。4. 根据权利要求2所述的一种基于用户双向关系的推荐方法,其特征在于:在二值评分 模式下,所述步骤3)包括W下具体步骤: 3-a.l)设定分别代表反向相似用户权重和正向相似用户权重的权重因子; 3-a. 2)设定参考值:反向相似用户将评分的相反值作为目标用户预测的参考值;正向 相似用户将评分本身作为目标用户预测的参考值; 3-a. 3) W相应的参考值为标准值,分别W正向相似度和相应的权重因子的乘积或反向 相似度和相应的权重因子的乘积作为正向相似用户与反向相似用户的权值;W正向和反向 相似用户的标准值与对应权值的加权平均值作为目标用户的预测评分。5. 根据权利要求2所述的一种基于用户双向关系的推荐方法,其特征在于:在多值评分 模式下,所述步骤1)包括W下步骤: 1-b.l)基于评分偏量定义用户之间的正向和反向相似关系,评分偏量通过用户当前评 分减去该用户已有评分记录的平均值得到; 1-b. 2)将两个用户之间对所有项目的评分偏量分别表示为向量茶和向量黎,利用向量 余弦度量相似关系,两用户的正向相似度即为祭取),两用户的反向相似度为苗系… 1 -b. 3)通过惩罚函数对正向相似度或/和反向相似度进行平滑处理。6. 根据权利要求2所述的一种基于用户双向关系的推荐方法,其特征在于:在多值评分 模式下,所述步骤3)包括W下具体步骤: 3-b.l)设定分别代表反向相似用户权重和正向相似用户权重的权重因子; 3-b. 2)设定参考值:正向相似用户将评分偏量作为目标用户预测的参考值,反向相似 用户将评分偏量的相反值作为目标用户预测的参考值; 3-b. 3) W相应的参考值为标准值,分别W正向相似度和相应的权重因子的乘积与反向 相似度和相应的权重因子的乘积作为正向相似用户与反向相似用户的权值;W正向和反向 相似用户的标准值与对应权值的加权平均值作为目标用户的预测评分偏量; 3-b. 4) W预测的目标用户的评分偏量和评分均值之和作为目标用户的预测评分。7. 根据权利要求2-6任一项所述的一种基于双向关系的推荐方法,其特征在于:所述步 骤2)具体为:将目标用户与其他用户的正向相似度进行排名,取最大的K个用户为目标用户 的正向相似用户群;将目标用户与其他用户的反向相似度进行排名,取最大的K个用户为目 标用户的反向相似用户群。8. 根据权利要求2-6任一项所述的一种基于用户双向关系的推荐方法,其特征在于:所 述步骤4)具体为:经步骤3)后,进行评分排名,得到排名列表,从排名列表中为目标用户推 荐预测评分最大的N个项目。9. 根据权利要求3或5所述的一种基于用户双向关系的推荐方法,其特征在于:所述惩 罚函数的原则是,当共同评分项小于给定的惩罚阔值时,正向相似度或反向相似度降低;否 则不变。
【文档编号】G06Q50/00GK106096029SQ201610475961
【公开日】2016年11月9日
【申请日】2016年6月27日
【发明人】梁刚, 杨进, 周泓宇, 许春, 董向博, 杨文太, 谢凯, 陈良银
【申请人】四川大学