首页> 中国专利> 项目数据预测评分库的生成、项目数据的推送方法和系统

项目数据预测评分库的生成、项目数据的推送方法和系统

摘要

本申请提供了一种项目数据预测评分库的生成方法,包括:收集用户对不同项目数据的评分数据;所述项目数据中包括一个或多个属性数据,所述属性数据的值为其所属项目数据的评分数据;针对每个用户,分别采用所述用户对所述项目数据的评分数据计算所述属性数据的权重;针对每个用户,分别采用所述权重计算未有评分数据的项目数据与其他项目数据之间的相似度;针对每个用户,分别提取与未有评分数据的项目数据相似度最高的K个项目数据,K为正整数;针对每个用户,分别采用所述K个项目数据的相似度计算所述未有评分数据的项目数据的预测评分;采用所述预测评分及其对应用户的用户标识生成项目数据预测评分库。本申请缓解相似度计算不精确的问题。

著录项

  • 公开/公告号CN103530416A

    专利类型发明专利

  • 公开/公告日2014-01-22

    原文格式PDF

  • 申请/专利权人 海南大学;

    申请/专利号CN201310520652.3

  • 发明设计人 黄梦醒;孙龙菲;冯文龙;

    申请日2013-10-28

  • 分类号G06F17/30(20060101);

  • 代理机构11319 北京润泽恒知识产权代理有限公司;

  • 代理人赵娟

  • 地址 570228 海南省海口市美兰区人民大道58号

  • 入库时间 2024-02-19 22:49:04

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-01-18

    授权

    授权

  • 2014-02-26

    实质审查的生效 IPC(主分类):G06F17/30 申请日:20131028

    实质审查的生效

  • 2014-01-22

    公开

    公开

说明书

技术领域

本申请实施例涉及数据处理技术领域,特别是涉及一种项目数据预测评 分库的生成方法、一种项目数据预测评分库的生成系统、一种项目数据的推 送方法和一种项目数据的推送系统。

背景技术

因特网Internet的迅猛发展将人们带入了信息社会和网络经济时代,对 企业的发展和个人生活都产生了深刻的影响。同时,过量的信息使得人们无 法高效地从中获取自己需要的部分,信息的使用效率反而降低。

显然,用户既不愿意花费太多时间在漫无边际的网上寻找商品,也不可 能像在现实生活中那种检查商品的质量,而是希望根据自身的兴趣爱好自动 获取推荐系统推荐的而且会感到满意的商品。

推荐系统的主要目标是帮助用户在大量的数据当中找出用户感兴趣的 信息为其推荐。现有的推荐系统主要分为三类:一类是基于内容的推荐系统、 一类是基于协作过滤(Collaborative Filtering)的推荐系统,还有一类是基于 上述两种技术融合的推荐系统。其中最成功的、应用最广泛的是基于协作过 滤的推荐系统。

尽管协作过滤技术相对于其他的推荐技术能够得到较好的推荐结果,但 是由于自身的原因,协作过滤也面临着一些问题,例如评分数据集稀疏性问 题、冷启动问题、可扩展性问题等。其中数据集稀疏性问题是导致协作过滤 推荐系统推荐质量低的一个关键原因。计算用户或项目的相似度时都是建立 在用户评分的基础上,在数据集极端稀疏的情况下,预测推荐的准确性很低。

因此,目前需要本领域技术人员迫切解决的一个技术问题就是:提出一 种基于协作过滤的项目数据的推送系统,可有效地缓解用户评分数据稀疏的 情况所带来的数据集稀疏、冷启动、相似度计算不精确的问题,提高推送的 效率。

申请内容

本申请所要解决的技术问题是提供一种项目数据预测评分库的生成 方法及一种项目数据的推送方法,能够用户评分数据稀疏的情况所带来的 数据集稀疏、冷启动、相似度计算不精确的问题,在个性化的项目数据推 送时跟据此快速高效地进行推送,提高推送的效率。

相应的,本申请还提供了一种项目数据预测评分库的生成系统及一种 项目数据的推送系统,用以保证上述方法的实现及应用。

为了解决上述问题,本申请公开了一种项目数据预测评分库的生成方 法,包括:

收集用户对不同项目数据的评分数据;所述项目数据中包括一个或多个 属性数据,所述属性数据的值为其所属项目数据的评分数据;

针对每个用户,分别采用所述用户对所述项目数据的评分数据计算所述 属性数据的权重;

针对每个用户,分别采用所述权重计算未有评分数据的项目数据与其他 项目数据之间的相似度;

针对每个用户,分别提取与未有评分数据的项目数据相似度最高的K个 项目数据,K为正整数;

针对每个用户,分别采用所述K个项目数据的相似度计算所述未有评分 数据的项目数据的预测评分;

采用所述预测评分及其对应用户的用户标识生成项目数据预测评分库。

优选地,采用以下公式计算所述属性数据的权重:

Wi=avgiΣk=1mavgk

其中,所述项目数据共有m个属性数据,Wi为第i个属性数据的权重, avgi为第i个属性的评分数据的平均值。

优选地,采用以下公式计算未有评分数据的项目数据与其他项目数据之 间的相似度:

Sim(di,q)=1Σj=1n(AdijWj-BqjWj/n)2+1

其中,Sim(di,q)为未有评分数据的项目数据a和其他项目数据b的相似 度,di为项目数据a的属性数据的集合,q为其他项目数据b的属性数据的集 合,di和q共有n个属性数据,当di具有第j个属性数据时,为1,否则为0,当q具有第j个属性数据时,为1,否则为0,Wj为第j个属性数 据的权重。

优选地,采用以下公式计算未有评分数据的项目数据的预测评分:

Pu,i=Ri+ΣjNIsim(i,j)×(Ru,j-Rj)ΣjNI|sim(i,j)|

其中,Pu,i为用户u对未有评分数据的项目数据i的预测评分,为所有 用户对项目数据i的评分数据的平均值,NI为与项目数据i相似度最高的K 个项目数据,sim(i,j)为项目数据i与项目数据j的相似度,Ru,j为用户u对项 目数据j的评分数据,为所有用户对项目数据j的评分数据的平均值。

本申请还公开了一种项目数据的推送方法,包括:

获取当前用户的用户标识;

在预置的项目数据预测评分库查找所述用户标识对应的的预测评分;

将最高的前N个预测评分对应的项目数据推送给当前用户,N为正整 数;

其中,所述项目数据预测评分库通过如下方式生成:

收集用户对不同项目数据的评分数据;所述项目数据中包括一个或多个 属性数据,所述属性数据的值为其所属项目数据的评分;

针对每个用户,分别采用所述用户对所述项目数据的评分数据计算所述 属性数据的权重;

针对每个用户,分别采用所述权重计算未有评分数据的项目数据与其他 项目数据之间的相似度;

针对每个用户,分别提取与未有评分数据的项目数据相似度最高的K个 项目数据,K为正整数;

针对每个用户,分别采用所述K个项目数据的相似度计算所述未有评分 数据的项目数据的预测评分;

采用所述预测评分及其对应用户的用户标识生成项目数据预测评分库。

本申请还公开了一种项目数据预测评分库的生成系统,包括:

评分数据收集模块,用于收集用户对不同项目数据的评分数据;所述项 目数据中包括一个或多个属性数据,所述属性数据的值为其所属项目数据的 评分数据;

权重计算模块,用于针对每个用户,分别采用所述用户对所述项目数据 的评分数据计算所述属性数据的权重;

相似度计算模块,用于针对每个用户,分别采用所述权重计算未有评分 数据的项目数据与其他项目数据之间的相似度;

项目数据提取模块,用于针对每个用户,分别提取与未有评分数据的项 目数据相似度最高的K个项目数据,K为正整数;

预测评分计算模块,用于针对每个用户,分别采用所述K个项目数据的 相似度计算所述未有评分数据的项目数据的预测评分;

预测评分库生成模块,用于采用所述预测评分及其对应用户的用户标识 生成项目数据预测评分库。

优选地,采用以下公式计算所述属性数据的权重:

Wi=avgiΣk=1mavgk

其中,所述项目数据共有m个属性数据,Wi为第i个属性数据的权重, avgi为第i个属性的评分数据的平均值。

优选地,采用以下公式计算未有评分数据的项目数据与其他项目数据之 间的相似度:

Sim(di,q)=1Σj=1n(AdijWj-BqjWj/n)2+1

其中,Sim(di,q)为未有评分数据的项目数据a和其他项目数据b的相似 度,di为项目数据a的属性数据的集合,q为其他项目数据b的属性数据的集 合,di和q共有n个属性数据,当di具有第j个属性数据时,为1,否则为0,当q具有第j个属性数据时,为1,否则为0,Wj为第j个属性数 据的权重。

优选地,采用以下公式计算未有评分数据的项目数据的预测评分:

Pu,i=Ri+ΣjNIsim(i,j)×(Ru,j-Rj)ΣjNI|sim(i,j)|

其中,Pu,i为用户u对未有评分数据的项目数据i的预测评分,为所有 用户对项目数据i的评分数据的平均值,NI为与项目数据i相似度最高的K 个项目数据,sim(i,j)为项目数据i与项目数据j的相似度,Ru,j为用户u对项 目数据j的评分数据,为所有用户对项目数据j的评分数据的平均值。

本申请还公开了一种项目数据的推送系统,包括:

用户标识获取模块,用于获取当前用户的用户标识;

预测评分提取模块,用于在预置的项目数据预测评分库查找所述用户标 识对应的的预测评分;

项目数据推送模块,用于将最高的前N个预测评分对应的项目数据推送 给当前用户,N为正整数;

其中,所述项目数据预测评分库通过如下方式生成:

收集用户对不同项目数据的评分数据;所述项目数据中包括一个或多个 属性数据,所述属性数据的值为其所属项目数据的评分;

针对每个用户,分别采用所述用户对所述项目数据的评分数据计算所述 属性数据的权重;

针对每个用户,分别采用所述权重计算未有评分数据的项目数据与其他 项目数据之间的相似度;

针对每个用户,分别提取与未有评分数据的项目数据相似度最高的K个 项目数据,K为正整数;

针对每个用户,分别采用所述K个项目数据的相似度计算所述未有评分 数据的项目数据的预测评分;

采用所述预测评分及其对应用户的用户标识生成项目数据预测评分库。

与背景技术相比,本申请包括以下优点:

本申请可以基于属性论的属性剖分模型,通过用户已评分的项目数据结 合项目数据的属性数据计算出每个属性数据的权重,然后通过项目数据包含 的属性数据及属性数据的权重计算项目数据之间的相似度,继而计算未评分 的项目数据的预测评分,生成项目数据预测评分库,有效地缓解用户评分数 据稀疏的情况所带来的数据集稀疏、冷启动、相似度计算不精确的问题。

本申请可以事先针对用户的已评分项目数据计算未评分项目数据的预 测评分,再将项目数据、预测评分及对应的用户标识进行绑定,生成项目数 据预测评分库。当用户进行访问的时候,获取用户标识后可以直接获取用户 对应的带有预测评分的项目数据进行推送,而不用再根据其已评分项目数据 计算未评分项目数据的预测评分,节省了系统资源和高了个性化项目数据推 送的效率。

附图说明

图1示出了本申请的一种项目数据预测评分库的生成方法实施例的步 骤流程图;

图2示出了本申请的一种三维文本属性坐标系示例图;

图3示出了本申请的一种二维文本重心坐标系示例图;

图4示出了本申请的一种近邻项目数的影响示例图;

图5示出了本申请的一种近邻项目数的影响示例图;

图6示出了本申请的一种结果对比图;

图7示出了本申请的一种项目数据的推送方法实施例的步骤流程图;

图8示出了本申请的一种项目数据预测评分库的生成系统实施例的结 构框图;

图9示出了本申请的一种项目数据的推送系统实施的结构框图。

具体实施方式

为使本申请实施例的上述目的、特征和优点能够更加明显易懂,下面结 合附图和具体实施方式对本申请实施例作进一步详细的说明。

基于项目数据的相似度计算方法有多种,其中较典型的相似度计算方法 主要有以下三种。

一、余弦相似度

sim(itemi,itemj)=cosine(i,j)=i·j||i||*||j||

其中,sim(itemi,itemj)表示项目数据i和项目数据j之间的相似度,和分 别表示被用户评分的项目数据i和项目数据j的评分数据。

二、修正余弦相似度

S(i,j)=ΣuUij(Ru,i-Ru)(Ru,j-Ru)ΣuUj(Ru,i-Ru)2ΣuUj(Ru,j-Ru)2

其中,Uij表示项目数据i和项目数据j共同被评过分的用户集合,Ui和 Uj分别表示对项目数据i和项目数据j评过分的用户集合,Ru,i表示用户u对 项目数据i的评分数据,表示用户u的评分数据的平均值。

三、相关相似度

S(i,j)=ΣuUij(Ru,i-Ri)(Ru,j-Rj)ΣuUij(Vu,i-Ri)2ΣuUij(Vu,j-Rj)2

其中,对项目数据i和项目数据j共同评过分的用户集合用户Uij表示, Ru,i表示用户u对项目数据i的评分数据,和分别表示项目数据i和项目 数据j的评分数据平均值。

上述三个传统的相似度计算方法都有较高的准确性,但都是通过用户对 项目数据的评分数据来计算项目数据之间的相似度。而在评分数据极端稀疏 的情况下,使得传统的相似度计算方法不能准确地计算出项目数据之间的相 似度。

余弦相似度是通过用户对项目数据的评分数据计算,其中将用户没有评 分数据的项目数据的评分值设为0。而事实上用户对未评分的项目数据的喜 好程度不可能全都相同且为0。因此在评分数据稀疏的情况下,即用户可能 对项目数据的评分数据只有几个,那么就无法准确地计算项目之间的相似 度。修正余弦相似虽然考虑了用户评分的随意性,但仍存在同样的问题。

相关相似度计算中,需要计算对项目数据i和项目数据j共同评过分的 用户集合,然后通过用户集合计算项目数据之间的相似度。这种方法比上述 两种方法计算的准确性要好,但在评分数据稀疏的情况下,同样计算相似度 的准确度不高。而且在相关相似度计算过程中,很可能遇到分母为0的情况, 即由于用户对项目数据的评分的随意性等原因,使得一些用户仅仅对一两个 项目数据进行评分,并且评分数据相同,那么使得这时计算公 式就失去了意义。

人们认识、辨别事物是通过事物的主要特征或其属性来实现的,其中对 于事物的复杂属性是通过分解为简单属性的组合以后才易于被知觉和记忆 存储的。同时事物通过属性能够反映出其自身以及和其他事物之间的关系, 所以,可利用事物的属性来反映事物之间的相似性,利用计算出的相似度并 结合协作过滤预测算法,最终推荐目标项目信息。

本申请实施例的核心构思之一在于,通过对项目数据分析,列出项目数 据的属性数据,并计算项目数据的属性数据的权重,利用基于属性数据的重 心剖分模型结合项目数据的属性数据的权重计算项目数据之间的相似度,最 后预测用户对未评分项目数据的评分数据,以实现对用户的高效个性化项目 数据的推送。

参照图1,示出了本申请的一种项目数据预测评分库的生成方法实施例 的步骤流程图,具体可以包括如下步骤:

步骤101,收集用户对不同项目数据的评分数据;所述项目数据中包括 一个或多个属性数据,所述属性数据的值为其所属项目数据的评分数据;

需要说明的是,项目数据具体可以为不同的事物,例如商品、新闻、电 影等等。属性数据可以为描述项目数据特征的数据,例如电影《金刚狼2》 的属性数据可以为动作、冒险、奇幻、科幻。而一个项目数据可以具有一个 或多个属性数据。

在具体实现中,可以通过网络爬虫、查询网站日志等方式从万维网上 自动提取网页的内容。

网络爬虫又称为网络蜘蛛,即Web Spider,网络蜘蛛是通过网页的链 接地址来寻找网页,从网站某一个页面(通常是首页)开始,读取网页 的内容,找到在网页中的其它链接地址,然后通过这些链接地址寻找下 一个网页,这样一直循环下去,直到把这个网站所有的网页都抓取完为 止。如果把整个互联网当成一个网站,那么网络蜘蛛就可以用这个原理 把互联网上所有的网页都抓取下来。

网站日志可以记录用户电脑的IP地址是什么、在什么时间、用什么操 作系统、什么浏览器、什么显示器的情况下访问了网站的哪个页面、具体进 行了何种操作等等。

其中,提取网页的内容可以包括用户对不同项目数据的评分数据,该评 分数据具体由用户对该项目数据进行评分产生。

作为本申请实施例的一种优选示例,可以采用户-项目评分矩阵记录用 户对不同项目数据的评分数据。

例如,R=v11v12...v1nv21v22...v2n............vm1vm2...vmn

R(m*n)为用户对项目数据的评分数据组成的一个二维矩阵。其中, 用户集合U={u1,u2,u3,……,um},项目数据集合I={i1,i2,i3,……,in},vkj可以为用户uk对项目数据ij的评分数据(1≤k≤m,1≤j≤n)。

在具体实现中,若用户uk对项目数据ij有评分数据,则vkj的值是可以 在1到5分的范围内的正整数,即1、2、3、4或5,若用户uk对项目数据 ij没有评分数据,则vkj=0。

当然,上述评分方式只是作为示例,在实施本申请实施例时,可以根据 实际情况设置其他评分方式,本申请实施例对此不加以限制。

步骤102,针对每个用户,分别采用所述用户对所述项目数据的评分数 据计算所述属性数据的权重;

在实际应用中,可以在确定项目数据的属性数据后,建立属性数据的集 合Attr={a1,a2,…,ai,…,am},其中ai表示属性数据的集合中的第i个属 性数据,m表示属性数据集合中的属性数据总数。

当获取到用户对项目数据的评分数据时,针对每个用户ua∈U(U表示 用户集合)建立该项目-属性评分矩阵Matrix,如表1所示。

表1ua的项目-属性评据矩阵

  attr1attr2…… attrj…… attrmItem1v11v12…… v1j…… v1mItem2v21v22…… v2j…… v2m…… …… …… …… …… …… …… Itemivi1vi2…… vij…… vim…… …… …… …… …… …… …… Itemnvn1vn2…… vnj…… vnm

其中,rai表示用户a对项目数据i的 评分数据,attrj表示属性数据j,Attri表示项目数据i包含的属性数据的集合。

在本申请的一种优选实施中,可以采用以下公式计算所述属性数据的权 重:

Wi=avgiΣk=1mavgk

其中,所述项目数据共有m个属性数据,Wi为第i个属性数据的权重, avgi为第i个属性的评分数据的平均值。

需要说明的是,计算每列属性数据的均值,其中仅计算不为0的项目数 据的属性数据,将每列的计算结果可以填充到均值矩阵中保存,如表2所示。

表2Matrix的均值矩阵

attr1attr2…… attrj…… attrmavg1avg2…… avgj…… avgm

步骤103,针对每个用户,分别采用所述权重计算未有评分数据的项目 数据与其他项目数据之间的相似度;

需要说明的是,其他项目数据为除当前未有评分数据的项目数据以外的 项目数据,可以包括已评分的项目数据,也可以包括为评分的项目数据。

在本申请的一种优选实施例中,可以采用以下公式计算未有评分数据的 项目数据与其他项目数据之间的相似度:

Sim(di,q)=1Σj=1n(AdijWj-BqjWj/n)2+1

其中,Sim(di,q)为未有评分数据的项目数据a和其他项目数据b的相似 度,di为项目数据a的属性数据的集合,q为其他项目数据b的属性数据的集 合,di和q共有n个属性数据,当di具有第j个属性数据时,为1,否则 为0,当q具有第j个属性数据时,为1,否则为0,Wj为第j个属性数 据的权重。

在实际应用中,m(x)、n(x)分别表示事物x的不同的属性,用∧表 示合取算子,则属性合取过程表示为m(x)∧n(x)=o(x),其中o(x) 为m(x)与n(x)的整合属性,而m(x)和n(x)成为素属性,整合属 性反应了属性间的某种关系,表示了各权值的大小,并能够反映素属性之间 的一种量关系。

设事物x的属性集P(x)={e0(x),e1(x),…,en(x)},则由如 下的定义:

设n维单纯性k=(e0,e1,…,en),其顶点为属性集P(x)中的第n+1 个属性ej(x),则k为属性多面体。在k的第一次重心剖分k(1)中,r+1个 属性的整合属性ei0∧ei1∧…∧eir置放在由这r+1个属性所构成的r维单纯形的 重心剖分点上,记为P(Sir),且P(Sir)=ei0∧ei1∧…∧eir。依次类推,这 样的模型可以称之为属性重心剖分模型。

若以项目T的素属性e0(T)为原点,以T的n个属性为轴,则可得T 的属性坐标系(或线性坐标系)K(m)(T)。它能运用坐标描述各属性间的 联系,如反映关键属性之间的权值大小的关系,并为关键属性之间的联系建 立一个几何表示模型。为表示方便,本申请实施例仅以三维坐标系为例进行 讨论,其结果不难推广到n维情况。例如,合属性向量d=(0.5,0.7,0.6) 由3个属性的权值为元素构成,如图2所示。

参照图2,属性向量d在属性坐标系中对应唯一一个二维单纯形△ABC, 其所在的平面方程为:

x10.5+x20.7+x30.6=1

把△ABC从属性坐标系中抽取出来,如图3所示。可以看到,△ABC可 看作是由三维笛卡尔坐标系O-ABC去掉原点O后剩下的一个二维重心坐标 系。这时△ABC中任一点x=(x1,x2,x3)满足方程:

x=λ1A+λ2B+λ3Cλ1+λ2+λ3=1

其中,λ123均大于0,λE成为x在△ABC中的重心坐标。

文本向量di=(wdi1,wdi2,…,wdim)所确定的多面体的重心称为文本 重心Gdi=(gdi1,gdi2,…,gdim)=(wdi1/m,wdi2/m,…,wdim/m)。同理, 可以定义项目属性向量的中心坐标点如下:项目属性向量Q=(wqi1,wqi2,…, wqim)按重心坐标的置放法则加到属性重心坐标系中,得到项目属性向量所 构成多面体的重心点,可以称之为项目的属性重心Gqi=(gqi1,gqi2,…,gqim) =(wqi1/m,wqi2/m,…,wqim/m)。

在计算相似度时,首先要建立匹配的依据。匹配基准点Matchdi是属性 向量q所确定的查询线与由属性向量di构成的项目属性重心坐标单纯形的相 交点。

设项目属性向量q=(wq1,wq2,wq3),匹配基准点Matchdi=(m1,m2,m3) 是目标项目属性di所确定的重心坐标单纯形与直线q的交点,即如下方程组 的解:

x1wq1=x2wq2=x3wq3x1wdi1+x2wdi2+x3wdi3=1---(10)

通过项目属性向量di与匹配基准点间Matchdi的几何距离r(Gdi,Matchdi) 作为匹配依据。一般来说,距离r(Gdi,Matchdi)越短,表明di离q越近,因 此di越满足q的属性需要,相似度也自然会高。可以构造这样一个函数f:

当di与q完全匹配时,距离r(Gdi,Matchdi)为0,f为1;

当di与q完全无关时,距离r(Gdi,Matchdi)为最大max(r(Gdi,Matchdi)),f 接近为0;

当di与q有关系时,f取值为(0,1)。

匹配函数f作为相似度函数Sim(di,q)。即对属性向量q=(wq1,wq2, wq3),目标项目属性重心Gdi=(gdi1,gdi2,gdi3)=(wdi1/3,wdi2/3,wdi3/3), 与匹配基准点Matchdi=(m1,m2,m3),计算公式为:

Sim(di,q)=1r(Gdi,Matchdi)+1=1Σj=1n(gdij-mj)2+1

其中,Sim(di,q)表示项目数据的属性向量和匹配基准点间的相似度,di表 示项目数据的属性向量,q表示作为计算相似度目标的项目数据的属性向量, Gdi表示项目数据的属性向量di所确定的多面体的重心,Matchdi表示属性向量 q所确定的查询线与由属性向量di构成的项目数据的属性数据的重心坐标单 纯性的相交点,mj表示第j个匹配基准点,表示目标项目数据的属性数 据的重心点。

进一步地,Sim(di,q)=1Σj=1n(AdijWj-BqjWj/n)2+1.

步骤104,针对每个用户,分别提取与未有评分数据的项目数据相似度 最高的K个项目数据,K为正整数;

在具体实现中,可以根据计算得出的相似度结果,按照相似度值从大到 小进行排序,并选择相似度值高的前k个项目数据作为当前未有评分数据的 项目数据的最近邻项目。

步骤105,针对每个用户,分别采用所述K个项目数据的相似度计算所 述未有评分数据的项目数据的预测评分;

需要说明的是,本申请实施例可以采用任一预测方法进行未有评分数据 的项目数据的预测评分均可,本申请实施例对此不加以限制。

在本申请的一种优选实施例中,可以采用以下公式计算未有评分数据的 项目数据的预测评分:

Pu,i=Ri+ΣjNIsim(i,j)×(Ru,j-Rj)ΣjNI|sim(i,j)|

其中,Pu,i为用户u对未有评分数据的项目数据i的预测评分,为所有 用户对项目数据i的评分数据的平均值,NI为与项目数据i相似度最高的K 个项目数据,sim(i,j)为项目数据i与项目数据j的相似度,Ru,j为用户u对项 目数据j的评分数据,为所有用户对项目数据j的评分数据的平均值。

在具体实现中,所有用户对项目数据的评分数据的平均值可以在上述用 户-项目评分矩阵中进行计算。其中,可以仅采用不为0值的项目数据计算 其评分数据的平均值。

步骤106,采用所述预测评分及其对应用户的用户标识生成项目数据预 测评分库。

本申请实施例中,所能得到的是项目数据预测评分库是针对每一个用户 而言的,而本申请实施例并不对用户的范围进行限制。例如,本申请实施例 可以得到电影网站上的用户、电子商务网站上的用户的预测评分库等等。

为了方便本领域技术人员更好地理解本申请,以下通过一个示例更进一 步说明本申请的生成项目数据预测评分库的流程:

1、收集用户对不同项目数据的评分数据,采用用户-项目评分矩阵记录, 如表3所示。

表3用户-项目评分矩阵

  Item1Item2…… Itemj…… ItemmUser15 4 …… 3 …… 0 User25 4 …… 0 …… 5 …… …… …… …… …… …… …… Useriri1ri2…… rij…… rim…… …… …… …… …… …… …… Usernrn1rn2…… rnj…… rnm

其中,用户User1对项目数据Item1的评分数据为5分,对项目数据Item2的评分数据为4分,对项目数据Itemj的评分数据为3分,用户User2对项目 数据Item1的评分数据为5分,对项目数据Item2的评分数据为4分,对项目 数据Itemm的评分数据5分。

2、计算项目数据的评分数据的平均值,在计算平均值时,可以仅考虑 评分用户。例如,上述用户User1和用户User2对项目数据Item1的评分数据 的平均值为5分,对项目数据Item2的评分数据的平均值为4分,对项目数 据Itemj的评分数据的平均值为3分,对项目数据Itemm的评分数据的平均值 为5分。

3、建立项目数据的属性数据的集合Attr={a1,a2,…,an},然后建立项 目-属性评分矩阵,用户User1的项目-属性评分矩阵如下表4所示;

表4用户User1的项目-属性评分矩阵

  a1a2…… ai…… anItem15 5 …… 5 …… 0 Item20 4 …… 4 …… 4 …… …… …… …… …… …… …… Itemj3 0 …… 3 …… 0 …… …… …… …… …… …… …… Itemm0 0 …… 0 …… 0

其中,项目数据Item1的属性数据包含a1,a2和ai,故a1,a2和ai的值 为相应的5分,而不包含其他的属性,故填充0分,依此填充。

4、通过步骤102计算属性数据的权重,首先计算属性数据的平均值, 如表5所示,然后计算每个属性数据的权重,结果如表6所示;

表5用户User1的均值矩阵

a1a2…… ai…… an4 4.5 …… 4 …… 4

表6项目属性的权重矩阵

Wa1Wa2…… Wai…… Wan0.24 0.27 …… 0.24 …… 0.24

5、通过步骤103计算目标项目数据(未有评分数据的项目数据)Itemi和其他项目数据Itemj之间的相似度。其中,Itemi包含属性a1,a2,ai,而 Itemj包含属性a1,a2,an,Itemj作为目标项目:

sim(Itemi,Itemj)=1(0.24-0/3)2+(0.27-0.27/3)2+(0.24-0)2+(0-0.24/3)2+1=0.7181

6、通过步骤104计算目标项目数据(未有评分数据的项目数据)Itemi的预测评分;

7、生成项目数据预测评分库。

为了方便本领域技术人员更好地理解本申请,以下通过一个示例更进一 步说明本申请的测试的流程:

本申请实施例使用的测试数据集是MovieLens站点提供的数据集。其中 包含了10万条记录的数据集,总共记录了943个用户对1682部电影的评分, 每个用户至少对20部电影进行了评分,其中评分值区间为[1,5]。每位用户 通过对电影的不同评分表达了自己的兴趣度。评分数据的系数度为 1-100000/(943×1682)=0.936953。

平均绝对偏差MAE(Mean Absolute Error)是统计精度度量方法中易于 理解,可以直观地对推荐质量进行度量,并且是最常用的度量方法之一。为 了验证本申请实施例的精确度,本申请实施例采用MAE方法度量,其计算 结果越小,表明推荐精确度越高。MAE计算公式如下:

MAE=Σi=1n|qi-pi|n

其中,pi表示系统对目标用户未评分项目的预测值,qi是目标用户的实 际评分,n为总的预测评分条数。

在该测试集中项目电影的属性确定,因此主要确定电影属性的权重值, 首先利用整个评分数据集中用户对每部电影的评分进行一个数量统计,依此 对每部电影属性确定其权重值。将实验分为5组用户进行,首先将数据集按 照不同用户随机抽取100、200、…、500个用户项目评分数据作为实验数据 集,并且将实验数据的评分矩阵进一步按照8:2的比例划分为训练集和测试 集。

为了验证提出本申请实施例的有效性,实验通过最近邻项目个数k的变 化,比较分析其对应的MAE值的变化,k的取值范围是[20,80]。将本文提 出的算法记为IBCF-N。

参照图4,在不同的测试数据集中,在设定的近邻数范围中无论近邻数 取何值,MAE值都相当高,主要是由于通过属性论中的属性重心剖分模型 计算得出项目之间的相似度,对于属性一致或者比较接近的相似度高,这样 与目标项目相似的项目很多,而用户的评分项目又很多,仅取其很小的一部 分项目作为近邻,那么预测的参考项目少,自然地预测精度降低,同时也可 能仅是包含某一属性或某几个属性的项目的最近邻项目,所以在整体计算之 后选取前k个最近邻居的结果可能是同一类型的项目或者是不同类型的项目 但它们之间的相似度极高,但对于其他项目来说这些近邻项目并非是最近邻 项目。例如电影1的属性包括动作、冒险、喜剧,电影2的属性包括动作、 冒险、喜剧,电影3的属性包括动作、冒险、爱情,电影4的属性为冒险、 惊悚、恐怖。那么对于电影1、2之间相似度高于电影1、3之间的相似度, 而在选取最近邻时,由于设定近邻数k值范围较小,那么仅选取了电影2作 为最近邻居,但在对电影3、4预测时,将电影2作为参照物必然导致推荐 精度降低。

如图4所示,最近邻项目个数k的取值范围不能和其他方法取值一样, 因此重新设定k的取值范围为[100,1000]。

如图5所示,通过对最近邻的取值范围重新设定,算法的推荐质量提高 了。在不同数量用户的测试数据集中,MAE值随着最近邻数的不断增长, 而逐渐降低,但在最近邻数增长至600时,随着最近邻数的增长,MAE值 逐渐增长或保持不变,说明在最近邻数逐渐增加时对于目标项目的预测增加 了更多的有用参考项目,而在最近邻数增加至一定数量后,再增加就会增加 无用的参考项目,导致预测精度降低。

参照图6,本申请实施例与传统方法进行了对比,彼此选择的近邻数目 范围不一,因此选取各自稳定性好、准确度高的最近邻数。对基于属性论的 相似度计算选取最近邻数600,传统的相似度计算选择普遍认为推荐准确性 高、稳定性好的最近邻数50。在图6中,IBCF-C表示基于项目的余弦相似 度计算结果,IBCF-CU表示基于项目的改进余弦相似度计算结果,IBCF-P 表示基于项目的相关相似度计算结果,IBCF-N表示本文提出的相似度计算 结果,由图6可看出在随机的不同用户数量的数据集中,本申请实施例都优 于其它传统方法。同时在确定了项目属性的权重时,系统可通过离线状态计 算项目之间的相似度,提高了系统推送效率及可扩展性。

本申请可以基于属性论的属性剖分模型,通过用户已评分的项目数据结 合项目数据的属性数据计算出每个属性数据的权重,然后通过项目数据包含 的属性数据及属性数据的权重计算项目数据之间的相似度,继而计算未评分 的项目数据的预测评分,生成项目数据预测评分库,有效地缓解用户评分数 据稀疏的情况所带来的数据集稀疏、冷启动、相似度计算不精确的问题。

参照图7,示出了本申请的一种项目数据的推送方法实施例的步骤流程 图,具体可以包括如下步骤:

步骤701,获取当前用户的用户标识;

步骤702,在预置的项目数据预测评分库查找所述用户标识对应的的预 测评分;

步骤703,将最高的前N个预测评分对应的项目数据推送给当前用户, N为正整数;

其中,所述项目数据预测评分库通过如下方式生成:

收集用户对不同项目数据的评分数据;所述项目数据中包括一个或多个 属性数据,所述属性数据的值为其所属项目数据的评分;

针对每个用户,分别采用所述用户对所述项目数据的评分数据计算所述 属性数据的权重;

针对每个用户,分别采用所述权重计算未有评分数据的项目数据与其他 项目数据之间的相似度;

针对每个用户,分别提取与未有评分数据的项目数据相似度最高的K个 项目数据,K为正整数;

针对每个用户,分别采用所述K个项目数据的相似度计算所述未有评分 数据的项目数据的预测评分;

采用所述预测评分及其对应用户的用户标识生成项目数据预测评分库。

本申请可以事先针对用户的已评分项目数据计算未评分项目数据的预 测评分,再将项目数据、预测评分及对应的用户标识进行绑定,生成项目数 据预测评分库。当用户进行访问的时候,获取用户标识后可以直接获取用户 对应的带有预测评分的项目数据进行推送,而不用再根据其已评分项目数据 计算未评分项目数据的预测评分,节省了系统资源和高了个性化项目数据推 送的效率。

在具体实现中,本申请实施例还可以依据预设的时间规则对收集到的用 户对项目数据的评分数据计算未评分项目数据的预测评分,再将结果配置到 相应的用户标识上。

其中,所述时间规则可由本领域技术人员根据实际情况进行设定,例如, 可以是定期或不定期计算未评分项目数据的预测评分,用户对项目数据的评 分数据可以是一段或多段时间内收集的,本申请实施例对此不加以限制。

对于本申请实施例而言,由于与项目数据预测评分库的生成方法实施例 基本相似,本申请实施例在此不再详述,相关之处参见项目数据预测评分库 的生成方法实施例的部分说明即可。

可以理解,对于方法实施例,为了简单描述,故将其都表述为一系列的 动作组合,但是本领域技术人员应该知悉,本申请实施例并不受所描述的动 作顺序的限制,因为依据本申请实施例,某些步骤可以采用其他顺序或者同 时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属 于优选实施例,所涉及的动作和模块并不一定是本申请实施例所必须的。

参见图8,示出了本申请的一种项目数据预测评分库的生成系统实施的 结构框图,具体可以包括如下模块:

评分数据收集模块801,用于收集用户对不同项目数据的评分数据;所 述项目数据中包括一个或多个属性数据,所述属性数据的值为其所属项目数 据的评分数据;

权重计算模块802,用于针对每个用户,分别采用所述用户对所述项目 数据的评分数据计算所述属性数据的权重;

相似度计算模块803,用于针对每个用户,分别采用所述权重计算未有 评分数据的项目数据与其他项目数据之间的相似度;

项目数据提取模块804,用于针对每个用户,分别提取与未有评分数据 的项目数据相似度最高的K个项目数据,K为正整数;

预测评分计算模块805,用于针对每个用户,分别采用所述K个项目数 据的相似度计算所述未有评分数据的项目数据的预测评分;

预测评分库生成模块806,用于采用所述预测评分及其对应用户的用户 标识生成项目数据预测评分库。

在本申请的一种优选实施例中,可以采用以下公式计算所述属性数据的 权重:

Wi=avgiΣk=1mavgk

其中,所述项目数据共有m个属性数据,Wi为第i个属性数据的权重, avgi为第i个属性的评分数据的平均值。

在本申请的一种优选实施例中,可以采用以下公式计算未有评分数据的 项目数据与其他项目数据之间的相似度:

Sim(di,q)=1Σj=1n(AdijWj-BqjWj/n)2+1

其中,Sim(di,q)为未有评分数据的项目数据a和其他项目数据b的相似 度,di为项目数据a的属性数据的集合,q为其他项目数据b的属性数据的集 合,di和q共有n个属性数据,当di具有第j个属性数据时,为1,否则为0,当q具有第j个属性数据时,为1,否则为0,Wj为第j个属性数 据的权重。

在本申请的一种优选实施例中,可以采用以下公式计算未有评分数据的 项目数据的预测评分:

Pu,i=Ri+ΣjNIsim(i,j)×(Ru,j-Rj)ΣjNI|sim(i,j)|

其中,Pu,i为用户u对未有评分数据的项目数据i的预测评分,为所有 用户对项目数据i的评分数据的平均值,NI为与项目数据i相似度最高的K 个项目数据,sim(i,j)为项目数据i与项目数据j的相似度,Ru,j为用户u对项 目数据j的评分数据,为所有用户对项目数据j的评分数据的平均值。

参见图9,示出了本申请的一种项目数据的推送系统实施的结构框图, 具体可以包括如下模块:

用户标识获取模块901,用于获取当前用户的用户标识;

预测评分提取模块902,用于在预置的项目数据预测评分库查找所述用 户标识对应的的预测评分;

项目数据推送模块903,用于将最高的前N个预测评分对应的项目数据 推送给当前用户,N为正整数;

其中,所述项目数据预测评分库通过如下方式生成:

收集用户对不同项目数据的评分数据;所述项目数据中包括一个或多个 属性数据,所述属性数据的值为其所属项目数据的评分;

针对每个用户,分别采用所述用户对所述项目数据的评分数据计算所述 属性数据的权重;

针对每个用户,分别采用所述权重计算未有评分数据的项目数据与其他 项目数据之间的相似度;

针对每个用户,分别提取与未有评分数据的项目数据相似度最高的K个 项目数据,K为正整数;

针对每个用户,分别采用所述K个项目数据的相似度计算所述未有评分 数据的项目数据的预测评分;

采用所述预测评分及其对应用户的用户标识生成项目数据预测评分库。

对于系统实施例而言,由于其与方法实施例基本相似,所以描述的比较 简单,相关之处参见方法实施例的部分说明即可。

本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说 明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互 相参见即可。

本领域内的技术人员应明白,本申请实施例的实施例可提供为方法、 系统、或计算机程序产品。因此,本申请实施例可采用完全硬件实施例、 完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申 请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机 可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实 施的计算机程序产品的形式。

本申请实施例是参照根据本申请实施例的方法、终端设备(系统)、和 计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程 序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图 和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令 到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端 设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理 终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流 程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处 理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算 机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在 流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的 功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理终端 设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以 产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的 指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框 或多个方框中指定的功能的步骤。

尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员 一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。 所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例 范围的所有变更和修改。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系 术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不 一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺 序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的 包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅 包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为 这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的 情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的 过程、方法、物品或者终端设备中还存在另外的相同要素。

以上对本申请实施例所提供的一种项目数据预测评分库的生成方法、 一种项目数据预测评分库的生成系统、一种项目数据的推送方法和一种项目 数据的推送系统,进行了详细介绍,本文中应用了具体个例对本申请实施 例的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解 本申请实施例的方法及其核心思想;同时,对于本领域的一般技术人员, 依据本申请实施例的思想,在具体实施方式及应用范围上均会有改变之 处,综上所述,本说明书内容不应理解为对本申请实施例的限制。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号