一种基于USDR模型的云推荐方法技术领域
本发明涉及到一种基于USDR模型的云推荐方法
背景技术
Web在科技的进步和信息的更新交替中进入了“2.0时代”,同时由于各种信息更新
速度的加快,互联网的数据资源也同步进入了大数据云时代,在某种程度上,网络垃圾和无
效资源也越来越多,当普通用户想要寻找某种有用的资源时,如何在海量数据中筛选出特
定的资源变成一个急需解决的问题。
在云环境中,对于云数据的统一建模一直是研究热点。对于部署在云端的各类信
息推荐系统,其数据结构是多源且异构的,因此用户对数据灵活性和安全性的要求更高。随
着数据信息技术的不断发展,网络更新逐步加快,数据的更新也越来越快,因此,在云环境
中,如何从海量信息中快速帮助用户获取偏好的信息数据一直是一个研究热点。
国内外学者和研究机构从不同的视角对Web数据和推荐方法进行了研究。
从RSS推荐技术方向出发的代表性工作主要有:上海大学的陈锋等对信息服务资
源进行聚合需求分析,提出了一种基于RSS推送技术的信息服务内容聚合服务方式;东京工
业大学计算机科学系的Hao Han等在RSS推送的基础上构造网络新闻文章内容自动提取系
统,可以从新闻网页中提取对用户有价值的文章内容。
其次,协同过滤推送是目前主要使用的推送方式之一,协同过滤推送不仅可以实
现信息的推送,而且可以根据用户的兴趣实现个性化推送。目前对协同过滤推送技术研究
中具有代表性的有:大连理工大学系统工程研究所的郭艳红等人提出了一种基于稀疏矩阵
的个性化改进策略,能够避免用户之间相似度不密切的关系,提高了矩阵在稀疏情况的预
测准确度。合肥工业大学管理学院的李聪、梁昌勇等人提出了基于领域最邻近的协同过滤
推荐算法,是数据的稀疏性得到了降低,提高了推荐准确性。
从数据传输方向出发的代表性工作主要是中国海洋大学应用数学系的Yang
Wang,马杜赖卡玛拉大学物理系的Bharadwaj Veeravalli设计了一种分阶段获取云端分享
数据的算法,能够有效的控制数据的传输成本。国内电子科技大学计算机科学与工程系的
许福龙,刘明等人进一步提出了一种基于相对距离感知的动态数据传输策略,采用传感器
节点到汇聚点的相对距离来计算节点传输概率的大小,并以此作为消息传输时选择下一跳
的依据。
但以上方法都只是通过单一修改推送方式或推荐算法而实现内容的推荐,并侧重
于对传统推送方式的技术改良,但并不能有效解决面向多源异构数据的云环境下用户的个
性化推荐问题。一种理想的云推荐方法应该考虑推送多源异构数据时遇到的效率低,实时
性差等问题,并能从用户基础属性和偏好属性出发,来推送数据,以满足用户个性化需求。
发明内容
为了克服现有推送方式的无法解决面向多源异构数据的云环境下用户的个性化
推荐问题的不足,本发明针对云环境下多源异构数据的特征,综合移动互联网安全性和隐
私性等特点,本发明提供一种有效解决解决面向多源异构数据的云环境下用户的个性化推
荐问题的基于USDR模型的云推荐方法,采用面向多源异构数据的USDR(User System Data
Relationship)模型,通过将用户数据和系统数据分类来快速得到用户和系统的不同推荐
度,以实现云环境下数据的高效推荐。
本发明所采用的技术方案是:
一种基于USDR模型的云推荐方法,包括如下步骤:
第一步:USDR数据模型建模,过程如下:
用户数据分为用户基础数据、时间数据、地点数据、用户偏好数据和历史数据;
系统数据分为服务类型数据、服务介绍以及这些服务的范围;这些系统中的数据
结构多样,类型复杂,并且有些数据是动态变化的。USDR模型能够有效的处理这些云数据。
1.1用户数据模型建模
用户数据基本划分为六类:用户基本数据(BasicData)、时间数据(TimeData)、地
点数据(LocationData)、环境数据(EnvironmentData)、用户偏好数据(PerferenceData)和
历史数据(HistoryData);
1.2系统数据模型建模
系统数据模型主要元素包括:基础数据(SerBasicData)、功能数据
(SerFunctionData)和其他数据(SerOtherData);
第二步:基于USDR模型的云推荐方法,过程如下:
2.1基于用户的云推荐方法
传统的推荐算法有皮尔逊相关系数法、向量余弦法、斯皮尔曼相关系数法等等,在
不同的领域中,需要选取不同的相似度计算方法。由于云数据的特殊性,本发明提出了一种
基于USDR模型的云推荐算法,根据用户、系统的相似值来计算推荐的系统数据。主要目的在
于计算两个用户的相似度,本算法中主要使用用户行为相似度来计算用户的类似喜好。本
算法又两部分组成:一部分由用户基础属性来决定用户的相似程度,通过计算,基本属性的
差异越小,则相似程度越高;第二部分是偏好、位置和服务记录数据等,通过查看用户的地
理位置和历史感兴趣的系统的数值,该数值越大,则用户之间的相似程度越高,最后计算总
相似度。
2.1.1计算基础属性相似度
基础属性一般都是数值类型。对于数值型属性,只需要计算绝对值只差|D|=|
Attr1-Attr2|。对于名称型的基础数据,一般取值类型比较单一,就可以采用二进制编码的
方式来表示。最终将用户全部名称型数据编码串联起来,行成一个二进制串。
不同的数值型属性的绝对值最大与最小的差距为[α1,αn],然后把这个区间划分为
n-1个相等的区间{[α1,α2],[α2,α3],...[αn-1,αn]},对每个区间给予相应的数值{0,1,2,
3...n},当用户的数值型属性绝对值落在某个区间时,即可得出属性间的距离Dbnum。对于名
称型属性,通过确定编码位数n,然后将每个取值通过格雷编码,然后依次链接起来,最后通
过计算海明距离,得到名称型属性距离DH。定义用户A和B,每个基础属性的权重值为wi,则所
有属性权重值满足
对于数值型的属性距离Dbnum,根据上面的解释,定义不同的取值区间:
若α∈[α1,α2],则dbnum=0;
若α∈[α2,α3],则dbnum=1;
.......
若α∈[αn-1,αn],则dbnum=n-1;
数值属性的距离计算为:
对于名称型的属性距离Dbnum,则对不同的取值进行编码。将用户的全部名称属性
编码串联起来,形成二进制串At;采用At的海明距离来计算用户名称属性的距离。
DH=wDhm(DbNumA,DbNamB) (3)
最终得到2个用户A与B的基础属性距离
通过差值DA-B可得出,DA-B越小,相似度则越大,DA-B越大,则相似度越小。
2.1.2计算用户偏好相似度
若给定用户u和v,N(u)表示用户u的偏好相似度集合,N(v)表示用户v的偏好相似
度集合,余弦公式相似度计算公式为:
用余弦公式计算用户间两两的相似度之后,算法通过综合分析基础数据相似度和
用户偏好数据相似度,再进行推荐,推荐度公式如6所示。
公式中,DA-B为基础数据的差值,N(i)表示对项目i有偏好的用户组,Re(u,l)表示
存在与用户A偏好类似的用户组。wab描述用户A与用户B的相似度,ybi表示用户B对项目i的
偏好程度。
2.2基于系统的云推荐方法,过程如下:
2.2.1计算系统之间的相似程度
根据余弦公式可得系统的相似度:
从余弦公式中可以看出,Num(i)表示偏好系统i的用户数量,Num(j)表示偏好系统
j的用户数量,与的比值表示在偏好系统i的用户中同时也偏好系统j的比例。但是
当系统j是一个所有人都偏好的系统时,任何其他系统通过公式(7)得出的结果都会很大,
所以本发明中将公式(7)进行修改,如公式(8)所示:
公式(8)在分母中加入了相当于降低了系统j的权重。首先设定权重值w
区间范围为[w1,wn],将[w1,wn]分割为n个小区间{[w1,w2],[w2,w3],...,[wn-1,wn]},每个区
间赋值{0,1,2....,n},然后对所有系统两两比较,如果用户的偏好落在区间范围内,那么
认为这些系统属于同一个领域,相似度很大,值得推荐。
2.2.2根据相似度生成系统推荐列表
首先分别将每位用户对每个系统的偏好情况用矩阵表示,得到每位用户的偏好矩
阵,然后将所有用户的偏好矩阵相加,得到相似度矩阵S,S[i][j]表示同时对系统i和系统j
都偏好的用户数量。
得到相似度矩阵之后,通过公式7计算用户a对系统i的推荐度:
公式9中N(u)表示当前用户的偏好集合,S(i,k)表示与系统i比较相似的K个系统
的集合,wij是系统i与系统j的相似度。将该推荐度从大到小排列,采用TOP-N的方式取前N个
系统推荐给用户。
第三步:采用基于USDR模型的云推荐算法得出用户推荐度列表:
通过分别计算用户和系统数据的推荐度会导致结果比较粗糙,为了使得云推荐算
法更加精确,将用户数据推荐度加入到系统数据推荐度中,得出综合推荐度列表,将使推荐
度的结果更加准确和方便,更加方便于下一步的云推送。使用基于USDR模型的云推荐算法
得出用户推荐度列表的具体流程如下:
3.1查看用户历史记录数据表,若用户的历史数据为空,则说明为新注册用户,那
么就执行步骤3.2,否则执行步骤3.5;
3.2查看用户基础数据中的关联用户列表,若有关联用户,则执行步骤3.3,若无,
则执行步骤3.4;
3.3将该用户与每位关联用户分别用公式DA-B进行计算,得出相似度,查看相似度
在设定的权重值内的用户,执行步骤3.4;
3.4使用公式(6)计算所有在权重值范围内的关联用户的偏好推荐度
Recommenduser,加入用户推荐列表中,执行步骤3.5;
3.5使用公式(9)计算的历史数据表中每个系统的推荐度Recommendsystem,将这些
系统放入推荐列表,执行步骤3.6;
3.6将步骤3.4和步骤3.5中的Recommenduser和Recommendsystem分别平方,再求和开
根号得出综合推荐度:
3.7根据综合推荐度,加入到综合推荐度列表。
本发明的优点是:针对传统推送方式下用户被推荐内容经常较为相似、用户满意
度低等问题。面向云环境中的数据呈现多源异构的特点,设计了基于USDR模型的云推荐方
法,分别从用户和系统两边来建模以满足多系统面向不同用户的个性化云推荐功能。通过
将用户数据和系统数据分类来快速得到用户和系统的不同推荐度,以实现云环境下数据的
高效推荐,从而在海量信息中快速帮助用户获取偏好的信息,既能满足用户的功能性需求,
同时也满足了用户的个性化需求。
附图说明
图1是用户数据模型图。
图2是成绩查询服务系统模型图。
图3是多媒体服务数据模型图。
图4是基于USDR模型运行过程示意图。
图5是基于USDR模型的云推荐算法运行流程图。
具体实施方式
下面结合附图对本发明做进一步说明。
实施例1
参照图1~图5,一种基于USDR模型的云推荐方法,包括以下步骤:
第一步:USDR数据模型建模,过程如下:
在云环境中,云数据数量庞大,种类繁多,根据系统服务种类,可以划分为数据查
询服务、工资数据服务、排队服务、交通数据服务、购物信息服务、股票期货服务、多媒体数
据推送服务等多种服务类型。
比如有三种股票软件都通过云平台为客户提供金融数据推送服务,但是其中一款
股票软件是收费软件,数据推送响应时间更快、推送的服务更多,但价格也是同类股票软件
中最高的。除了相同类型的服务中出现的情况,用户数据信息之间也存在不同,用户将会根
据自己的基础信息选择不同的服务。比如交通数据服务服务中,有些用户可能上班时间比
较自由,那么他们可以选择上下班高峰期过后的道路数据推送服务,而有些用户需要准时
到达单位,那么推送给他们当时的路况数据,可以使他们选择在上下班高峰期避开一些拥
堵路段;同样,购物信息服务中,经济条件好的用户可能比较偏好奢侈品,而经济条件一般
的用户则偏好于普通实用的商品,所以在推送数据是就会一定的差异性,需要建立用户和
系统的关系数据模型。
当用户请求获取一种类型的服务时,基于USDR模型的云推荐方法应该自动根据现
有云环境中相同类型的系统和用户自身的数据,推送给用户最合适的服务,这样就既能满
足用户的功能性需求,同时也满足了用户的个性化需求。
用户数据主要可以分为用户基础数据、时间数据、地点数据、用户偏好数据、历史
数据等。
系统数据主要可以分为服务类型数据(如成绩查询服务、金融股票服务等)、服务
介绍以及这些服务的范围(价格、位置)。这些系统中的数据结构多样,类型复杂,并且有些
数据是动态变化的。USDR模型能够有效的处理这些云数据。
1.1用户数据模型建模
用户数据基本可以划分为六类,如表1所示:
用户基本数据(BasicData):包括用户姓名、性别、身份证、电话、出身日期、职业、
毕业学校、爱好、出生地等。
时间数据(TimeData):记录用户的使用系统的时间,同时也记录用户所在的时区。
地点数据(LocationData):用于记录用户所在的位置,包括城市,工作日经常出没
地点。
环境数据(EnvironmentData):记录当日天气情况,温度等。
用户偏好数据(PerferenceData):记录用户的偏好情况,如运动,电影,理财,旅
游,读书等。
历史数据(HistoryData):记录用户曾经使用的系统,常用的理财,消费记录等。
表1
通过UML工具可以很清晰的看出用户各类数据之间的关系,并且通过设置主键显
示出各条属性的重要程度,具体如图1所示。
系统数据服务有成绩查询服务、工资数据服务、银行排队服务、交通数据服务、酒
店预订服务、股票期货服务、多媒体数据推送服务。这些系统都属于不同的领域,这些系统
的数据类型复杂程度高,数量大,若不进行建模将很难进行云推送,在对系统数据进行建模
之后也跟利于数据的个性化推荐云推送,本例选择具有代表性的成绩查询服务系统和多媒
体数据服务系统进行系统数据模型建模。
1.2系统数据模型建模
(1)成绩查询服务系统
成绩查询服务系统主要为在校学生提供每个学期结束之后的成绩查询服务,首先
最高层应该为用户的类型,为本科生、硕士研究生还是博士研究生,确定了学生类型之后需
要到各个学院中查询数据,由于很多学院中的必修课是相同的,所以为了避免重复的查询
接下来模型中将分为必修课和选修课以及实践活动。最终得到个门功课的成绩。最后学生
得到了该门课的成绩之后,还需要对老师进行评价,如图2所示。
系统数据模型再结合用户数据模型可以看出,在用户数据模型中的用户偏好,毕
业院校就可以更加精确的给用户推送推荐数据,同时这种分层的结构能使云推送更加高
效。
(2)多媒体数据服务系统
多媒体数据服务相对于成绩查询服务将会复杂很多,多媒体数据服务各种系统
中,可以将数据的类型分为文字数据、音频数据、视频数据、图文数据等。根据多媒体服务的
不同类型和用户的偏好将分为新闻,体育,娱乐,游戏,电影等,接下来再继续对具体需要推
送的数据进行分类,详情见图3。
系统数据模型主要元素包括基本数据,其他数据如表2所示:
基础数据(SerBasicData):主要是对系统服务的基本描述,包括服务提供商,服务
类型,服务ID,服务名称,服务简介等数据。
功能数据(SerFunctionData):主要对服务中的功能性参数进行描述,即服务输入
输出参数,服务的接口参数,最终服务执行结果等。
其他数据(SerOtherData):主要有些系统需要定位数据,天气数据等其他因素。
表2
第二步:基于USDR模型的云推荐算法,过程如下:
2.1基于用户的云推荐算法
传统的推荐算法有皮尔逊相关系数法、向量余弦法、斯皮尔曼相关系数法等等,在
不同的领域中,需要选取不同的相似度计算方法。由于云数据的特殊性,本发明提出了一种
基于USDR模型的云推荐算法,根据用户、系统的相似值来计算推荐的系统数据。主要目的在
于计算两个用户的相似度,本算法中主要使用用户行为相似度来计算用户的类似喜好。本
算法又两部分组成:一部分由用户基础属性来决定用户的相似程度,通过计算,基本属性的
差异越小,则相似程度越高;第二部分是偏好、位置和服务记录数据等,通过查看用户的地
理位置和历史感兴趣的系统的数值,该数值越大,则用户之间的相似程度越高,最后计算总
相似度。
(1)基础属性相似度
基础属性一般都是数值类型,如性别,年龄,毕业院校等。对于数值型属性,只需要
计算绝对值只差|D|=|Attr1-Attr2|。对于名称型的基础数据,一般取值类型比较单一,就
可以采用二进制编码的方式来表示,比如性别:男,女,分别对应00,01。其他复杂点的以此
类推。最终将用户全部名称型数据编码串联起来,行成一个二进制串。
不同的数值型属性的绝对值最大与最小的差距为[α1,αn],然后把这个区间划分为
n-1个相等的区间{[α1,α2],[α2,α3],...[αn-1,αn]},对每个区间给予相应的数值{0,1,2,
3...n},当用户的数值型属性绝对值落在某个区间时,即可得出属性间的距离Dbnum。对于名
称型属性,通过确定编码位数n,,然后将每个取值通过格雷编码,然后依次链接起来,最后
通过计算海明距离,得到名称型属性距离DH。定义用户A和B,每个基础属性的权重值为wi,则
所有属性权重值满足
对于数值型的属性距离Dbnum,根据上面的解释,定义不同的取值区间:
若α∈[α1,α2],则dbnum=0;
若α∈[α2,α3],则dbnum=1;
.......
若α∈[αn-1,αn],则dbnum=n-1;
数值属性的距离计算为:
对于名称型的属性距离Dbnum,则对不同的取值进行编码。将用户的全部名称属性
编码串联起来,形成二进制串At;采用At的海明距离来计算用户名称属性的距离。
DH=wDhm(DbNumA,DbNamB) (3)
3)最终得到2个用户A与B的基础属性距离
通过差值DA-B可以看出,DA-B越小,相似度则越大,DA-B越大,则相似度越小。
(2)用户偏好相似度
若给定用户u和v,N(u)表示用户u的偏好相似度集合,N(v)表示用户v的偏好相似
度集合(如时间,位置,系统使用情况等),运用余弦公式相似度计算公式:
表3用户偏好表
用户A
成绩查询系统
金融服务系统
酒店预订系统
用户B
成绩查询系统
工资系统
用户C
交通查询系统
金融服务系统
多媒体系统
从表3的用户偏好为代表:用户A对{成绩,金融,酒店}方面的系统感兴趣,用户B对
{成绩、工资}方面的系统感兴趣,所以可以计算出用户A和用户B的偏好相似度,如下所示:
用余弦公式计算用户间两两的相似度之后,算法通过综合分析基础数据相似度和
用户偏好数据相似度后,再进行推荐,推荐度公式如6所示。
公式中,DA-B为基础数据的差值,N(i)表示对项目i有偏好的用户组,Re(u,l)表示
存在与用户A偏好类似的用户组。wab描述用户A与用户B的相似度,ybi表示用户B对项目i的
偏好程度。
2.2基于系统的云推荐方法
基于系统的云推荐算法,主要通过以下两步完成:首先计算系统之间的相似程度,
然后根据相似度生成系统推荐列表。
根据余弦公式可得系统的相似度:
从余弦公式中可以看出,Num(i)表示偏好系统i的用户数量,Num(j)表示偏好系统
j的用户数量,与的比值表示在偏好系统i的用户中同时也偏好系统j的比例。但是
当系统j是一个所有人都偏好的系统时,如工资系统,任何其他系统通过公式(7)得出的结
果都会很大,所以本发明中将公式(7)进行修改,如公式(8)所示:
公式(8)在分母中加入了相当于降低了系统j的权重。首先设定权重值w
区间范围为[w1,wn],将[w1,wn]分割为n个小区间{[w1,w2],
[w2,w3],...,[wn-1,wn]},每个区间赋值{0,1,2....,n},然后对所有系统两两比
较,如果用户的偏好落在区间范围内,那么认为这些系统属于同一个领域,相似度很大,值
得推荐。分三步介绍采用基于系统的云推荐算法的简单例子。
假设有a,b,c,d,e5个系统,同时存在A,B,C,D,E5位用户,对每位用户偏好的项目
用矩阵表示:
用户A:偏好a,b,c系统,用矩阵表示为
用户B:偏好a,b,d系统,用矩阵表示为
用户C:偏好a,d系统,用矩阵表示为
用户D:偏好b,c,e系统,用矩阵表示为
用户E:偏好a,e系统,用矩阵表示为
将A,B,C,D,E矩阵全部相加之后可得矩阵S,S[i][j]则表示同时对系统i和系统j
都偏好的用户数量。
得到相似度矩阵之后,通过公式(7)计算用户a对系统i的推荐度:
公式9中N(u)表示当前用户的偏好集合,S(i,k)表示与系统i比较相似的K个系统
的集合,wij是系统i与系统j的相似度。将该推荐度从大到小排列,采用TOP-N的方式取前N个
系统推荐给用户。
第三步:基于USDR模型的云推荐算法得出用户推荐度列表,过程如下:
为了达到更好的用户体验,为用户提供个性化的推荐服务,基于USDR模型运行过
程如图4所示,首先根据用户注册数据为用户建模,其次为云环境中的每个相关系统进行建
模,当模型构建完成之后,分析用户注册数据中的基础属性数据,计算出基础属性相似度,
再算出用户偏好属性相似度,最后同理算出基于系统的云推送推荐算法,最终为用户推送
推荐数据。
通过分别计算用户和系统数据的推荐度会导致结果比较粗糙,为了使得云推荐算
法更加精确,将用户数据推荐度加入到系统数据推荐度中,得出综合推荐度列表,将使推荐
度的结果更加准确和方便,更加方便于下一步的云推送。如何使用基于USDR模型的云推荐
算法得出用户推荐度列表的具体流程如图5所示:
1)查看用户历史记录数据表,若用户的历史数据为空,则说明为新注册用户,那么
就执行步骤2),否则执行步骤5)。
2)查看用户基础数据中的关联用户列表,若有关联用户,则执行步骤3,若无,则执
行步骤4)。
3)将该用户与每位关联用户分别用公式DA-B进行计算,得出相似度,查看相似度在
设定的权重值内的用户,执行步骤4)。
4)使用公式(6)计算所有在权重值范围内的关联用户的偏好推荐度
Recommenduser,加入用户推荐列表中,执行步骤5)。
5)使用公式(9)计算的历史数据表中每个系统的推荐度Recommendsystem,将这些系
统放入推荐列表,执行步骤6)。
6)将步骤4)和步骤5)中的Recommenduser和Recommendsystem分别平方,再求和开根
号得出综合推荐度:
7)根据综合推荐度,加入到综合推荐度列表。