基于内容发布订阅的组合匹配系统与方法与流程

文档序号:23338559发布日期:2020-12-18 16:31阅读:94来源:国知局
基于内容发布订阅的组合匹配系统与方法与流程

本发明涉及数据分发技术领域,具体地,涉及一种基于内容发布订阅的组合匹配系统与方法。



背景技术:

我们生活的世界每天产生海量数据,迫切需要一种高效的方法实现数据从生产者(发布者)向消费者(订阅者)的快速分发。例如,智能交通系统利用大量设备(例如路边摄像头和智能手机)来收集数据。这些设备以事件(也称为消息)的形式发布数据,事件中包括时间、位置和交通状况等属性,而驾驶员可以根据自己的需求订阅特定路线的交通拥堵和事故消息。另一个典型示例是股票市场数据分发。证券交易所发布实时股票报价,而投资者根据其投资策略订阅相关的股票报价,例如,在某个股票价格低于或高于阈值时买入或售出该股票。

发布/订阅系统已被广泛用作松散耦合的通信范例,用于实现快速的数据分发。在这种范例中,发布者将由多个属性值对组成的事件发送到发布/订阅中间件。中间件由多个服务器(也称为代理)组成,负责将事件转发给所有对事件感兴趣的订阅者。在基于内容的发布/订阅系统,订阅者可以通过在事件的属性上定义谓词来表达细粒度的基于内容的订阅条件。当发布/订阅中间件中某个服务器接收到事件时,将事件与订阅集合进行匹配,并根据匹配结果将事件发送给相应的订阅者。当订阅数量很大且事件产生频率很高时,事件匹配是基于内容的发布/订阅系统的潜在性能瓶颈。

为了提高匹配性能,研究人员提出了很多高效的匹配算法。这些算法利用不同的数据结构(例如树,表和布隆过滤器)来索引订阅,以提高事件的匹配速度。但是,大多数匹配算法的性能受订阅匹配概率影响。具体来说,给定一个订阅集合,事件的匹配时间会随与事件相匹配的订阅数量的不同而产生较大变化。其中,有些算法的匹配时间与匹配订阅的数量之间满足对数关系,而另一些算法的匹配时间和匹配订阅数量之间呈线性关系。

因此,即使当前存在一些高效的匹配算法,在基于内容的发布/订阅系统中实现快速和稳定的数据分发仍然具有一定的挑战。存在性能波动的匹配算法的一个显著缺点是,对于不同的事件,如果它们的匹配订阅数量不同,则它们的匹配时间波动较大,从而无法保证稳定的事件传输时延。由于事件匹配是数据分发中间件实现事件转发需要执行的关键操作,因此其性能对于确保快速稳定的事件分发服务至关重要。

专利文献cn101848236a(申请号:201010163628.5)公开了一种具有分布式网络架构的实时数据分发系统及其工作方法,该系统在因特网和移动网中采用发布/订阅通信机制传递信息,系统包括:完成主题存储及主题匹配等操作的服务器子系统,完成从终端接收主题、向订阅者转发匹配事件、提交发布/订阅主题等操作的代理子系统,完成用户发布/订阅信息的终端子系统,以及存储发布/订阅消息及系统信息的分布式数据库。



技术实现要素:

针对现有技术中的缺陷,本发明的目的是提供一种基于内容发布订阅的组合匹配系统与方法。

根据本发明提供的基于内容发布订阅的组合匹配系统,包括:

训练器:将历史匹配记录作为训练集训练预测模型并保存到决策器中;

决策器:根据训练后的预测模型,预测每个事件采用不同匹配算法的匹配时间,并选择匹配时间最小的算法执行事件匹配;

算法库:由多个行为互补的匹配算法组成;

在订阅插入时,向算法库中所有算法维护的对应数据结构中插入该订阅,在事件匹配时,决策器接受事件输入并调用训练器的预测模型,根据预测结果选择最优匹配算法,匹配结束后将事件与实际匹配时间作为一组训练数据加入训练器的训练集中。

优选的,算法库中的算法支持相同的订阅数据模型,具有接近的整体匹配性能,匹配订阅数量不同的事件具有不同的匹配性能。

优选的,训练器为算法库中每个匹配算法训练一个预测模型,训练器支持在线增量学习。

优选的,使用可变的时间窗口控制更新预测模型的时机,使决策器动态适应热点的切换,同时在热点没有变化时节约资源。

优选的,在每次事件匹配完成后,将实际匹配时间反馈给决策器,决策器将该实际匹配时间与预测的时间进行比对并统计偏差,用来评估预测模型的实时精度;

若预测精度大于预设阈值,则放宽时间窗口;若预测精度小于或等于阈值,则缩小时间窗口以增加预测模型更新的频率。

优选的,决策器负责估计算法库中算法的匹配时间,并选择时间成本最小的算法执行事件匹配,当训练器没有足够的历史匹配记录作为训练集来训练预测模型时,决策器随机选择一种算法执行事件匹配。

优选的,当训练器更新预测模型时,决策器在更新前保留一份预测模型的拷贝或使用更轻量级的次要预测模型作为替代。

优选的,以神经网络为主要预测模型,订阅分布统计为次要模型。

根据本发明提供的基于内容发布订阅的组合匹配方法,包括:

步骤1:将历史匹配记录作为训练集训练预测模型并保存;

步骤2:根据训练后的预测模型,预测每个事件采用不同匹配算法的匹配时间,并选择匹配时间最小的算法执行事件匹配;

步骤3:在订阅插入时,向所有算法维护的对应数据结构中插入该订阅,在事件匹配时,接受事件输入并调用预测模型,根据预测结果选择最优匹配算法,匹配结束后将事件与实际匹配时间作为一组训练数据加入训练集中。

优选的,算法支持相同的订阅数据模型,具有接近的整体匹配性能,匹配订阅数量不同的事件具有不同的匹配性能;

使用可变的时间窗口控制更新预测模型的时机,在每次事件匹配完成后,将实际匹配时间与预测的时间进行比对并统计偏差,用来评估预测模型的实时精度;

若预测精度大于预设阈值,则放宽时间窗口;若预测精度小于或等于阈值,则缩小时间窗口以增加预测模型更新的频率;

当没有足够的历史匹配记录作为训练集来训练预测模型时,随机选择一种算法执行事件匹配;

更新预测模型时,在更新前保留一份预测模型的拷贝或使用更轻量级的次要预测模型作为替代;以神经网络为主要预测模型,订阅分布统计为次要模型。

与现有技术相比,本发明具有如下的有益效果:

1、本发明组合匹配方法不仅稳定了匹配性能,还显著提高了匹配速度;

2、本发明为降低模型训练带来的成本,本发明提出了基于反馈的自适应更新机制,在保证预测精度的前提下,有效降低了模型更新的成本;

3、本发明使用神经网络作为预测模型,整个决策过程时间开销较低,有效地平衡了成本和收益。

附图说明

通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:

图1为本发明的逻辑框架图;

图2为本发明实现框架图。

具体实施方式

下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。

实施例:

根据本发明提供的基于内容发布订阅的组合匹配系统,包括:

1、框架结构

如图1所示,本发明提出的组合匹配框架comat主要分为3个部分:算法库、训练器和决策器。其中训练器基于历史匹配记录训练算法的性能预测模型;决策器包含训练好的预测模型,对于每个事件预测其采用不同匹配算法的匹配时间成本,并选择匹配时间最小的算法执行事件匹配;算法库由多个行为互补的匹配算法组成。在订阅插入时,向算法库中所有算法维护的对应数据结构中插入该订阅;在事件匹配时,决策器接受事件输入并调用训练器的预测模型,根据预测结果判断最优的匹配算法,匹配结束后将事件与实际匹配时间作为一组训练数据加入训练器的数据集中。

2、模块过程

(1)算法库

对于算法库的构建,本发明基于三个准则来选取算法。首先,由于匹配算法的底层数据结构是基于订阅的不同数据模型构建的,因此库中的算法应该支持相同的订阅数据模型。其次,为了获得良好的组合匹配效果,库中的算法应该具有接近的整体匹配性能,避免出现某个算法一边倒的情况。最后,库中的算法对于匹配订阅数量不同的事件应该有不同的匹配性能,以达到性能互补的作用。

(2)训练器

训练器负责为库中的每个匹配算法训练一个预测模型,它的要求主要体现在三个方面。首先,为了获得较好的整体效果,训练器训练的模型必须具有较高的预测精度。其次,由于事件和订阅存在热点切换,训练器应支持在线增量学习。最后,选取的模型本身应该是轻量级的以保证性价比。

针对模型更新问题,本发明设计了一种基于反馈的自适应更新机制。使用可变的时间窗口来控制更新模型的时机,从而使决策器能动态适应热点的切换,同时在热点没有变化时节约资源。在每次事件匹配完成后,真实匹配时间会反馈给决策器。然后决策器会将该时间与预测的时间进行比对并统计偏差情况。这些反馈数据会被周期性地收集,用来评估预测模型的实时精度。如果预测精度高于个某个阈值,则适当放宽时间窗口。如果精度低于阈值,则会缩小时间窗口以增加模型更新的频率。

(3)决策器

对于每个事件,决策器负责估计库中算法的匹配时间,并选择时间成本最小的算法执行事件匹配。决策器的设计有三点需要考虑。首先,该框架存在冷启动的问题,当训练器没有足够的历史匹配记录作为训练集来训练预测模型时,决策器可以随机选择一种算法。其次,由于大多数算法的匹配性能都是毫秒级的,决策器的开销应该足够小,以避免影响整体匹配性能。最后,当训练器更新预测模型时,多线程之间可能存在竞争问题从而导致调用该模型进行预测的精度和效率都不稳定。解决这一问题的方法有两种:1)决策器可以在更新前保留一份模型的拷贝,然而内存中的深拷贝可能花费较多时间;2)可以使用一些更轻量级的次要模型作为替代,不过这可能会降低预测精度。不管采用哪种方法,在最坏的情况下,决策器可能会回退到像在冷启动阶段一样的随机选择。在实际应用中,本发明选择了后一种方法,以神经网络为主要预测模型,订阅分布统计为次要模型。次要模型应满足两个条件:轻量化(训练和预测的成本很低)和较高的预测精度。

3、系统实现

本发明基于两种现有算法rein和tama以及tensorflow实现组合匹配框架comat。

根据确立的算法库选取原则,本发明选择了两个算法:rein和tama,来实现组合匹配框架。这两种算法具有相似的整体性能,并且根据不同的订阅匹配概率表现出不同的性能。tama在匹配时使用计数器来记录每个订阅的谓词满足次数,而rein使用一个位集合来标记所有不匹配的订阅。如果一个订阅的一个谓词与事件符合,则在tama中该订阅对应的计数器将加一。相反,如果一个订阅的一个谓词与事件不符合,则rein位集合中该订阅对应的位将被标记为不匹配。总之,给定一个事件,如果有更多的谓词符合事件,rein的性能会提升而tama会下降,反之亦然。

匹配算法的性能受很多参数影响,其中主要的是订阅的匹配概率,即订阅与事件匹配的概率。不同算法受订阅匹配概率的影响不同,例如,tama算法和opindex算法的性能随着订阅匹配概率的增加而成对数增长,而rein算法则成对数减少。这里的tama算法和rein算法整体匹配性能相似,但受订阅匹配概率的影响不同,因此,称它们是行为互补的。

对于预测模型的选取,本发明考察了3种方法:线性回归模型、神经网络和为rein和tama定制的订阅分布统计。线性回归模型和神经网络可以用于学习事件与匹配时间的关联,从而适用于任何算法库的预测。当一次事件匹配完成后,将事件及其实际匹配时间作为一组训练数据添加到训练器的训练集中。在训练和预测过程中,模型的输入为事件在各属性上的值,维度数即为属性域的大小,输出为相应的匹配时间。

订阅分布统计是一种考虑到rein和tama特性而量身定制的预测方法。由于匹配谓词的个数会影响匹配性能,因此本发明采用密度分布统计方法对其进行估计。具体来说,为每个属性维护一个统计数组。每个属性的值域被划分为细粒度的单元,每个单元中有一个计数器记录覆盖该单元的谓词的数量。当在数据结构中插入新的订阅时,谓词所定义的约束范围内的单元的所有计数器都会加1。当预测一个新到达的事件时,它的值被映射到每个属性的一个单元格中,通过对所有属性上这些映射单元格内计数器的累加和来估计匹配谓词的比例。在训练过程中,输入为事件在各属性上的值,通过这些值估算出匹配谓词的比例,然后将该比例作为线性拟合的输入,匹配时间为线性拟合的输出。这样对于tama将拟合出一条单调增长的直线,而对于rein则拟合出一条单调递减的直线,这两条直线的交点即为选取这两种算法的决策边界。

基于实验效果,本发明决定选择神经网络作为主要预测模型,订阅分布统计作为次要预测模型,来构建基于tama和rein的comat框架,该框架结构如图2所示。

在现实中,事件和订阅通常围绕多个热点生成,并且这些热点可能会随着时间的推移而不断变化。为了应对这一动态变化,预测模型应该定期地进行更新以适应新出现的热点。在实现中,本发明维护了一个环形数组用于存放训练数据,并且对于每个数组维护一个指针,用于指示数组的当前插入位置。添加新的训练样本时,会插入到该指针的位置,并且指针向前移动。如果指针到达数组的末尾则重新回到开始处,以保证数据的时效性。

更新时间窗口由决策器调整,它会周期性地监视匹配模块给出的反馈数据。对于一次事件匹配的反馈,如果发现实际匹配时间比起模型预测给出的最短时间来说,更接近第二短的时间的话,则认为这是一次预测错误。如果预测错误的计数大于监控周期的一半,则模型会被认为已过时,更新时间窗口的大小将减少一半。否则,更新时间窗口增加10%。监控周期的设置会影响更新时间窗口的调整频率。较小的监控周期意味着更快地检测和响应热点的变化,但监控周期过短会导致系统不稳定。

本发明提出了一个有效的组合匹配框架comat,以解决匹配算法的性能波动问题。comat的基本思想是利用多个行为互补的匹配算法来提高匹配性能,并且可以稳定匹配性能。设计comat时,需要注意三点。首先,需要建立准则来选择算法以形成算法库。其次,需要一种决策机制来确定每个事件的最佳匹配算法。第三,应尽量减少决策所带来的开销,以平衡成本和收益。本发明确立了三条准则来选择候选匹配算法。此外,本发明为算法库的每个算法训练一个轻量级的预测模型,以预测事件执行不同算法的匹配时间。

本发明基于两个现有的匹配算法rein和tama以及tensorflow实现了一个comat原型系统。首先,选择rein和tama两个算法来形成算法库。其次,使用神经网络训练两个算法的性能预测模型。第三,由于事件中的热点切换,本发明提出自适应反馈机制来降低预测模型的更新成本。

针对基于内容的发布/订阅系统中匹配算法性能波动问题,发明了一种组合匹配框架,通过利用多个行为互补的匹配算法,不仅可以稳定匹配算法的性能,还可以显著提升匹配速度。

由于大多数匹配算法的性能都受订阅匹配概率的影响,本发明利用多个现有的、性能在不同场景下互补的算法来提高匹配效率和稳定性。对于每个算法训练一个模型来预测匹配时间。在处理事件时,利用经过训练的模型估计所有算法在该事件上所花费的匹配时间,并选择时间成本最小的算法来执行事件匹配,从而在缩短平均匹配时间的同时提升匹配稳定性。

优选的,在股票数据分发应用场景下,订阅者对数据分发时延有着严格的要求,而现有匹配算法的性能是受订阅匹配概率影响的,匹配性能波动较大。因此,为了提供稳定的股票数据分发服务,本发明提出了基于多个行为互补的匹配算法实现组合匹配,不仅有利于稳定匹配性能,还能提高匹配速度。

本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统、装置及其各个模块以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统、装置及其各个模块以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同程序。所以,本发明提供的系统、装置及其各个模块可以被认为是一种硬件部件,而对其内包括的用于实现各种程序的模块也可以视为硬件部件内的结构;也可以将用于实现各种功能的模块视为既可以是实现方法的软件程序又可以是硬件部件内的结构。

以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。

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