一种基于大数据的信息推荐系统
技术领域
本发明涉及大数据技术领域,具体为一种基于大数据的信息推荐系统。
背景技术
当今大数据发展的一大关键难题就是如何高效高质量地从海量的数据信息中挖掘有价值的部分,解决信息过载问题的有效方法就是提供的推荐系统,截止到目前推荐系统的研究已经得到了广泛的应用,也形成了许多有关的研究成果。目前推荐系统在电子商务领域(如淘宝、京东等)、信息检索领域(如百度搜索引擎、谷歌搜索引擎等)、社交网络领域(如QQ、微信)等诸多领域都得到了具体应用,并取得了显而易见的效果。
推荐算法是推荐系统的关键组成部分,除了比较常见的推荐算法之外,还有基于内容的推荐、基于模型的推荐以及混合推荐算法等。最为常见的一种推荐算法为协同过滤推荐算法,现阶段国内外绝大多数的商务网站都是采用这种算法,但是上述的算法都或多或少的存在以下问题:数据矩阵稀疏性、新用户及新物品的冷启动问题、可扩展性问题、实时性问题等推荐算法常见的通用问题。因此还需要进一步对常见的推荐系统进行研究从而来解决上述问题。在实际的网站中一般的解决方法是采用混合推荐算法,比较常见的组合为分别用协同过滤推荐方法和其他方法产生各自的推荐结果,再通过使用不同的组合方法去得到最终推荐列表。混合推荐关键的问题就是通过混合各类算法来相互弱化或者弥补不同推荐技术的弱点。
发明内容
本发明提出了一种基于大数据的信息推荐系统,解决了传统推荐算法推荐结果单一、安全性差等问题。
一种基于大数据的信息推荐系统,包括数据采集模块、数据预处理模块、信息安全系统、数据挖掘分析模块、评估模块、数据存储模块、信息推荐模块,终端模块,云端模块,所述数据采集模块依据每个用户对某些项目的打分构建用户-项目评分矩阵,设用户的集合U={u1,u2,u3,…,um},所有项目的集合I={i1,i2,i3,…,in},m个用户n个项目构成的评分矩阵为Sm×n,在评分矩阵中,矩阵中的元素Sij是用户ui对项目iij的评分;
采用所述数据挖掘分析模块计算目标用户与用户集合中的其他用户的相似度,具体步骤如下:
S1.为了简化,采用i,j代替ui,uj,通过计算两个用户向量之间的夹角的余弦来度量二者的近似相似度:
式中,Sic和Sjc分别表示用户i和j对项目c的评分,U表示所有用户集合,Sim'(i,j)是用户i和用户j之间的近似相似度;
S2.根据用户背景信息对相似度进行加权平衡,以弥补评分信息不足时最近邻选择面临的瓶颈问题,适用于衡量不同用户之间的特征信息偏差,计算公式如下:
Sim(i,j)=β×Sim'(i,j)+(1-β)×Sim'(i,j);
其中,Sim(i,j)是用户i和用户j之间的修正相似度,β是调整因子,可根据不同情形下的用户需求进行自适应调整,β的动态调整公式为:
β=|Sic|/(|Sic|+|Sjc|);
S3.将Sim(i,j)相似性从大到小排序,生成最近相邻集的集NN={U1,U2,U3…Up};
S4.计算用户i对用户j的信任度TD(i,j)的公式如下:
AccTime(j,i,c)表示用户j到用户i的关于项目c推荐的正确度,ε是固定阈值,如果Si,c与Sj,c之间差值的绝对值小于或等于ε,则AccTime(j,i,c)等于1;如果Si,c与Sj,c之间差值的绝对值大于ε,则AccTime(j,i,c)等于0,RecTime(j,i)表示数据集中所有其他用户j对用户i关于所有项目推荐的总次数;
S5.计算并保存用户的信任信息,然后再用TD来基于信任和相似性设计混合推荐算法,基于信任度和相似度的权值合成如公式所示:
weight(i,j)=α·sim(i,j)+(1-α)·TD(i,j)+η·W(i)+(1-η)·TD(i,j);
式中,weight(i,j)表示权重,α、η是权重系数;
S6.通过所述评估模块将用户i在项目c上的预测评分Pi,c表示为:
式中,
表示用户i对项目c的平均评分,
表示用户j对项目c的平均评分;
S7.如果两个用户之间的相似度较高,则这两个用户将对同一项目给出相似或相同的得分,将根据目标用户NN集中用户对该项目的得分计算加权平均值作为目标用户的预测得分,然后通过所述信息推荐模块将排名在前几位的物品推荐给用户。
进一步地,将物品以及用户本身具有的时间属性考虑到对用户推荐的影响因子中,进而通过调整时间函数中的参数以达到更好地推荐效果,关于权重系数α的计算如下:
式中F(t(ric),t(rjc))表示时间调整函数,t(ric)表示系统中用户i对项目c产生交互的时间,t(rjc)表示系统中用户j对项目c产生交互的时间,δ表示时间差的权重系数,Qt表示根据不同的数据集可改变的参数。
进一步地,计算社会影响力值的聚集值W(i),且令权重常数η=W(i):
进一步地,所述数据预处理模块利用数据采集模块中的信息进行安全分析,设用户集合U={u1,u2,u3,…,um}表示初级安全事件的集合,每一个用户代表一个安全事件,m是用户总数,其中每个用户包括p个字符类型和q个数值类型特征,集合中任意两个用户ui,uj的字符特征相异度Ds(ui,uj)为:
式中,
和
为用户共有特征l取值分别为f
il与f
jl的个数,当f
il=f
jl时,σ(f
il,f
jl)等于0,否则等于1;
用户ui,uj的数值特征相异度DN(ui,uj)为:
因此,任意混杂型安全事件即用户ui,uj的相异度D由字符型相异度Ds和数值型相异度DN共同决定,计算公式为:
安全事件越接近,D值随之趋于0,ui与uj的差异越大,D值就会随之增大;在关联过程中,当出现新的安全事件时,可以通过对所有关联事件进行遍历,以事件相异度为度量标准,预测ui属于各事件类概率并将ui归于概率最大的事件类;而当ui关于所有类的概率都大于预定阈值时,可以考虑创建一个新类对ui进行指派。
进一步地,所述用户背景信息包括年龄、性别、职业。
进一步地,所述信息推荐系统包括三种信任路径:
(1)从用户到陌生人的信任路径,则用户i对用户j的信任度通过用户h用以下公式表示:TD(i,j)=TD(i,h)·TD(h,j);
(2)在用户i和用户j之间存在多于一个的信任路径,在多信任路径情况下,用户i对j的信任度表示为:
式中,TC表示信任圈,n是用户A和用户C之间的所有信任路径的总数;
(3)用户i和用户j可能在他们彼此不知道的情况下彼此信任,即循环信任路径中,使用反向TD加法机制来计算用户i对用户j的信任度TD(i,j)':
TD(i,j)'=TD(i,j)+λTD(j,i)
式中,入是常数参数,如果TD(i,j)'的计算值大于1,则令TD(i,j)'=1。
进一步地,所述终端模块包括客户端UI模块、可视化模块,所述客户端UI模块适于采集终端用户信息。
进一步地,所述云端模块包括讯号接收模块,所述数据挖掘分析模块和数据存储模块适于接收处理所述客户端UI模块采集的终端用户信息及相关大数据。
本发明通过建立一种信任系统,以表达用户之间的信任关系,从而帮助用户确定是否信任项目的通信。通过大数据对通信网络中海量的数据进行分析,找出通信网络中影响数据传输稳定性的因素,帮助解决或优化通信网络中的这些问题,从而提升网络通信的稳定性与抗干扰能力,给后续的推荐分析提供保障。
本发明采用量化的方式将各种因素融合到用户偏好的预测中,采用推荐模型来挖掘用户不断变化的兴趣偏好,结合用户评分记录按照特定的排序算法来生成推荐列表。
具体实施方式
需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互结合。为了使本领域技术人员更好地理解本发明方案,下面将对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
大数据可以在用户的日常生活和工作中为用户提供许多便利,但是这也引起一些问题。数据的快速增长使得用户淹没在大数据的海中,许多用户不得不浪费很多不必要的时间来找到有用的信息,这被称为信息过载的问题。为了解决大数据加剧的问题,本发明提出个性化推荐技术。
首先,系统根据所有用户的历史记录数据将用户数据收集到用户数据库中,当用户向系统请求帮助时,系统根据用户数据和项目数据的分析使用内置推荐算法来向目标用户给出有用的推荐。
信任在我们的日常生活中是非常重要的关系,因此在推荐系统中也是如此。在系统中有两种信任。一个是用户和推荐系统之间的信任,另一个是不同用户之间的信任。前一种信任可以通过增加推荐系统的透明性来改进,并且它可以使用户信任系统提供的推荐。后一种信任考虑了用户的社交网络,并且帮助系统通过使用用户的朋友来提供推荐,因为用户总是信任他们的朋友,这意味着用户也会信任他们的朋友已经购买的推荐。
推荐系统中的信任主要集中在评论站点的推荐系统中,本发明通过建立一种信任系统,以表达用户之间的信任关系,从而帮助用户确定是否信任项目的通信。
通过分析源节点所信任的邻居对项目的评分来预测源节点的偏好,用户和用户之间是根据他们之间的信任关系连接的。非相邻的用户之间的信任值是根据改进后的广度优先搜索算法查找到两个用户之间的路径而得到的。两个用户之间的路径越短,说明两个用户的信任值越高。当这个值大于给定的阈值时,我们就判定这个用户和目标用户为相似用户。
1.数据集的预处理
推荐系统收集的大多数数据是杂乱且冗余的,并且那些数据不能直接在推荐系统中使用,因此,首先必须对数据进行一些预处理。依据每个用户对某些项目的打分构建用户-项目评分矩阵。设m个用户n个项目构成的评分矩阵为Sm×n,在评分矩阵中,矩阵中的元素Sij是用户ui对项目iij的评分。Sij的值越高说明用户越喜欢该项目,当Sij的值为空时,说明用户ui没有对项目ij进行评分;所有用户的集合U={u1,u2,u3,…,um},所有项目的集合I={i1,i2,i3,…,in};
推荐系统收集的大多数数据是杂乱且冗余的,并且那些数据不能直接在推荐系统中使用,因此首先必须对数据进行一些预处理,并且随着社会经济发展,对于通信网络的承载力与信息传输的稳定性提出了更高的要求。由于网络环境的复杂性,原始安全信息的内容非常杂乱,相同安全节点上产生的安全信息,其内容可能是缺失的、错误的,甚至可能存在矛盾。直接利用这些信息进行安全分析,将会严重影响分析效率和结果的准确。为了应对此问题,必须对安全信息进行过滤,对其中的存在的错误偏差进行处理,进而提高信息质量。本发明通过大数据分析则能够对通信网络中海量的数据进行分析,找出通信网络中影响数据传输稳定性的因素,帮助解决或优化通信网络中的这些问题,从而提升网络通信的稳定性与抗干扰能力,给后续的推荐分析提供保障。
信息错误种类很多,例如时间错误:在异构网络环境之中,各个节点由于环境差异或人为干扰,可能出现时钟不同步的现象,使安全信息的时间出现随机性错误,给关联分析造成阻碍;因此,信息过滤需要在关联之前,对时间参数进行检查并修正,统一时间标准。类型错误:在复杂的网络环境中,安全节点可能会产生误报;误报可能是由于系统出错或者受到挟持等原因产生的。地址错误:许多黑客在实施网络攻击时,为了防止被溯源发现,常常用错误、不存在的地址伪造自己的IP,给关联分析造成了很大的困难;因此,信息过滤也需要对安全信息源地址进行检测和错误标记;比如在相同节点上获取的信息,若它们的目标地址不是同一网段中的地址,则应该对其目标地址进行修正或标记。由于各个安全节点的差异性,安全事件特征类型混杂,难以直接进行关联。特征主要有两种:数值类型,字符类型;前者如接收字节数,后者如协议类型等。因此,本发明提出针对混合类型的用户差异性度量方法。
设用户集合U={u1,u2,u3,…,um}表示初级安全事件的集合,每一个用户代表一个安全事件,m是用户总数,其中每个用户包括p个字符类型和q个数值类型特征,集合中任意两个用户ui,uj的字符特征相异度Ds(ui,uj)为:
式中,
和
为用户共有特征l取值分别为f
il与f
jl的个数,当f
il=f
jl时,σ(f
il,f
jl)等于0,否则等于1;
用户ui,uj的数值特征相异度DN(ui,uj)为:
因此,任意混杂型安全事件即用户ui,uj的相异度D由字符型相异度Ds和数值型相异度DN共同决定,计算公式为:
安全事件越接近,D值随之趋于0,ui与uj的差异越大,D值就会随之增大。在关联过程中,当出现新的安全事件时,可以通过对所有关联事件进行遍历,以事件相异度为度量标准,预测ui属于各事件类概率并将ui归于概率最大的事件类;而当ui关于所有类的概率都大于预定阈值时,可以考虑创建一个新类对ui进行指派。事件关联算法根据安全事件的相异度,将当前待检测的安全事件与现有类似的安全事件进行聚合,从而把实际网络环境中获取的海量异构信息,缩减为相对少数的关联安全事件,为后续安全事件的合并处理,如基于谓词合并、基于因果合并等,保障了效率并为推荐系统的有效性与准确性奠定了基础。
2.寻找最近邻居
为了简化,采用i,j代替ui,uj,该步骤是非常重要的步骤,因为所选择的最近邻居(NN)会影响算法的质量。在此步骤中,首先通过不同的相似度计算公式得到目标用户与用户集合中的其他用户的相似度,然后根据相似度值找到最近的邻居。通过计算两个用户向量之间的夹角的余弦来度量二者的相似度:
Sic和Sjc分别表示用户i和j对项目c的评分,U表示所有用户集合,Sim'(i,j)是用户i和用户j之间的近似相似度。
用户背景信息是指系统用户所具有的基础属性,其中包含年龄、性别、职业等基本信息,这些基本信息可以将用户群体进行粗略的划分,在一定程度上代表某一类群体的喜好。根据用户背景信息对相似度进行加权平衡,以弥补评分信息不足时最近邻选择面临的瓶颈问题,适用于衡量不同用户之间的特征信息偏差,计算公式如下:
Sim(i,j)=β×Sim'(i,j)+(1-β)×Sim'(i,j);
其中,Sim(i,j)是用户i和用户j之间的修正相似度,β是调整因子,可根据不同情形下的用户需求进行自适应调整,β的动态调整公式为:
β=|Sic|/(|Sic|+|Sjc|);
将Sim(i,j)相似性从大到小排序,生成最近相邻集的集NN={U1,U2,U3…Up}。
社会学的信任是我们日常生活中的重要关系,用户将根据信任决定是否推荐,在真实的社会生活中,信任是定量的名词,因此本发明使用信任度TD来表示两个用户之间的信任度。TD是存在于推荐接受者和推荐提供者中的点对点信任关系的度量,其中j的信任度不等于TD(j,i),TD(j,i)值越大,j信任i越多。j和i之间的信任关系是不对称的,即TD(i,j)不等于TD(j,i)。
假设i和j是信任模型中的两个用户,则计算用户i对用户j的信任度TD(i,j)的公式如下:
AccTime(j,i,c)表示用户j到用户i的关于项目c推荐的正确度,ε是固定阈值。如果Si,c与Sj,c之间差值的绝对值小于或等于ε,则AccTime(j,i,c)等于1;如果Si,c与Sj,c之间差值的绝对值大于ε,则AccTime(j,i,c)等于0。RecTime(j,i)表示数据集中所有其他用户j对用户i关于所有项目推荐的总次数。
3.信任路径的优化
在社会关系的领域中,用户可能不与陌生人通信,但是如果用户信任的朋友之一非常信任陌生人,则用户可以获得陌生人提供的建议,即存在从用户到陌生人的信任路径。TD(i,j)是用户i对用户j的信任度,TD(j,i)是用户j对用户i的信任度,则用户i对用户j的信任度通过用户h用以下公式表示:
TD(i,j)=TD(i,h)·TD(h,j)
通常情况下,在用户i和用户j之间存在多于一个的信任路径,在多信任路径情况下,用户i对j的信任度表示为:
式中,TC表示信任圈,n是用户A和用户C之间的所有信任路径的总数。
在一些情况下,用户i和用户j可能在他们彼此不知道的情况下彼此信任,我们称这种信任路径为循环信任路径。在循环信任路径中,我们使用反向TD加法机制来计算用户i对用户j的信任度TD(i,j)':
TD(i,j)'=TD(i,j)+λTD(j,i)
式中,入是常数参数,如果TD(i,j)'的计算值大于1,则令TD(i,j)'=1。
当信任圈TC中有大量用户,则信任路径中将存在传输干扰,这意味着信任在路径中从用户i到用户j有太多用户,即在用户i和用户j的信任路径之间有n个用户,为了避免传输失真,设置阈值X来限制信任路径的长度,如果n大于X,我们放弃信任路径来保证TD的精度,其中,阈值X的计算如下:
式中,R(i,j)为社交关系信息值的聚集限制,G(i,j)为社交关系紧密度值的聚集限制。
4.评估算法
计算并保存用户的信任信息,然后再用TD来基于信任和相似性设计混合推荐算法。基于信任度和相似度的权值合成如公式所示:
weight(i,j)=α·sim(i,j)+(1-α)·TD(i,j)+η·W(i)+(1-η)·TD(i,j);
式中,weight(i,j)表示权重,α、η是权重常数。
信任之所以能够应用于推荐来提高推荐系统的性能,主要是因为它包括以下几个特性,即可度量性、动态性、多侧面性以及时间衰减性。关于时间衰减性,众所周知,人与人之间的信任会随着时间的推移而降低。推荐系统中的信任主要表现为对商品评价的时间越久,该评价的说服力越差,所以在推荐系统中,本发明利用信任因素去排除一些潜在的不利因素,即将物品以及用户本身具有的时间属性考虑到对用户推荐的影响因子中,进而通过调整时间函数中的参数以达到更好地推荐效果。
式中F(t(ric),t(rjc))表示时间调整函数,t(ric)表示系统中用户i对项目c产生交互的时间,t(rjc)表示系统中用户j对项目c产生交互的时间,δ表示时间差的权重系数,Qt表示根据不同的数据集可改变的参数。本发明通过加入用户以及物品相关的时间因子,使之变得更加贴近现实生活中人们对兴趣变化的时间效应函数,以达到更好对推荐效果,提高推荐结果的准确度和用户的满意度。
同时,在社交网络中,目标用户所信任的用户关注的项目更有可能吸引目标用户的关注,并且用户之间的信任关系越强,目标用户关注该项目的可能性就越大。现有技术中有很多基于信任的社交推荐算法,它主要通过评分数据和社交关系去挖掘用户之间的信任程度而忽略了社会影响力的影响。由于社会影响力不具有传递性,本发明采用下列算法计算社会影响力值的聚集值W(i),且令权重常数η=W(i):
综上,将用户i在项目c上的预测评分Pi,c表示为:
式中,
表示用户i对项目c的平均评分,
表示用户j对项目c的平均评分。
如果两个用户之间的相似度较高,则这两个用户将对同一项目给出相似或相同的得分,所以本发明将根据目标用户NN集中用户对该项目的得分计算加权平均值作为目标用户的预测得分,然后将排名在前几位的物品推荐给用户。
以上所述仅是对本发明的较佳实施例而已,并非对本发明作任何形式上的限制,凡是依据本发明的技术实质对以上实施例所做的任何简单修改,等同变化与修饰,均属于本发明技术方案的范围内。