一种基于用户特征的改进协同过滤推荐方法与流程

文档序号:12887197阅读:217来源:国知局
一种基于用户特征的改进协同过滤推荐方法与流程

本发明涉及互联网领域,尤其涉及一种基于用户特征的改进协同过滤推荐方法。



背景技术:

随着互联网的快速发展,信息的获取越来越便利,但面对如此庞大的信息量,仅凭人力是无法一一浏览并充分利用,个性化的推荐方法的研究应运而生。

协同过滤推荐算法是最早出现的一种推荐算法,其分支基于用户的协同过滤算法是最为常见的一种协同过滤算法,它因准确度较高而被广泛使用。

发明人在实现本发明的过程中,发现现有技术中至少存在以下缺点和不足:

传统的基于用户的协同过滤算法其用户相似度计算仅仅利用了用户的共同评分,忽略了许多其他方面的问题,例如:用户的价值尺度问题、用户的特征信息利用、以及对用户未共同评分项目的考虑等等,导致信息推荐的精度不高,无法满足实际应用中的多种需要。



技术实现要素:

本发明提供了一种基于用户特征的改进协同过滤推荐方法,本发明提高了传统基于用户的协同过滤算法的推荐质量,并在一定程度上减轻数据稀疏性问题的影响,详见下文描述:

一种基于用户特征的改进协同过滤推荐方法,所述改进协同过滤推荐方法包括以下步骤:

根据所有用户平均评分对原有用户评分区间进行修正,利用修正后的用户评分区间均值和所有用户平均评分,对原有用户评分进行修正,获取归一化处理后的用户评分;

根据归一化处理后的用户评分对评分差均值进行调整和归一化,结合原jaccard相似性系数得到改进后的jaccard相似性系数,以此获取用户评分相似度;

通过用户的性别、年龄、职业特征信息,对用户属性相似度进行计算;

将用户评分相似度和用户属性相似度线性结合作为最终用户相似度,并进行近邻计算,生成推荐列表。

所述归一化处理后的用户评分统一了用户评价尺度,对于同一物品,若用户的喜爱程度相同,用户评分为均值k。

所述改进后的jaccard相似性系数具体为:

其中,sim(u',v')jaccard+为改进后的jaccard相似性系数;sim(u',v')jaccard为jaccard相似性系数;iu’v’为用户u’与用户v’共同评价的物品集合;n表示用户u’与用户v’共同评价的物品总数;l为调节因子,用于对评分差值产生的影响进行调节;rmax是评分规则中的最高分;rmin是评分规则中的最低分;diff(u',v')为归一化处理后的评分差均值;iu'为用户u’评价的物品集合;iv'为用户v’评价的物品集合;ru'i为用户u’对物品i的评分;rv'i为用户v’对物品i的评分;i为物品。

所述通过用户的性别、年龄、职业特征信息,对用户属性相似度进行计算的步骤具体为:

simattr(u,v)=a*sex(u,v)+b*age(u,v)+c*job(u,v)

其中,a是性别特征权重因子;b是年龄特征权重因子;c是职业特征权重因子;sex(u,v)位性别属性相似度;age(u,v)为年龄属性相似度;job(u,v)为职业属性相似度;u,v均为用户。

所述将用户评分相似度和用户属性相似度线性结合作为最终用户相似度,并进行近邻计算,生成推荐列表的步骤具体为:

根据最近邻的打分记录与目标用户的两两相似度进行分析;

分析结果即目标用户对未评分物品的预测评分;

将未评分物品按预测评分高低排序;选择评分最高的一些物品生成推荐列表。

本发明提出了一种新的推荐算法即结合用户特征的改进协同过滤推荐方法,它致力于统一用户评价尺度,使用效果更好的用户评分相似度计算方法,结合用户特征信息,使用户相似度计算更精确,间接地提高算法的推荐质量,其有益效果主要体现在以下三个方面:

(1)解决了传统算法用户评价尺度混乱的问题,使用户评分相似度计算的误差更小;

(2)采用改进jaccard相似性系数方法[1],提高用户评分相似度的精确度;

(3)利用了用户特征信息,加入用户属性相似度,使最终用户相似度更加准确。

附图说明

图1为一种基于用户特征的改进协同过滤推荐方法的流程图;

图2为用户评价矩阵的示意图;

图3为用户相似度计算流程图;

图4为一种基于用户特征的改进协同过滤推荐方法的另一流程图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面对本发明实施方式作进一步地详细描述。

实施例1

本发明实施例在传统的基于用户的协同过滤算法的基础上,对用户评分数据进行了归一化处理,采用了改进后的jaccard相似性系数方法作为用户评分相似度度量方法,并加入对用户特征信息的考量,将用户属性相似度和用户评分相似度线性结合作为最终用户相似度,然后利用最终用户相似度进行近邻计算,生成推荐列表,参见图1,该方法包括以下步骤:

101:获取所有用户平均评分,根据所有用户平均评分对原有用户评分区间进行修正,利用修正后的用户评分区间均值和所有用户平均评分,对原有用户评分进行修正,以此获取归一化处理后的用户评分;

通过上述步骤101的处理,使得所有用户平均评分都相等,当用户的喜爱程度相同时,其评分也是相同的,由此统一了用户的评价尺度。

102:根据归一化处理后的用户评分对评分差均值进行调整和归一化处理后,结合原jaccard相似性系数得到改进后的jaccard相似性系数,以此获取用户评分相似度;

其中,改进的jaccard相似性系数方法是在原有的jaccard相似性系数方法基础上,加入了对用户评分数据的计算。改进后的jaccard相似性系数考虑了用户之间的共评项目和非共评项目,克服了余弦相似度等传统相似度计算方法的缺点,使用户评分相似度计算更精确。

103:通过用户的性别、年龄、职业特征信息,对用户属性相似度进行计算;

其中,用户属性相似度的计算采用了用户的性别、年龄、职业特征信息,根据各特征信息对用户偏好的影响决定其重要性,以此赋予各属性以不同的权重因子,形成用户属性相似度计算公式。用户属性相似度属于客观相似性,对其进行合理的利用可以提高对用户相似度计算的精确度。

104:将用户评分相似度和用户属性相似度线性结合作为最终用户相似度;利用最终用户相似度进行近邻计算,生成推荐列表。

其中,该步骤具体为:

根据最近邻的打分记录与目标用户的两两相似度进行分析;

分析结果即目标用户对未评分物品的预测评分;

将未评分物品按预测评分高低排序;选择评分最高的一些物品生成推荐列表。

其中,上述物品具体指的是用户没有评分或购买过的商品,可以是电影、音乐、购物网站上的物品等,具体实现时,本发明实施例对此不做限制。

本发明实施例首次结合步骤101-步骤104进行用户相似度的计算,生成结合用户特征的改进协同过滤算法,提高原有算法的推荐质量。

实施例2

下面结合具体的计算公式、实例对实施例1中的方案进行进一步地介绍,详见下文描述:

201:用户评分数据归一化处理;

首先遍历每个用户的历史评分记录,得到每个用户的平均评分:

其中,rui表示用户u对物品i的评分;n为用户u评分过的物品个数。

重新设定用户的评分区间为以下公式:

其中,m表示所有用户的个数;min(ru1,ru2,…,run)表示用户u的评分记录中的最低分,max(ru1,ru2,…,run)表示用户u评分记录中的最高分。

通过上述处理后的用户评分区间均值为k,k值如下:

修正评分区间后的用户评分应按以下公式计算得出:

其中,为归一化系数。

将以上几步的公式带入后,得到新的用户平均评分如下:

可以看出,经过处理后,所有用户的平均评分都为均值k,即用户的评价尺度得到了统一。

202:用户评分相似度计算;

计算用户u与用户v在共同评价物品上的评分差值,将这些评分差值记为用户u’与用户v’的评分差异向量:

du’v’={d1,d2,…,di,…dn}

其中,di表示用户u’与用户v’在共同评价的物品i上评分差值的绝对值;n表示用户u’与用户v’共同评价的物品总数。

按如下公式计算评分差均值:

其中,iu’v’为用户u’与用户v’共同评价的物品集合;ru'i为用户u’对物品i的评分;rv'i为用户v’对物品i的评分。

将上一步中评分差均值公式调整如下:

其中,l为调节因子,它的作用是对评分差值产生的影响进行调节;+表示这是对上一步评分差均值公式进行调整后的版本。

然后对评分差均值公式进行归一化处理,处理方法如下:

其中,rmax是评分规则中的最高分;rmin是评分规则中的最低分。

通过上述处理能去除评分纲量的影响,使计算结果处于[0,1]的区间内,便于表示。

将原始的jaccard相似性系数公式与上一步得到的处理后评分差均值公式进行整合,得到改进后的jaccard相似性系数,公式如下:

其中,sim(u',v')jaccard+为改进后的jaccard相似性系数;sim(u',v')jaccard为jaccard相似性系数;iu’v’为用户u’与用户v’共同评价的物品集合;n表示用户u’与用户v’共同评价的物品总数;l为调节因子,用于对评分差值产生的影响进行调节;rmax是评分规则中的最高分;rmin是评分规则中的最低分;diff(u',v')为归一化处理后的评分差均值;iu'为用户u’评价的物品集合;iv'为用户v’评价的物品集合;ru'i为用户u’对物品i的评分;rv'i为用户v’对物品i的评分;i为物品。

上述整合后的公式既保留了原有jaccard相似性系数的优点,又加入了归一化处理后均值公式作为调整,使得用户评分相似度的度量更为精确。

203:用户属性相似度计算;

用户属性相似度包括:性别属性相似度、年龄属性相似度、职业属性相似度。

性别相似度计算公式如下:

sex(u,v)=1,u.sex=v.sex;

sex(u,v)=0,u.sex≠v.sex;

即当用户u与用户v性别属性相同时,用户u与用户v的性别属性相似度sex(u,v)为1,否则为0。

年龄相似度计算公式如下:

age(u,v)=1,|u.age-v.age|<10;

age(u,v)=0,|u.age-v.age|≥10;

即当用户u与用户v年龄相差小于10岁,则他们的年龄相似度为1,否则为0。

职业属性相似度计算公式如下:

job(u,v)=1,u.job=v.job;

job(u,v)=0,u.job≠v.job;

即当用户u与用户v职业属性相同时,他们的职业属性相似度为1,否则为0。

综合以上相似度,用户属性相似度的计算公式如下:

simattr(u,v)=a*sex(u,v)+b*age(u,v)+c*job(u,v)(10)

其中,a是性别特征权重因子;b是年龄特征权重因子;c是职业特征权重因子。

本发明实施例中,a的值为0.334095,b的值为0.333103,c的值为0.332802,具体实现时,本发明实施例对三个参数的取值不做限制,具体取值根据测试的各属性相似度准确性做调整,需满足总和为1。

204:用户最终相似度计算;

将步骤202和203计算得出的用户评分相似度和用户属性相似度线性结合,得到用户综合相似度,公式如下:

sim(u,v)=d*simattr(u,v)+sim(u,v)jaccard+(11)

其中,d为用户属性相似度的权重因子,值为0.01,用户评分相似度的权重因子默认为1。

205:利用最终用户相似度进行近邻计算,生成推荐列表。

其中,上述近邻计算、以及生成推荐列表的过程为本领域技术人员所公知,本发明实施例对此不做赘述。

综上所述,本发明实施例通过上述步骤201-步骤205进行用户相似度的计算,生成结合用户特征的改进协同过滤算法,利用了用户特征信息,加入用户属性相似度,使最终用户相似度更加准确,提高原有算法的推荐质量。

实施例3

下面结合具体的实验数据、图2-图4对实施例1和2中的方案进行可行性验证,详见下文描述:

(1)用户评分归一化:

首先根据用户的历史评分记录生成用户评价矩阵,矩阵形式如图2所示。遍历矩阵中每一个非零的值,对其进行归一化处理,得到新的用户评分矩阵。

(2)用户相似度计算:

遍历用户评价矩阵中除用户u以外的所有用户,计算他们与用户u的两两相似度。计算过程如图3所示,首先根据评分记录,利用改进jaccard相似性系数方法计算用户u与其他用户的评分相似度,然后比对用户u与其他用户的性别、年龄、职业特征信息,得出用户u与其他用户的属性相似度,最后根据用户最终相似度计算公式得出用户u与其他用户的最终相似度。

(3)近邻计算,得出推荐列表。

如图4所示,计算出用户相似度后,将除用户u以外的所有用户按他们与用户u的相似度高低进行排序,根据排名结果选择某些用户作为用户u的最近邻集合,集合的大小可以自拟,一般情况下,最近邻用户数量越多,推荐效果越好。然后对用户u没有评价过的物品进行评分预测,预测评分公式如下:

其中,pu,i表示用户u对物品i的预测评分;k为用户u的最近邻集合;rv,i为用户u的最近邻用户v对物品i的评分;p为标准化因子:

其中,sim(u,v)表示用户u与用户v之间的相似度;avg(ru)表示用户u评分的平均值;avg(rv)表示用户v评分的平均值。

计算出所有用户u未评价过的物品的预测评分后,根据评分高低对物品进行排序,选择评分最高的一些物品生成推荐列表,向用户进行推荐。

通过上述的处理,使得通过本发明实施例得出的推荐,用户的实际评分与算法计算出的预测评分误差更小,因此推荐质量更高。

传统基于用户的协同过滤算法在用户评分相似度计算中,默认用户的评价尺度是相同的,未考虑用户的评价尺度问题,但实际上每个用户表达对物品喜爱程度的方式是不同的,评价尺度的混乱会给用户评分相似度的度量带来误差。本方法通过对用户评分进行归一化处理统一了用户评价尺度,解决了原传统算法评价尺度不一的问题,进一步提高了用户评分相似度的准确度。

传统基于用户的协同过滤算法在用户评分相似度计算中仅考虑了用户之间的共同评分项目,缺乏对用户整体评分情况的考虑,这样会给用户评分相似度带来较大的误差。本发明实施例提出的方法中使用了改进的jaccard相似性系数方法,既考虑了用户的共同评分项目,也考虑了两个用户的非共同评分项目;既宏观地考虑了两个用户各自的整体评分情况,也对二者评分记录中每一次评分体现出的细微相似性进行了观察和度量。这样减小了用户评分相似度的误差,提高了其精确度。

传统基于用户的协同过滤算法在用户评分相似度计算中,不考虑用户的特征信息的利用,本方法提出的算法利用了性别、年龄、职业信息进行用户属性相似度计算,使最终用户相似度结合了主观相似性和客观相似性,使其计算更加精确。

参考文献

[1]程飞,贾彩燕.一种基于用户相似性的协同过滤推荐算法[j].计算机工程与科学,2013,35(5):161-165.本领域技术人员可以理解附图只是一个优选实施例的示意图,上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1