一种基于机器学习及网络节点信誉的非结构化p2p资源搜索方法

文档序号:6515355阅读:134来源:国知局
一种基于机器学习及网络节点信誉的非结构化p2p资源搜索方法
【专利摘要】本发明涉及一种基于机器学习及网络节点信誉的非结构化P2P资源搜索方法,包括如下步骤:步骤一,设置生存时间;步骤二,判断网络节点是否存在目标资源;步骤三,判断请求消息的生存时间;步骤四,判断Q表中关于目标资源的Q值是否为空;步骤五,计算奖赏;步骤六,搜索目标资源;在邻居网络节点搜索资源,直到找到了目标资源或者TTL为0结束。本发明能够加快机器学习速度,减少资源查询时间,提高搜索成功率,同时保障服务的安全可靠性。
【专利说明】一种基于机器学习及网络节点信誉的非结构化P2P资源搜 索方法【技术领域】[0001]本发明涉及网络通信搜索方法,具体涉及一种基于机器学习及网络节点信誉的非 结构化P2P资源搜索方法。技术背景[0002]随着网络技术的飞速发展和Internet在社会生活各个领域中的广泛应用和迅速 普及,信息量和用户数量与日俱增,使得现有的C/S模式(即Client/Server,客户机/服务 器)无法满足和支持大规模的网络应用,由此产生了 P2P技术。P2P即Peer-to-Peer,也称 为对等计算或对等网络,是在物理网络之上构建的一种覆盖网络。目前P2P技术已经广泛 地应用于文件共享、对等计算、协同工作、即时通信等诸多领域。P2P作为未来网络的关键技 术之一,即核心问题就是为大量的用户提供可靠的服务,实现网络资源共享。但要想充分地 利用P2P网络中的各种资源,关键问题是快速有效地找到资源。目前,非结构化P2P中资源 搜索方法可分为盲目搜索和信息搜索两种:[0003]所谓盲目搜索是在完全没有任何相关信息的前提下,试图通过访问足够数量的网 络节点来满足资源查询请求;该搜索方法会产生大量冗余消息,浪费带宽资源。[0004]所谓信息搜索则是利用所获得的各种有关信息,采用启发式方法指导当前的搜 索,使得系统在查询资源时具有针对性,克服盲目搜索的不足,该方法在一定程度上提高资 源查询效率;但这种简单的信息搜索方法的搜索成功率低,搜索效率得不到保障。[0005]非结构化P2P的拓扑结构是无规则的,这一本质特征也导致了该系统在资源查询 时具有较大的不确定性,因此,如何提高搜索效率对于非结构化P2P网络具有重要意义。[0006]现有的针对非结构化P2P的搜索方法中基于信息搜索方法的居多,如蚁群算法, 移动代理以及基于小世界模型的语义聚类算法,网络节点信誉方法,等等;从搜索成功率、 产生的消息量、对网络动态变化的适应性和网络维护等方面对这些方法分别进行研究表 明,在一定条件下可以提高资源的搜索效率。但这些方法还具有各种各样的缺陷,例如建立 语义小世界的搜索方法,搜索之前,对资源的整合聚类就需要花费大量的代价,另外在资源 查询时,由于大量的冗余消息造成的P2P系统带宽浪费问题也没有解决,搜索效率也得不 到保障。因此,针对非结构化P2P中资源搜索效率低等问题,需要进一步研究寻找更加高效 的资源搜索机制是当前P2P技术的研究重点。[0007]CN 101364958A公开的“一种基于非结构化P2P网络的搜索方法”,其搜索过程是: 网络上的任意一个站点首先根据公式TTL=round(1gnN)+2、Load=nTTL分别计算一组TTL 值和网络负载值Load,并计算各组值的优先级;将优先级的多组值中的最大值对应的邻接 站点数η和消息包存活时间TTL值确定为最终参数;然后根据查询内容生成一个查询消息, 发送给所确定的最终要发送的η个邻接站点;收到该查询消息的第j个邻接站点将TTL值 减j后,搜索本站资源,如果本站有要查询的消息,则返回给发送站点,否则,将该查询消息 转发给其它邻接站点;如此往复直至TTL值变为O或搜索到所要的资源后停止。该方法具有搜索成功率高和网络负载小的优点,可用于在非结构化网络中搜索文档、音乐、电影等资 源信息。[0008]Q学习是一种典型的机器学习方法,其思想来源于条件反射理论及动物学习理论, 广泛应用于各个领域。如CN 101634995 A公开的“一种基于机器学习的网络连接速度预测 方法”。该方法包括以下步骤:1)利用自定义浏览器,记录用户与浏览过的网站的连接速度, 作为训练集和测试集;2)利用获得的网站连接速度,使用神经网络训练并预测该用户与训 练集中各网站的连接速度;3)根据所有神经网络的预测误差减小状况,或者执行步骤4), 或者将训练集分成更小的训练集并对每个训练集返回执行步骤2) ;4)使用一个决策树测 试神经网络的预测性能;5)使用决策树和神经网络,预测用户与未知网站的连接速度。本 发明利用人工智能技术,应用机器学习方法来预测用户与各个网站的连接速度,提升评估 网络状况的精准度,充分利用到用户带宽,为用户提供更好的互联网体验。[0009]有研究者将Q学习的方法应用在基于网格的P2P资源搜索中,该方法要求每个网 络节点均维护一张Q表;Q表包含了该网络节点的每个邻居网络节点的Q值,Q值表示该邻 居网络节点的资源可达性。起初,Q表部分资源的Q值是空的,网络节点是通过不断地学习 网络状态逐渐建立并丰富各自的Q表信息。网络节点在自身不能满足搜索请求时,根据自 身的Q表信息选择下一跳的邻居网络节点,将请求消息转发至下一跳网络节点;与其他方 法相比,该方法虽然有较好的自适应性,但该方法具有学习速率缓慢的缺陷;’其具体为: 由于Q表在初始时为空,网络节点没有关于目标资源的相关信息,在这种情况下,该方法的 网络节点选择策略是采用随机选择策略,对搜索请求的转发具有一定的盲目性,搜索效率 较低;此外,P2P网络的动态性、自组织性和匿名性不能保证所有的响应网络节点都提供诚 实的服务和可靠的资源,某些网络节点甚至提供恶意的欺诈服务,使服务的请求者以及其 它网络节点无法正常获取资源,该方法也没有考虑到这一问题。
【发明内容】
[0010]针对Q学习在查询初始采用随机盲目转发请求,学习速率缓慢以及服务安全性差 等问题,本发明的目的是提供一种基于机器学习及网络节点信誉的非结构化P2P资源搜索 方法,该方法能够加快机器学习速度,减少资源查询时间,提高搜索成功率,同时保障服务 的安全可靠性。[0011]本发明所述的一种基于机器学习及网络节点信誉的非结构化P2P资源搜索方法, 包括如下步骤:[0012]步骤一,设置生存时间;当某一网络节点收到包括源网络节点ID、资源名和生存 时间TTL的资源请求消息时,设置生存时间TTL的初值为10 ;[0013]步骤二,判断网络节点是否存在目标资源;网络节点检查本地是否存在目标资源, 若为Y,即本地存在目标资源,则直接返回源网络节点资源响应消息;若为N,即本地不存在 目标资源,则将资源请求消息作为新消息加入到本网络节点;[0014]步骤三,判断请求消息的生存时间;即判断请求消息的生存时间TTL是否为0,若 为Y,搜索过程结束;若为N,则将请求消息转发至邻居网络节点;[0015]步骤四,判断Q表中关于目标资源的Q值是否为空;网络节点首先查看本网络节点 Q表,若判断为N,即有目标资源的Q值,则选择具有最大Q值的邻居网络节点,并向其转发请求消息,同时请求消息中的生存时间TTL值减少I ;若判断为Y,即没有目标资源的Q值, 网络节点则查看自身信誉表,选择信誉值最高的网络节点作为邻居网络节点,并向其转发 请求消息,同时请求消息中的生存时间TTL值减少I ;在一段时间周期后,根据邻居网络节 点成功下载资源的次数计算并更新信誉值;[0016]步骤五,计算奖赏;请求消息至邻居网络节点后,计算奖赏,更新前一跳网络节点 的Q值;[0017]步骤六,搜索目标资源;并开始在邻居网络节点搜索资源,直到找到目标资源或者 TTL为O结束。[0018]本发明在搜索初期,网络节点的Q表中部分资源的Q值是空的,网络节点在搜索过 程中不断学习资源信息,计算奖赏值来更新Q表。随着时间增加,网络节点Q表的信息会越 来越多,网络节点按照Q表指导搜索过程,因此,在网络节点转发资源请求的时候,增加了 判决条件,即判断Q表中关于目标资源的Q值是否为空,同时在判断Q表中目标资源的Q值 为空时,利用网络节点的信誉度;每个网络节点的信誉度是根据该网络节点的历史行为和 信息交互的经验作出的综合评价,其具体选择过程为:网络节点接收到某资源请求,它包含 源网络节点ID(Identity)、资源名称以及资源请求消息的生存时间TTL (Time To Live), 若本网络节点有目标资源,则返回源网络节点响应消息,并结束查询请求;若本网络节点无 目标资源,则按以下策略转发资源请求消息:[0019]网络节点首先查看本网络节点Q表,判断Q表中关于目标资源的Q值是否为空,若 不为空,则选择最大的Q值对应的邻居网络节点作为下一跳网络节点转发请求;若关于目 标资源的Q表为空,网络节点查看自身信誉表,择信誉值最大的邻居网络节点,将资源请求 转发出去,在一段时间周期后,根据邻居网络节点成功下载资源的次数计算并更新信誉值。[0020]P2P中每个网络节点维护一个Q表,网络节点根据自身的Q表信息转发资源请求消 息,每转发一次请求消息,将从本搜索动作中获得一个奖赏(reward),请求消息到达下一跳 网络节点时,根据新网络节点的关于该资源的Q值以及奖赏,反馈给上一跳网络节点,更新 上一跳网络节点的Q值。但当网络节点的Q值表部分资源的Q值为空,本发明引入的网络 节点信誉机制,改变了原有的随机转发策略,网络节点维护一个信誉表,由于网络节点信誉 度是根据网络节点的历史行为和信息交互的经验作出的综合评价,信任度越高,说明网络 节点间信息成功交互次数越多,对服务的满意度越大,因此,本发明在Q学习的基础上结合 信任机制,不但能解决网络中恶意网络节点的欺诈行为,同时可以利用网络节点间的信任 关系,选择交互经验多,信任值较高的邻居网络节点转发查询请求,以弥补Q表信息不足的 缺陷,加速Q学习过程,从而减少资源查询时间,提高资源搜索成功率。[0021]本发明分析了现有的P2P系统资源搜索方法的不足,并在此基础上提出改进优化 方案,主要结合了 Q机器学习方法和网络节点信誉机制,在搜索初期,网络节点通过判断Q 表关于资源的Q值是否为空来选择具体的转发策略,本方法通过选择信誉度高的邻居网络 节点转发请求,避免了原有的随机转发策略,本方法在加速Q学习过程,减少资源的查询时 间,提高搜索成功率,以及保障查询服务的安全性方面,具有较好的效果。[0022]本发明是针对传统的基于Q学习中学习速率缓慢以及没有考虑到资源的安全可 靠性这个问题提出的,由于网络节点信誉度是根据网络节点的历史行为和信息交互的经验 作出的综合评价,信任度越高,说明网络节点间信息成功交互次数越多,对服务的满意度越大,因此,本发明在Q学习的基础上结合信任机制,不但能解决网络中恶意网络节点的欺诈 行为,同时可以利用网络节点间的信任关系,选择交互经验多,信任值较高的邻居网络节点 转发查询请求,不但可弥补Q表信息不足的缺陷,加速Q学习过程,从而减少资源查询时间, 提高资源搜索成功率,而且保障了用户在资源共享时可以获得可靠的服务,提高安全性。【专利附图】

【附图说明】[0023]图1是本发明的资源搜索流程图;[0024]图2是网络节点资源的Q值表;[0025]图3是网络节点之间/[目任关系不意图。【具体实施方式】[0026]下面结合附图对本发明作进一步的说明:[0027]参见图1所示:一种基于机器学习及网络节点信誉的非结构化P2P资源搜索方法, 包括如下步骤:[0028]步骤一,设置生存时间;当某一网络节点收到包括源网络节点ID、资源名和生存 时间TTL的资源请求消息时,设置生存时间TTL的初值为10 ;[0029]步骤二,判断网络节点是否存在目标资源;网络节点检查本地是否存在目标资源, 若为Y,即本地存在目标资源,则直接返回源网络节点资源响应消息;若为N,即本地不存在 目标资源,则将资源请求消息作为新消息加入到本网络节点;[0030]步骤三,判断请求消息的生存时间;即判断请求消息的生存时间TTL是否为0,若 为Y,搜索过程结束;若为N,则将请求消息转发至邻居网络节点;[0031]步骤四,判断Q表中关于目标资源的Q值是否为空;网络节点首先查看本网络节点 Q表,若判断为N,即有目标资源的Q值,则选择具有最大Q值的邻居网络节点,并向其转发 请求消息,同时请求消息中的生存时间TTL值减少I ;若判断为Y,即没有目标资源的Q值, 网络节点则查看自身信誉表,选择信誉值最高的网络节点作为邻居网络节点,并向其转发 请求消息,同时请求消息中的生存时间TTL值减少I ;在一段时间周期后,根据邻居网络节 点成功下载资源的次数计算并更新信誉值;[0032]步骤五,计算奖赏;请求消息至邻居网络节点后,计算奖赏,更新前一跳网络节点 的Q值;在计算奖赏值时,本发明用网络节点度数取代了原有的链接长度,由于度数高的网 络节点具有较高的链接数,与其他网络节点之间的信息交互广泛。因此,优先选择度数高的 邻居网络节点,会获得较高的奖赏。[0033]步骤六,搜索目标资源;并开始在邻居网络节点搜索资源,直到找到目标资源或者 TTL为O结束。[0034]上述每个网络节点维护的Q表如附图2所示,假设网络节点有k个邻居,分别为Ii1' , n2/ , n3/.....n/ ,每个邻居网络节点包含的资源名为r2, r3......rm,表中的Q(rm,nk')为第k个邻居nk'关于资源rm的Q值,Q值表示网络节点拥有资源的可能性,Q 值越大表明网络节点拥有资源的可能性越大,在资源搜索请求到达时,网络节点根据本网 络节点的Q表信息转发请求消息,每转发一跳网络节点,将从本搜索动作中获得一个奖赏, 根据新状态的Q值和奖赏,反馈给上一跳网络节点,更新上一跳网络节点的Q值,查询步骤按照相同步骤依次进行。[0035]关于奖赏值Rew更新的问题,其计算公式如下:[0036]Rew = Dn, + β (1adnn, +lengthyn, +Un,η,)[0037]上式中,Dn,为Q学习的一个强化信号,它的取值为O或者100 (当网络节点存在目标资源,Dn,取值100,否则Dn,为O) ;loadn,n,:网络节点与其邻居网络节点的平均负载; lengthy,:表示邻居网络节点链路的长度;Un,n,:为由于网络节点离开或者故障引起的资源的不可利用率。β:为奖赏加权因子,取值为(-1,O)。[0038]由于P2P逻辑拓扑特征,网络节点之间转发消息是在邻居网络节点之间进行的, 因此无需考虑链路的长度,本发明中将此条件改为网络节点的度数,因为度数高的网络节点具有较高的链接数,与其他网络节点之间的信息交互广泛。因此,优先选择度数高的邻居网络节点,会获较高的奖赏,本发明中关于奖赏计算的修正公式如下:[0039]Rew=Dn, +β (1adn,n, +degreen,n, +Un,n,)[0040]在搜索过程中,网络节点的Q值根据下一跳网络节点的状态信息不断更新,下式给出了Q值迭代更新方法:[0041]Qn (r, η' ) =Qn (r, η; ) + α [Rew+Y maxn, Qn, (r, n/ ) -Qn (r, n;)][0042]其中:α为学习因子,取值范围为(0, I), Y为折扣因子,取值范围为(O, I)。[0043]上式表明了 Q值更新的方法,即:新状态的网络节点选择与某资源相关的最大Q 值,乘以折扣因子Y,再减去原Q值后,加上奖赏值Rew,整体与学习因子a相乘,再与原Q 值取代数和。[0044]在基于Q学习的搜索方法中,传统的查询过程是网络节点收到资源请求后,在本网络节点无资源的情况下,需要将请求消息转发邻居网络节点,其策略是查看Q值表,选择具有该资源的Q值最大的一个邻居网络节点转发,当部分资源的Q值为空时,则随机选取一个邻居网络节点转发请求。为改进这种盲目转发策略,本发明引入网络节点信誉机制,信誉集中反映了网络节点之间在历史交互中对服务满意度的综合评价,大量文献将网络节点间的信任关系分为两类:直接信任和推荐信任。[0045]下面结合附图3说明网络节点的信任关系,图中有4个网络节点代表网络中的4 个用户,分别为:A,M,N, B,其网络节点A和网络节点B直接相连,网络节点M和网络节点 N为中间网络节点,在A和B之间有三条路径,分别为:Α — Β,Α — Μ — B,A — N — B,那么 A — B为两网络节点之间的信誉即为直接信任,其计算方法可表示为:[0046]DR = LxYScort.,(B)— η ? '[0047]其中,η为网络节点A与B在一段时间(0,t)内信息交互的次数,ScoreA(B)表示在一次信息交互中A网络节点对B网络节点某种行为的打分值,取值为[-1,I]。[0048]那么推荐信任是指A和B之间没有进行过直接的链接,而是根据其它中间的推荐建立的一种信任关系。如图3中,A — M — B,A — N — B为A,B之间的推荐信任,则A对B 的推荐信任值为:[0049]RRa ⑶=a * (DRa (M) *DRm (B)) + β (DRa (N) *DRN ⑶)[0050]其中DRa(M),DRm⑶,DRa(N),DRn (B)分别为路径AM,MB, AN, NB的直接信任值,a和 β分别为两段分路径的权重,且满足α+β=1。[0051]由上述可知,网络节点A对网络节点B的信誉值R印utation Value (A,B)为直接 信任值与推荐信任值的加权和,计算公式描述为:[0052]Reputation Value (A, B) = λ *DRA(B) + (1-λ ) *RRA(B)[0053]其中,λ为直接信任系数,取值为(0,I)。
【权利要求】
1.一种基于机器学习及网络节点信誉的非结构化P2P资源搜索方法,包括如下步骤: 步骤一,设置生存时间;当某一网络节点收到包括源网络节点ID、资源名和生存时间 TTL的资源请求消息时,设置生存时间TTL的初值为10 ;步骤二,判断网络节点是否存在目标资源;网络节点检查本地是否存在目标资源,若为 Y,即本地存在目标资源,则直接返回源网络节点资源响应消息;若为N,即本地不存在目标 资源,则将资源请求消息作为新消息加入到本网络节点;步骤三,判断请求消息的生存时间;即判断请求消息的生存时间TTL是否为0,若为Y, 搜索过程结束;若为N,则将请求消息转发至邻居网络节点;步骤四,判断Q表中关于目标资源的Q值是否为空;网络节点首先查看本网络节点Q 表,若判断为N,即有目标资源的Q值,则选择具有最大Q值的邻居网络节点,并向其转发请 求消息,同时请求消息中的生存时间TTL值减少I ;若判断为Y,即没有目标资源的Q值,网 络节点则查看自身信誉表,选择信誉值最高的网络节点作为邻居网络节点,并向其转发请 求消息,同时请求消息中的生存时间TTL值减少I ;在一段时间周期后,根据邻居网络节点 成功下载资源的次数计算并更新信誉值;步骤五,计算奖赏;请求消息至邻居网络节点后,计算奖赏,更新前一跳网络节点的Q值;步骤六,搜索目标资源;并开始在邻居网络节点搜索资源,直到找到目标资源或者TTL 为O结束。
【文档编号】G06F17/30GK103501346SQ201310479076
【公开日】2014年1月8日 申请日期:2013年10月14日 优先权日:2013年10月14日
【发明者】刘焕淋, 陈高翔, 秦亮, 周邦陶, 肖维仲, 孙龙钊 申请人:重庆邮电大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1