CN115516446A - 用于爬取高度动态内容的对抗邦迪策略 - Google Patents
用于爬取高度动态内容的对抗邦迪策略 Download PDFInfo
- Publication number
- CN115516446A CN115516446A CN202080099441.5A CN202080099441A CN115516446A CN 115516446 A CN115516446 A CN 115516446A CN 202080099441 A CN202080099441 A CN 202080099441A CN 115516446 A CN115516446 A CN 115516446A
- Authority
- CN
- China
- Prior art keywords
- refresh
- entities
- strategy
- entity
- value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 230000009193 crawling Effects 0.000 title description 13
- 244000239634 longleaf box Species 0.000 title description 8
- 230000003042 antagnostic effect Effects 0.000 title description 3
- 238000000034 method Methods 0.000 claims abstract description 64
- 230000008859 change Effects 0.000 claims abstract description 50
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 18
- 230000015654 memory Effects 0.000 claims description 56
- 238000003860 storage Methods 0.000 claims description 26
- 238000009826 distribution Methods 0.000 claims description 21
- 238000004590 computer program Methods 0.000 claims description 14
- 238000012545 processing Methods 0.000 claims description 13
- 230000006870 function Effects 0.000 claims description 10
- 238000012549 training Methods 0.000 claims description 8
- 238000005457 optimization Methods 0.000 claims description 7
- 238000005070 sampling Methods 0.000 claims description 4
- 238000003062 neural network model Methods 0.000 claims 6
- 238000013459 approach Methods 0.000 abstract description 13
- 230000002787 reinforcement Effects 0.000 abstract description 6
- 238000010801 machine learning Methods 0.000 abstract description 3
- 230000008569 process Effects 0.000 description 11
- 238000004891 communication Methods 0.000 description 9
- 230000003287 optical effect Effects 0.000 description 7
- 238000012360 testing method Methods 0.000 description 7
- 238000013528 artificial neural network Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 238000007796 conventional method Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 238000010200 validation analysis Methods 0.000 description 3
- 238000012795 verification Methods 0.000 description 3
- 238000013135 deep learning Methods 0.000 description 2
- 238000003306 harvesting Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000012552 review Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 101150093545 EXPA3 gene Proteins 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000004931 aggregating effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000009194 climbing Effects 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 101150109310 msrAB1 gene Proteins 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 230000003442 weekly effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/951—Indexing; Web crawling techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
- G06Q30/0201—Market modelling; Market analysis; Collecting market data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
- G06Q30/0207—Discounts or incentives, e.g. coupons or rebates
- G06Q30/0239—Online discounts or incentives
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
- G06Q30/0282—Rating or review of business operators or products
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/06—Buying, selling or leasing transactions
- G06Q30/0601—Electronic shopping [e-shopping]
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Development Economics (AREA)
- Strategic Management (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Marketing (AREA)
- Economics (AREA)
- General Business, Economics & Management (AREA)
- Databases & Information Systems (AREA)
- Entrepreneurship & Innovation (AREA)
- General Engineering & Computer Science (AREA)
- Game Theory and Decision Science (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
为商业报价页面生成重新爬取策略的技术,包括使用多种不同战略生成多策略方法。在一些实施方式中,每个策略是具有强化学习的K臂对抗邦迪算法的臂。而且,在一些实施方式中,多战略方法还使用机器学习算法来估计参数,诸如点击速率、曝光速率和价格改变的可能性,即,改变速率,这在传统方法中是假设为已知的。
Description
技术领域
本描述涉及为高度动态的内容(诸如网页页面)生成网页重新爬取(recrawling)策略。
背景技术
网页爬虫(crawler)包括被配置为系统地浏览互联网的互联网自动运行型木马(internet bots)。网页爬虫以要访问的URL的初始或种子列表开始。从那里,网页爬虫识别每个URL链接的网页页面,并将识别的网页页面存储在储存库中。为了识别相关网页页面,网页爬虫访问网页页面。但是一些网页页面随时间改变。为了确保内容是新鲜的,例如准确地反映改变,网页爬虫需要定期性地重新爬取或重新访问网页。
发明内容
实施方式提供了刷新战略(strategy),刷新战略被配置为向用户递送准确的信息,同时最小化对计算机资源的使用。例如,诸如报价页面的网页页面内容在浏览器内以价格向用户呈现产品。在互联网上呈现报价的动态属性意味着从报价页面获得的数据的储存库可能需要频繁更新。这样的更新是使用网页爬虫发生的,更具体地说,是通过网页爬虫对URL储存库的重新爬取操作发生的。每个重新爬取操作使用一定量的网络资源,因此期望在有限的网络资源量内工作的重新爬取战略。虽然已经使用了针对给定数量的报价的单独重新爬取战略,但是这些战略的功效并不总是最优的。相比之下,公开的技术使用多个重新爬取战略的组合来优化网络资源约束内的事实新鲜度。公开的实施方式使用K臂(K-armed)对抗邦迪(bandit)算法来确定用于在任何给定时刻选择重新爬取战略的策略(policy),其中每个臂是不同的重新爬取战略。K臂对抗邦迪确定指派给每个重新爬取战略的重要性权重的分布。此外,每个重新爬取战略对应于相应的重新爬取速率,重新爬取速率从诸如点击速率(click rate)、曝光速率(impression rate)和改变速率的参数值来确定。传统的重新爬取战略假设这些参数的特定静态值,尽管这样的参数值实际上不是静态的。相反,公开的实施方式包括在深度学习算法中独自或组合使用历史数据和元数据两者来估计这些参数值的过程。使用这种K臂对抗邦迪过程以及深度学习参数值估计,以最少的计算资源取得改进的事实新鲜度结果。
在一个一般方面,方法可以包括从储存库接收表示多个实体的实体数据,多个实体中的每个具有相应的量的值,该量的值在先前的时间处是准确的。该方法还可以包括,针对多个实体中的每个,为多个参数中的每个生成当前的时间处的相应值,该参数包括该实体的量的值的改变的可能性和来自储存库的该实体的访问速率中的至少一个。该方法还可以包括根据刷新策略从多个刷新战略中选择用于更新多个实体中的每个的量的值的刷新战略。该方法还可以包括根据选择的刷新战略为多个实体中的每个生成相应刷新速率,多个实体中的实体的刷新速率是基于在先于当前时间的时间序列处的多个参数的值的。该方法还可以包括基于多个实体的相应刷新速率对储存库执行刷新操作,该刷新操作被配置为获得当前时间处实体的量的值。该方法还可以包括基于多个实体中的每个的先前时间处的量的值和当前时间处的量的值之间的差异来更新刷新策略。
在另一个一般方面,计算机程序产品包括非暂时性存储介质,该计算机程序产品包括代码,当由计算设备的处理电路执行时,该代码使得处理电路执行一种方法。该方法可以包括从储存库接收表示多个实体的实体数据,多个实体中的每个具有相应的量的值,该量的值在先前的时间处是准确的。该方法还可以包括,针对多个实体中的每个,为多个参数中的每个生成当前的时间处的相应值,该参数包括该实体的量的值的改变的可能性和来自储存库的该实体的访问速率中的至少一个。该方法还可以包括根据刷新策略从多个刷新战略中选择用于更新多个实体中的每个的量的值的刷新战略。该方法还可以包括根据选择的刷新战略为多个实体中的每个生成相应刷新速率,多个实体中的实体的刷新速率是基于在先于当前时间的时间序列处的多个参数的值的。该方法还可以包括基于多个实体的相应刷新速率对储存库执行刷新操作,该刷新操作被配置为获得当前时间处的实体的量的值。该方法还可以包括基于多个实体中的每个的先前时间处的量的值和当前时间处的量的值之间的差异来更新刷新策略。
在另一个一般方面,被配置为生成刷新策略的、包括存储器和耦合到存储器的控制电路的电子装置。控制电路可以被配置为从储存库接收表示多个实体的实体数据,多个实体中的每个具有相应的量的值,该量的值在先前的时间处是准确的。控制电路还可以被配置为,针对多个实体中的每个,为多个参数中的每个生成当前的时间处的相应值,该参数包括该实体的量的值的改变的可能性和来自储存库的该实体的访问速率中的至少一个。控制电路还可以被配置为根据刷新策略从多个刷新战略中选择用于更新多个实体中的每个的量的值的刷新战略。控制电路还可以被配置为根据选择的刷新战略为多个实体中的每个生成相应刷新速率,多个实体中的实体的刷新速率是基于在先于当前时间的时间序列处的多个参数的值的。控制电路还可以被配置为基于多个实体的相应刷新速率对储存库执行刷新操作,该刷新操作被配置为获得当前时间处的实体的量的值。控制电路还可以被配置为基于多个实体中的每个的先前时间处的量的值和当前时间处的量的值之间的差异来更新刷新策略。
在附图和下面的描述中阐述了一个或多个实施方式的细节。从描述和附图以及权利要求,其他特征将是清晰的。
附图说明
图1A和图1B是例示了可以实现本文描述的改进技术的示例电子环境的示图。
图2是例示了根据公开的实施方式的确定网络重新爬取策略的示例方法的流程图。
图3是根据公开的实施方式的生成网页重新爬取策略的示例方法的示图。
图4是根据公开的实施方式的用于每日预测的示例数据集生成过程的示图。
图5例示了可以用于实现所描述的技术的计算机设备和移动计算机设备的示例。
图6例示了可以用于实现所描述的技术的分布式计算机设备的示例。
具体实施方式
网页爬虫向搜索系统提供网页页面的内容,例如用于索引和检索。因为网页爬虫能够使用大量的网络资源,所以网页爬虫通常采用一个或多个战略来确定要访问什么网页页面。一些示例调度策略包括广度优先、反向链接计数和页面排序计算。
因为一些网页页面是动态的并且持续改变,所以一些网页爬虫对网站执行重新爬取,以确保那些网站在搜索系统中的内容是新鲜的。也就是说,当从搜索系统递送给用户的网页浏览器的网页页面的内容与存储在托管该网页页面的服务器上的该网页页面的内容完全相同时,内容是新鲜的。生成用于重新爬取网站的策略的传统方法包括以统一的速率重新爬取网站,即,以相等的概率重新爬取每个页面。
生成用于重新爬取网站的策略的技术问题是,当对高度动态的内容执行重新爬取时,上述传统方法表现不佳。当域包括频繁改变(例如,添加/删除)的网页页面和/或具有页面上的事实信息频繁改变的网页页面时,域可以具有高度动态的内容。这样的高度动态内容的示例包括商业网页内容、新闻报道、天气预报、电影评论等。商业的域可以包括具有量数据的网页内容,诸如对用户以一价格购买产品的报价。这样的内容也可以被称为报价页面。但是并不是域的所有内容都以相同的速率改变。例如,在一些情况下,域中第一网页页面上的第一报价的价格随时间快速变化,而域中第二网页页面上的第二报价的价格变化缓慢。此外,第一网页的改变速率可能不是恒定的,例如,价格在接近假日或一些其他事件时改变更快速,而在假日或事件之后改变较慢。网页爬虫的目标是优化存储在搜索系统的储存库中的事实内容(例如,包括价格信息的量信息)与存储在域处的内容的同步。如果存储在搜索系统中的内容与存储在域处的内容不匹配,则该内容被称为陈旧的。
以统一的速率刷新动态事实内容(诸如报价页面)并不能最优地使用网络资源。为了确保内容是新鲜的,网页爬虫将频繁地爬取,但是如果内容尚未改变,频繁的爬取请求会消耗不必要的网络资源,并且还可能压垮(overwhelm)域。不那么经常爬取确保域不被压垮并节省网络资源,但导致了更多陈旧内容。因此,重新爬取调度通常是网络资源(爬取的频率)和陈旧性之间的平衡。一种传统的重新爬取调度战略包括基于改变速率选择网页页面的页面选择启发法。称为LambdaCrawl的另一种传统战略在资源约束下寻求最优的重新爬取速率。
一些网页爬虫专注于单一战略。然而,这样的单一战略爬虫通常爬取一个特定类型的网页页面,因此可能无法有效地爬取其他页面类型。
根据本文描述的实施方式,对上述技术问题的技术解决方案包括使用多个不同的重新爬取战略生成自适应多战略方法。在一些实施方式中,每个战略是具有强化学习的K臂对抗邦迪算法的臂。在一些实施方式中,多战略方法可以使用机器学习来估计参数,例如点击速率、曝光速率和价格改变的可能性,即改变速率。这些参数在传统方法中被假设为已知的。这样的传统方法的问题是,例如,事先知道改变速率在实践中通常是不可用的。为了获得这样的信息,传统方法开发了各种估计方法。一简单的方法涉及从过去的历史估计改变速率。然而,这样的方法遭受冷启动问题,并且受制于反馈回路。这些缺点激发其他方法在预测改变速率时结合普遍可用或相对静态的预测特征,例如页面内容。相比之下,公开的实施方式可以包括不仅使用历史数据而且使用元数据二者(分开地或组合地)来估计改变速率、点击速率和曝光速率。
公开的实施方式的技术优势是,这样的多战略方法实现了比任何单一策略更高的新鲜度,并且在严格的资源约束(例如,计算机处理周期、网络带宽等)下是稳健的。此外,参数估计实质地影响重新爬取战略的有效性。因此,公开的实施方式使用考虑了过去历史和元数据信息两者的预测模型。公开的预测模型改进了基于历史的模型。公开的实施方式使用的K臂对抗邦迪方法在具有可证明的新鲜度保证的统一策略下组合了多个重新爬取策略。公开的实施方式胜过包括诸如LambdaCrawl(其取决于内容改变速率的恒定性)的资源优化战略的单个战略,即使在这样的资源优化战略没有被包括作为候选战略。
通常,上述技术方案可以被配置为更新刷新策略,其中重新爬取策略是特例。因此,技术解决方案不限制于重新爬取操作。然而,除非明确声明,否则本文的实施方式针对更新重新爬取策略。
图1A和图1B是例示了可以实现上述技术解决方案的示例电子环境100的示图。计算机120被配置为生成并执行用于重新爬取网站的策略。换句话说,计算机120可以被称为生产爬虫。
计算机120包括网络接口122、一个或多个处理单元124和存储器126。网络接口122包括例如以太网适配器、令牌环适配器等,以用于将从网络150接收的电子和/或光学信号转换成电子形式以供计算机120使用。该组处理单元124包括一个或多个处理芯片和/或组件(assembly)。存储器126包括易失性存储器(例如,RAM)和诸如一个或多个ROM、磁盘驱动器、固态驱动器等的非易失性存储器两者。该组处理单元124和存储器126一起形成控制电路,该控制电路被配置和布置为执行本文描述的各种方法和功能。
在一些实施方式中,计算机120的一个或多个部件(component)可以是或者可以包括被配置为处理存储在存储器126中的指令的处理器(例如,处理单元124)。如图1描绘的这样的指令的示例包括实体管理器130、预测管理器140、重新爬取管理器150和重新爬取策略管理器160。此外,如图1A所示,存储器126被配置为存储各种数据,各种数据是相对于使用这样的数据的相应管理器来描述的。注意,在一些实施方式中,实体页面对应于包括销售产品的报价的报价页面。
图1B例示了可以执行改进的技术的示例电子环境100。电子环境100包括爬取日志的储存库102、实体页面信号的储存库104、互联网106(或者可替代地,万维网页)、内容储存库108和图1A的计算机120。
爬取日志的储存库102被配置为存储爬取历史数据。在一些实施方式中,爬取历史数据由预测管理器140使用,更具体地,由被配置为训练模型的训练管理器142使用,以估计用于爬取速率计算的参数。
实体页面信号的储存库104被配置为存储与被包括在实体页面中的内容相关的元数据。存储在实体页面信号104中的示例元数据包括品牌标识符、商家标识符、国家代码等。关于元数据的进一步细节相对于表3描述。在一些实施方式中,预测管理器140还使用元数据来训练用于估计爬取速率计算的参数的模型。
内容数据的储存库108被配置为存储从实体网页页面提取的内容以及指向实体网页页面的URL。内容数据108可以包括实体的事实数据。事实数据可以包括例如待售的报价产品的价格或可用性,或者产品等级。事实数据也可以被称为量。应当理解,每个量(例如,事实)具有值。因此,例如,价格被理解为具有表示价格的值,而可用性具有表示可用性的值。因此,如本文所用的,视情况而定,量可以指标签(例如,价格、可用性)或标签的值。事实数据的新鲜度由存储在内容数据的储存库108中的量的值(例如,报价的价格)和在域(未示出)上找到的量的值(例如,经由互联网106获得)之间的一致来指示。如果存储在实体的内容数据108中的值与域上的实体的相同量的值匹配,则存储在实体的内容数据108中的值被认为是新鲜的。否则,存储在实体的内容数据108中的值是陈旧的。
实施方式不限于图1B例示的确切配置。例如,爬取日志102、实体页面信号104和/或内容数据108中的任何可以被包括作为计算机120的一部分,例如存储在存储器126中。作为另一个示例,爬取日志102、实体页面信号104和/或内容数据108中的任何可以远离计算机120,但是可被计算机120访问。在一些实施方式中,爬取日志102、实体页面信号104、内容数据108和计算机120中的一个或多个可以是分布式计算系统的部分。
回到图1A,实体管理器130被配置为接收表示实体132(1)、132(2)、……、132(N)的实体数据132。在一些实施方式中,实体管理器130通过网络接口122,即通过网络(诸如互联网106)从远程计算机(未绘画)接收实体数据132。在一些实施方式中,实体管理器130从本地存储装置(例如,磁盘驱动器、闪存驱动器、SSD等)接收实体数据132。
例如,在一些实施方式中,由实体数据132表示的实体(例如,报价)132(1)、132(2)、……、132(N)各自报价以便购买产品。这样的报价可以在浏览器的搜索工具内找到,例如谷歌购物。这样的实体也可以被称为产品报价或仅报价。实体的其他示例包括事件页面(例如,倾向改变的事件的时间或位置)或用户生成的事件评论。实体132(1)、132(2)、……、132(N)中的每个(例如,实体132(1))包括表示先前时间处的量的相应量数据133(1)。先前时间处的每个量(例如,价格)可能需要经由来自内容数据108的URL使用来自互联网106的最新信息来更新。针对每个实体(例如,实体132(1)),实体数据132还包括参数值:由点击速率数据134(1)表示的点击速率μ、由曝光速率数据135(1)表示的曝光速率v、以及由量(例如,价格)改变可能性数据136(1)表示的价格改变的可能性Δ。点击速率μ表示每个时间间隔的用户从搜索结果中选择实体的次数。曝光速率v指示每个时间间隔的实体在搜索结果中显示的次数。
为了便于讨论图1A,图1A的剩余讨论将使用实体数据132表示报价数据(即销售产品的报价),并且量数据表示报价的价格的示例。因此,实体132(1)、……、132(N)被称为报价,量数据133被称为价格数据。然而,实施方式不限于报价和价格数据。
预测管理器140被配置为基于元数据144和历史数据146生成点击速率、曝光速率和改变速率的值的预测。具体来说,价格改变预测被建模为分类任务,其目标是预测报价的价格是否会在下一天改变。类似地,对于点击速率和曝光速率预测,预报包括确定报价是否将在下一天被点击或曝光。在计算爬取速率时,预测输出将直接用作μ、v和Δ。在一些实施方式中,预测范围(horizon)被设置为每日粒度,因为点击和曝光统计是在每日的基础上聚合的。然而,实施方式可以使用其他预测范围,例如每小时、每周、每隔一天等。
重新爬取管理器150被配置为执行重新爬取操作来重新爬取网页页面的URL的储存库。网页页面可以具有报价132(1)、132(2)、……、132(N)的量(例如,定价)信息。重新爬取操作由重新爬取管理器150根据多个重新爬取战略中的一个来执行。每个召回战略由重新爬取战略数据152表示。
重新爬取战略数据152包括定义多个重新爬取战略的数据项目。例如,重新爬取战略数据152可以包括表示对应于每个重新爬取战略的标识符的重新爬取战略标识符数据153。例如,本文考虑的重新爬取战略包括统一战略、改变加权战略、点击加权战略、曝光加权战略和资源优化战略。这些战略并不详尽,并且可以使用其他重新爬取战略。重新爬取战略数据152可以包括重新爬取约束数据154。重新爬取约束数据154表示对网络资源的约束,该约束限制了可以执行的每个时间步长的重新爬取的数量。在一些实施方式中,该约束可以根据跨所有重新爬取战略的聚合重新爬取速率(即每个时间步长的重新爬取事件的总数)来表示。重新爬取战略数据152可以包括重新爬取速率数据155,重新爬取速率数据155表示每个时间步长执行的重新爬取事件的数量。时间步长取决于爬虫。在一些示例中,时间步长可以是一小时。另外,重新爬取战略数据152可以包括作为根据重新爬取战略的重新爬取的结果而获得的每个报价132(1)、……、132(N)的更新的量(例如,价格)数据156。
重新爬取策略管理器160被配置为生成由重新爬取策略数据162表示的重新爬取策略。重新爬取策略是在多个重新爬取战略上的权重分布,每个权重指示战略的重要性级别,以及相应地,该战略在重新爬取操作中有多经常使用。在一些实施方式中,重新爬取策略管理器160使用强化学习来生成重新爬取策略数据162。强化学习是机器学习的类型,它确定要采取的动作以最大化奖励。实施方式可以对导致实体的更新的量的重新爬取(例如,提取待售的报价产品的价格改变的重新爬取)使用奖励。对于没有导致更新的量的重新爬取(例如提取已经存储在产品储存库中的相同的量的重新爬取)可以不给予奖励。
重新爬取策略数据162表示重新爬取策略,并且可以包括策略权重数据163。战略权重数据163最终包括重新爬取战略上的权重分布。每个重新爬取战略在策略权重数据163中具有其自身的权重分布。战略k的权重可以被标示为wk。每个权重对应于在下一个时刻处将选择特定重新爬取战略的可能性。因此,权重可以分布在时间序列上。时间序列中时间步长t处的战略k的重要性权重可以标示为
重新爬取策略数据162可以包括策略概率数据164。策略概率数据164是在K臂对抗邦迪算法中使用的中间量,在每个时间步处从该中间量导出对策略权重数据的调整。例如,策略概率数据164包括探索概率,并表示根据当前权重和探索概率将选择重新爬取战略的概率。探索概率本身指示对抗邦迪的“臂(arm)”或选择的重新爬取战略不是单独地根据由策略权重数据163表示的历史策略,而是均匀加权的策略,来选择的可能性。换句话说,探索概率阻止系统仅基于历史数据来选择下一次重新爬取战略,这使得系统稳健并避免了历史偏差。
重新爬取策略数据162可以包括奖励数据165。奖励数据165也是在K臂对抗邦迪算法中使用的中间量,在每个时间步处从该中间量中导出对策略权重数据的调整。奖励数据165表示在一时刻处在所有报价中选择特定臂或重新爬取战略的奖励。每个报价的奖励或每个报价的效用指示该报价的奖励战略是否产生了对该报价的价格的更新。换句话说,奖励数据165表示对识别了量的改变的重新爬取的奖励。
用户设备120的部件(例如,模块、处理单元124)可以被配置为基于一个或多个平台(例如,一个或多个相似或不同的平台)进行操作,一个或多个平台可以包括一个或多个类型的硬件、软件、固件、操作系统、运行时库等。在一些实施方式中,计算机120的部件可以被配置为在设备集群(例如,服务器群)内操作。在这样的实施方式中,计算机120的部件的功能和处理可以分布到设备集群的若干设备。
计算机120的部件可以是或可以包括被配置为生成和/或更新重新爬取策略的任何类型的硬件和/或软件。在一些实施方式中,图1中的计算机120的部件中示出的部件的一个或多个部分可以是或者可以包括基于硬件的模块(例如,数字信号处理器(DSP)、现场可编程门阵列(FPGA)、存储器)、固件模块和/或基于软件的模块(例如,计算机代码的模块、可以由计算机执行的一组计算机可读指令)。例如,在一些实施方式中,计算机120的部件的一个或多个部分可以是或者可以包括被配置为用于由至少一个处理器(未示出)执行的软件模块。在一些实施方式中,部件的功能可以被包括在与图1所示不同的模块和/或不同的部件中,包括将被例示为两个部件的功能组合到单一部件中。
尽管未示出,但在一些实施方式中,计算机120的部件(或其部分)可被配置为在例如数据中心(例如,云计算环境)、计算机系统、一个或多个服务器/主机设备等内操作。在一些实施方式中,计算机120的部件(或其部分)可以被配置为在网络内操作。因此,计算机120的部件(或其部分)可以被配置为在能够包括一个或多个设备和/或一个或多个服务器设备的各种类型的网络环境内运行。例如,网络可以是或者可以包括局域网(LAN)、广域网(WAN)等。网络可以是或者可以包括无线网络和/或使用例如网关设备、网桥、交换机等实现的无线网络。网络可以包括一个或多个网段(segment)和/或可以具有基于各种协议的部分,诸如互联网协议(IP)和/或专有协议。网络可以包括互联网的至少一部分。
在一些实施方式中,计算机120的一个或多个部件可以是或可以包括被配置为处理存储在存储器中的指令的处理器。例如,实体管理器130(和/或其部分)、预测管理器140(和/或其部分)、重新爬取管理器150(和/或其部分)和重新爬取策略管理器160(和/或其一部分)可以是处理器和存储器的组合,该组合被配置为执行与实现一个或多个功能的过程相关的指令。
在一些实施方式中,存储器126可以是任何类型的存储器,诸如随机存取存储器、磁盘驱动器存储器、闪存等。在一些实施方式中,存储器126可以被实现为与计算机120的部件相关联的多于一个的存储器部件(例如,多于一个的RAM部件或磁盘驱动器存储器)。在一些实施方式中,存储器126可以是数据库存储器。在一些实施方式中,存储器126可以是非本地存储器,或者可以包括非本地存储器。例如,存储器126可以是或者可以包括由多个设备(未示出)共享的存储器。在一些实施方式中,存储器126可以与网络内的服务器设备(未示出)相关联,并且被配置为服务于计算机120的部件。如图1A所例示的,存储器126被配置为存储各种数据,包括实体数据132、元数据144、历史数据146、重新爬取战略数据152和重新爬取策略数据162。
本文将假设实体数据132表示报价数据,该报价数据表示销售产品的报价。按照这些原则,量的值是报价的价格。实体132(1)、……、132(N)被假定为报价。
在深入研究生成重新搜索策略的细节之前,呈现问题的正式描述。设想在搜索环境中有总数为n的报价(o1,o2,……,on),例如爬取日志102。每个报价oi(也称为实体)表示为时间序列,时间步长t处的数据点由三个参数 的向量标示。在这个示例中,表示点击速率,表示曝光速率,表示价格改变的概率(量的改变)。由于价格改变,爬虫需要定期地重新爬取报价,使得本地储存库(例如,内容数据108)可以存储最新的信息。然后,定义重新爬取速率来表示在时间步长t处为报价oi进行的重新爬取量。
此外,报价oi在时间步长t处的最新价格被标示为其可能或可能不被重新爬取战略观察到。换句话说,表示在时间步长t处在域(报价源)处的报价oi的实际价格。同时,每个重新爬取战略还保持内容数据108中用于服务终端用户的价格在访问时,只有匹配时,用户才将看到正确的价格,即其中1(·)是二进制指示符。价格匹配是两个因素的函数—价格改变历史和重新爬取历史。
例如,诸如计算机120的生产爬虫也需要处理资源约束。在这个示例中,在每个时间步长处都假设了b报价的固定爬取约束。目标是找到在给定资源限制的情况下能够最大化整体效用的重新爬取速率因此,如果重新爬取报价将本地价格(例如,在内容数据108中)更新为域中的最新的价格,则爬取是有用的。因此,对于网页爬取,经常采用新鲜度来表示效用。公开的实施方式可以采用两个新鲜度度量来确定效用:点击加权新鲜度和页面级别新鲜度。如果报价的本地价格与其真实价格匹配,那么这个报价就被称为新鲜的。这里,因为每个页面对应于一个产品报价,所以页面级别的新鲜度可以被称为报价级别新鲜度。点击加权新鲜度测量用户看到正确价格时的点击百分比,而报价级别新鲜度在一定时间步长处检查具有被更新的价格信息的报价的比例,而不考虑点击。
表1概述了用于表示在公开的环境中使用的数据元素的记号。
表格1本文使用的记号
例如重新爬取管理器150的重新爬取任务被建模为K臂对抗邦迪(KAB)问题,其中每个重新爬取战略被视为一臂。在每个时间步长处,基于臂的历史性能选择一个臂,使用选择的臂爬取的实体(报价)被确定,奖励被观察并且选择的臂的性能被更新。通过重复这个过程,臂选择过程可以随着时间的推移而改进。
表2概述了本文讨论的重新爬取战略。应当理解,不要求这里列出的重新爬取战略或者甚至重新爬取战略的数量,并且使用改进的技术的其他重新爬取战略或者多于或少于列出的五个重新爬取战略是可能的。
图2是描绘根据实施方式的生成和使用用于重新爬取网站的重新爬取策略的示例方法200的流程图。方法200可以由结合图1描述的软件结构来执行,该软件结构驻留在计算机120的存储器126中,并且由该组处理单元124运行。方法200通过估计各种重新爬取战略的重新爬取速率的参数来生成和使用重新爬取策略,然后采用经由例如K臂对抗邦迪算法的强化学习,以导出定义重新爬取策略的、重新爬取战略上的权重分布。
在202,实体管理器130从储存库接收表示多个实体(例如,报价132(1),……,132(N))的实体数据132,多个实体中的每个具有相应的量的值(例如,销售产品的价格),量的值在先前时间处是准确的。例如,先前时间处的价格可能已经在先前的爬取期间从内容储存库108获得。
在204,针对多个实体中的每个,预测管理器140生成当前时间处的多个参数的值。参数包括点击速率、曝光速率或该实体的量的值(例如,该报价的价格)的改变的可能性中的至少一个。在传统方法中,这些参数值从历史数据采取。相反,公开的实施方式使用神经网络来生成这些参数值。神经网络不仅基于历史数据,还基于例如存储在实体信号储存库104中的元数据。如下面关于图4所讨论的,基于元数据和历史的模型胜过仅基于历史或价格改变预测的模型
在206,重新爬取管理器150从多个重新爬取战略中选择重新爬取战略(由重新爬取战略数据152表示)。选择的重新爬取战略用于通过重新爬取实体页面来更新本地储存库,例如,内容数据108。如将参考图3描述的,可以根据多个重新爬取战略上的概率分布来进行选择。
在208,重新爬取管理器150根据选择的重新爬取战略为多个实体中的每个生成相应的重新爬取速率(由重新爬取速率数据155表示)。多个实体中的实体的重新爬取速率是基于时间序列处的多个参数(点击速率、曝光速率或改变的可能性)的值。例如,如果选择的重新爬取战略是统一的重新爬取战略,则所有实体上的重新爬取速率是相等的。作为另一个示例,如果选择的重新爬取战略是改变加权的,则选择的重新爬取速率与实体的改变速率成比例。在这种情况下,通过关于图4讨论的预测来确定改变速率。其他重新爬取战略的重新爬取速率可以类似地生成,如表2所概括的。
在210,重新爬取管理器150基于多个实体中的每个的重新爬取速率来调度对储存库108的重新爬取操作。换句话说,对于当前时间步长(例如,小时、周、一天两次等)重新爬取管理器150在时间步长期间调度特定实体的重新爬取ρ时间。报价的每次重新爬取获得多个实体中的每个的量的值。该更新的值是截止到当前时间的。
在212,重新爬取策略管理器160基于重新爬取更新重新爬取策略(由重新爬取策略数据162表示)。每当报价页面被重新爬取时,重新爬取策略管理器160更新该实体的量的值的时间序列。该被更新的量的值成为用于预测下一个爬取的参数值的历史数据的部分,例如作为步骤204的部分。更新重新爬取策略还包括计算奖励。点击速率提升了奖励。在一些实施方式中,奖励可以被归一化为[0,1]并且可以被表达为 此外,被更新的量可以用于进一步训练预测模型(例如,神经网络)以在以稍后时间处计算参数值。
图3是生成网页重新爬取策略的示例方法300的示图。在图3中,该方法以在时间步长1处选择具有相等选择机会的每个臂开始(310(1))。选择爬取战略并根据战略调度重新爬取。在重新爬取之后,系统计算奖励(为每个实体)并更新爬取战略的历史性能。随着时间的推移,通过聚合奖励,一定重新爬取战略收获了更多的偏好。在图3的示例中,点击加权战略和资源优化战略被例示为随着时间的经过逐渐得到更多偏好(参见t=1处的310(1)、t=100处的310(2)和t=100处的310(3))。注意,实施方式可以使用比图3中例示的重新爬取战略更少的重新爬取战略。实施方式也可以使用更多和/或不同的重新爬取战略。
与采用单一战略相比,使用对抗邦迪在以下方面更具优势:(1)合并多战略允许我们从不同角度探索报价,使其对单独的战略所做出的错误更加稳健;(2)与随机邦迪算法不同,对抗邦迪不做出对奖励分布的平稳性假设,这在奖励(点击加权新鲜度)是动态的情况下是更好的选择。
对抗邦迪方法—更具体地说,是EXP3算法的调整版本,可以形式化如下:假设有K个候选臂,并且让指示人通过在时间步长t处采用第k个臂将接收的奖励。目标是选择臂序列使得通过应用这些臂,最小化没在每个时间步长处使用最佳手臂的遗憾(R)。注意,不是在每个时间步长每个报价对臂进行采样,而是在每个时间步长处仅选择一个臂(例如,步骤206)并应用于所有报价。这避免了多个战略上的资源约束的联合优化,因为每个时间步长的爬取速率已经合并了资源约束。
遗憾R由以下表达式给出:
奖励(或者)通过累积每个报价效用来计算—通过在时间步长t处应用报价oi的第k臂的回报(例如,作为步骤210和212的部分)。遗憾如下定义:如果爬取报价有助于将本地价格更新到最新,那么这样的爬取被认为是有用的,并相应地指派正奖励。来自时间步长(t-1)的本地价格用于验证其将与时间步长t处的真实价格不匹配;如果这些价格确实匹配,则爬取该报价将没有任何效用收获。为了与点击加权新鲜度对准,点击速率提升了奖励。事实上,该效用测量两个时间步长之间的点击加权的新鲜度的增加。重新爬取速率用于标示是否将爬取报价,因为如果不爬取报价,将没有效用收获。此外,还包括一个归一化项,以将奖励重新缩放为[0,1]。
如等式(2)所示更新奖励:
因为在每个时间步长处应用最佳战略的累积奖励是恒定因素,所以等式(1)中的第二项最小化遗憾R等同于最大化预期奖励。此外,基于等式(2)中的定义,时间聚合的奖励实际上表示点击加权的新鲜度,这意味着使用对抗邦迪方法的公开的实施方式本质上优化了点击加权的新鲜度。
在算法1中描述了示例实施方式细节。算法1是图2的方法200的实施方式的一个示例。
算法1K臂对抗邦迪方法
参数:γ∈[0,1]
2:对于时间t=1,2,……,T进行
6:对于报价i=1,2,……,n进行
10:结束
12:结束
算法1通过初始化每个臂的统一重要性权重开始(第1行)。这里,k指示第k臂,0代表时间步长t=0。在每个时间步长t处,计算概率分布Qt,其中每个元素标示选择第k臂的概率(第3行)。由重要性权重和探索概率γ来确定接下来,从Qt对臂At进行采样(第4行),并根据表格2计算对应的报价爬取速率(第7行)。注意,资源约束条件b已经集成到中。在爬取时,还为采样的臂聚合奖励(第9行)。最后,基于奖励计算臂At的(第11行)。这更新了爬取策略。方法在下一时间步长重复。
算法1通过引入探索概率γ解决了强化学习中的开发-探索权衡。算法1以1-γ的概率、与臂的过去性能成比例地采样臂,并且还保持选择进行探索的随机臂的γ的概率。在一些实施方式中,γ=0.1。
在一些实施方式中,时间步长被假设为两个小时。表格2的爬取速率是使用两小时的时间步长计算的。在一些实施方式中,时间步长是每隔一小时。当针对每两小时的时间步长计算表格2中的爬取速率时,爬取速率应该乘以(12小时/时间单位)。
部署在K臂对抗邦迪中用作臂的重新爬取战略(除了均匀爬取)要求知道点击速率、曝光速率和改变速率。公开的实施方式使用预测建模方法,其中在模型中为了更好的参数估计准确度采用元数据和过去的历史信息两者。
具体而言,实施方式可以基于现有的爬取日志数据来初始地训练预测模型。在一些实施方式中,价格改变预测被建模为分类任务,其目标是取决于数据粒度来预测报价的价格是否将在下一天或任何时间范围中改变。类似地,对于点击和曝光预测,预报报价在下一天是否会被点击或曝光。当计算爬取速率时,预测输出直接用作μ、ν和Δ。在一些实施方式中,预测范围可以被设置为每日粒度,因为点击和曝光统计是在每日的基础上聚合的。
实施方式可以采用两个改变历史特征,包括每月价格改变频率和最近期的改变。还可以包括一组点击和曝光历史特征,它们是预测未来点击和曝光的强信号。表3提供了所有这些特征及其描述。产品类别信息可以来自购物分类法(taxonomy),诸如谷歌购物产品分类法。改变频率、点击和曝光统计可以被视为数字密集特征,并且元数据信息可以由稀疏特征建模并被嵌入到低维空间中。
表格3可以在预测模型中使用的历史和元数据特征
对于每个预测任务,模型是使用组合的元数据和历史特征训练的。可以是前馈深度神经网络(DNN)模型的示例模型采用TensorFlow DNNClassifier,其中三个隐藏层被设置为每层中256、128和64个隐藏单元。ReLU(校正线性单元)被用作隐藏单元的激活函数,并选择优化交叉熵损失的Adagrad算法。也可以使用其他神经网络配置。在一些实施方式中,为了处理过拟合,可以采用L1和L2正则化两者,并且都设置为0.001。实施方式可以使用多组超参数。这样的实施方式具有相似的结果。
示例爬取日志可以包括数百万个实体。例如,示例爬取日志(例如,102)可以包括130万个被索引的报价,以及为这些报价调度的每小时的爬取。公开的实施方式所使用的用于训练预测模型的样本可以来自两种类型:(a)来自整个报价语料库的随机统一样本;以及(b)更好地表示具有点击的流行报价的点击加权样本。总共可能爬取数十亿个报价页面快照。为了便于讨论,日志覆盖的示例时间段可以是从2018/08/01到2019/04/10。
图4是用于每日预测的示例数据集生成过程400的示图,每日预测用于训练在公开的实施方式中使用的预测模型。如图4所示,对于每个模拟预测日期d,预测时间t被定义为d的开始(上午12:00)。然后从直到t时间的爬取日志提取特征。t之后的每小时的爬取提供了对未来价格信息的完整观察,这有助于生成反映下一天价格是否将改变的二进制标签。类似地,关于日期d+1的点击和曝光信息被用于创建二进制点击/曝光标签,二进制点击/曝光标签标示报价是否将在下一天被点击/曝光。通过移动预测日期d并重复上述过程,创建了一组训练、测试和验证示例。
本示例中的训练、验证和测试数据集是用来自不同日期的数据创建的。特别地,在图4的示例中,从2018/08/01到2018/12/31的数据用于训练,从2019/01/01到2019/01/09的数据用于验证,其余的用于测试。总共获得60万个验证示例、800万个测试示例和1亿个训练示例。在测试和验证数据中,价格改变的正/负标签比率为1:20,点击的正/负标签比率为1:75,曝光的正/负标签比率为1:6,而对于训练数据,由于涉及点击加权样本,我们观察到更高的正/负比率。价格改变的比率变为1:20,点击的比率变为1:1,曝光的比率变为4:1。注意,由于统一的样本是从整个语料库中随机挑选的,因此许多样本被废弃、移除或没有提取价格。这导致测试和验证示例的数量低于预期。
实施方式可以与仅基于元数据的预测模型、仅基于历史的预测模型或基于元数据和历史的预测模型一起使用。表格4例示了基于元数据和历史的模型更准确(通过接收器操作特性曲线下的面积测量,其中值0.5意味着随机猜测,而1.0指示完美预测)。
任务\模型 | 元数据 | 历史 | 元数据+历史 |
价格改变 | 0.860(0.008) | 0.833(0.011) | 0.882(0.007) |
点击 | 0.796(0.021) | 0.948(0.006) | 0.949(0.006) |
曝光 | 0.736(0.008) | 0.896(0.003) | 0.895(0.003) |
表格4测试预测模型的AUC(和标准差)
图5例示了通用计算机设备600和通用移动计算机设备650的示例,它们可以与这里描述的技术一起使用。计算机设备600是图1和图2的计算机120的一个示例配置。
如图5所示,计算设备600旨在表示各种形式的数字计算机,诸如膝上型计算机、台式计算机、工作站、个人数字助理、服务器、刀片服务器、大型主机和其他适当的计算机。计算设备650旨在表示各种形式的移动设备,诸如个人数字助理、蜂窝电话、智能电话和其他类似的计算设备。这里所示的部件、它们的连接和关系以及它们的功能仅仅意味着示例性的,并不意味着限制本文件中描述和/或要求保护的发明的实施方式。
计算设备600包括处理器602、存储器604、存储设备606、连接到存储器604和高速扩展端口610的高速接口608、以及连接到低速总线614和存储设备606的低速接口612。部件602、604、606、608、610和612中的每个使用各种总线互连,并且可以安装在公共主板上或者以其他适当的方式安装。处理器602可以处理包括存储在存储器604中或存储设备606上的指令的、用于在计算设备600内执行的指令,以在外部输入/输出设备(诸如耦合到高速接口608的显示器616)上显示GUI的图形信息。在其他实施方式中,可以适当地使用多个处理器和/或多个总线,以及多个存储器和各种类型的存储器。此外,可以连接多个计算设备600,其中,每个设备提供必要操作的部分(例如,作为服务器排(bank)、刀片服务器群组或多处理器系统)。
存储器604存储计算设备600内的信息。在一个实施方式中,存储器604是一个或多个易失性存储器单元。在另一实施方式中,存储器604是一个或多个非易失性存储器单元。存储器604也可以是另一种形式的计算机可读介质,例如磁盘或光盘。
存储设备606能够为计算设备600提供大容量存储。在一个实施方式中,存储设备606可以是或包含计算机可读介质,诸如软盘设备、硬盘设备、光盘设备或磁带设备、闪存或其他类似的固态存储器设备、或包括存储区域网络或其他配置中的设备的设备的阵列。计算机程序产品可以有形地具现在信息载体中。计算机程序产品还可以包含指令,当被执行时,这些指令执行诸如上面描述的那些方法的一个或多个方法。信息载体是计算机或机器可读介质,诸如存储器604、存储设备606或处理器602上的存储器。
高速控制器608管理计算设备500的带宽密集型操作,而低速控制器612管理较低带宽密集型操作。这样的功能分配仅仅是示例性的。在一个实施方式中,高速控制器608耦合到存储器604、显示器616(例如,通过图形处理器或加速器),并且耦合到高速扩展端口610,高速扩展端口610可以接受各种扩展卡(未示出)。在实施方式中,低速控制器612耦合到存储设备506和低速扩展端口614。可以包括各种通信端口(例如,USB、蓝牙、以太网、无线以太网)的低速扩展端口可以通过例如网络适配器耦合到一个或多个输入/输出设备,诸如键盘、定点设备、扫描仪或诸如交换机或路由器的联网设备。
如图所示,计算设备600可以以若干不同的形式实现。例如,它可以被实现为标准服务器620,或者在这样的服务器的群组中多次实现。它也可以被实现为机架式服务器系统624的部分。此外,它可以在诸如膝上型计算机622的个人计算机中实现。可替代地,来自计算设备600的部件可以与诸如设备650的移动设备(未示出)中的其他部件组合。每个这样的设备可以包含一个或多个计算设备600、650,并且整个系统可以由相互通信的多个计算设备600、650组成。
图6示出了通用计算机设备700的示例,其可以是图1A或图1B的计算机120,其可以与这里描述的技术一起使用。计算设备700旨在表示大规模数据处理设备的各种示例形式,诸如服务器、刀片服务器、数据中心、大型主机和其他大规模计算设备。计算设备700可以是具有多个处理器的分布式系统,可能包括通过一个或多个通信网络互连的网络附接的存储节点。这里所示的部件、它们的连接和关系以及它们的功能仅仅意味着示例,并不意味着限制本文件中描述和/或要求保护的发明的实施方式。
分布式计算系统700可以包括任何数量的计算设备780。计算设备780可以包括通过局域网或广域网、专用光链路、调制解调器、网桥、路由器、交换机、有线或无线网络等进行通信的服务器或机架式服务器、大型主机等。
在一些实施方式中,每个计算设备可以包括多个机架。例如,计算设备780a包括多个机架758a-758n。每个机架可以包括一个或多个处理器,诸如处理器752a-752n和762a-762n。处理器可以包括数据处理器、网络附接的存储设备和其他计算机控制的设备。在一些实施方式中,一个处理器可以用作主处理器,并且控制调度和数据分布任务。处理器可以通过一个或多个机架交换机758互连,并且一个或多个机架可以通过交换机778连接。交换机778可以处理多个连接的计算设备700之间的通信。
每个机架可以包括例如存储器754和存储器764的存储器,以及诸如756和766的存储装置。存储装置756和766可以提供大容量存储装置,并且可以包括易失性或非易失性存储装置,例如网络附接盘、软盘、硬盘、光盘、磁带、闪存或其他类似的固态存储设备、或包括存储区域网络或其他配置中的设备的设备的阵列。存储装置756或766可以在多个处理器、多个机架或多个计算设备之间共享,并且可以包括存储可由一个或多个处理器执行的指令的计算机可读介质。存储器754和764可以包括例如一个或多个易失性存储器单元、一个或多个非易失性存储器单元和/或其他形式的计算机可读介质,诸如磁盘或光盘、闪存、高速缓存、随机存取存储器(RAM)、只读存储器(ROM)及其组合。诸如存储器754的存储器也可以在处理器752a-752n之间共享。诸如索引的数据结构可以跨例如存储装置756和存储器754存储。计算设备700可以包括未示出的其他部件,诸如控制器、总线、输入/输出设备、通信模块等。
整个系统可以由相互通信的多个计算设备700组成。例如,设备780a可以与设备780b、780c和780d通信,并且这些设备可以统称为计算机120。作为另一个示例,图1的计算机120可以包括一个或多个计算设备700。一些计算设备可能在地理上位置彼此靠近,而其他计算设备可能在地理上位置远离。系统700的布局仅仅是示例,并且系统可以采用其他布局或配置。
这里描述的系统和技术的各种实施方式可以在数字电子电路、集成电路、专门设计的ASICs(专用集成电路)、计算机硬件、固件、软件和/或其组合中实现。这些各种的实施方式可以包括在可编程系统上可执行和/或可解释的一个或多个计算机程序中的实施方式,可编程系统包括至少一个可编程处理器、至少一个输入设备和至少一个输出设备,可编程处理器可以是专用或通用的,可编程处理器被耦合以从存储系统接收数据和指令,以及向存储系统发送数据和指令。
这些计算机程序(也称为程序、软件、软件应用或代码)包括用于可编程处理器的机器指令,并且可以以高级别过程化和/或面向对象的编程语言和/或以汇编/机器语言来实现。如本文所使用的,术语“机器可读介质”和“计算机可读介质”是指用于向可编程处理器提供机器指令和/或数据的任何计算机程序产品、装置和/或设备(例如,磁盘、光盘、存储器、可编程逻辑设备(PLD)),包括接收机器指令作为机器可读信号的机器可读介质。术语“机器可读信号”是指用于向可编程处理器提供机器指令和/或数据的任何信号。
为了提供与用户的交互,这里描述的系统和技术可以在计算机上实现,该计算机具有用于向用户显示信息的显示设备(例如,CRT(阴极射线管)或LCD(液晶显示器)监视器)以及用户可以向计算机提供输入的键盘和定点设备(例如,鼠标或轨迹球)。也可以使用其他种类的设备来提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈(例如,视觉反馈、听觉反馈或触觉反馈);并且可以以任何形式接收来自用户的输入,包括声音、语音或触觉输入。
这里描述的系统和技术可以在计算系统中实现,计算系统包括后端部件(例如,作为数据服务器),或者包括中间件部件(例如,应用服务器),或者包括前端部件(例如,具有图形用户接口或网页浏览器的客户端计算机,用户可以通过图形用户接口或网页浏览器与这里描述的系统和技术的实施方式进行交互),或者包括这样的后端、中间件或前端部件的任意组合。系统的部件可以通过任何形式或介质的数字数据通信(例如,通信网络)来互连。通信网络的示例包括局域网(“LAN”)、广域网(“WAN”)和互联网。
计算系统可以包括客户端和服务器。客户端和服务器通常彼此远离,并且典型地通过通信网络进行交互。客户端和服务器的关系是由于在相应的计算机上运行的、并且彼此具有客户端-服务器关系的计算机程序而出现的。
已经描述了若干实施方式。然而,将理解,在不脱离本说明书的精神和范围的情况下,可以进行各种修改。
还将理解,当元素被称为在另一个元素上、连接到、电连接到、耦合到或电耦合到另一个元素时,它可以直接在另一个元素上、连接到或耦合到另一个元素,或者可以存在一个或多个中间元素。相反,当一个元素被称为直接在另一个元素上、直接连接到或直接耦合到另一个元素时,不存在中间元素。尽管术语直接在上面、直接连接到或直接耦合到可能不贯穿详细描述使用,但是被示出为直接在上面、直接连接到或直接耦合到的元素可以如此称呼。本申请的权利要求可以被修改以列举说明书中描述的或附图中示出的示例性关系。
尽管如本文所描述的,已经例示了描述的实施方式的一定特征,但是本领域技术人员现在将想到许多修改、替换、改变和等同物。因此,将理解,所附权利要求旨在覆盖落在实施方式的范围内的所有这样的修改和改变。应该理解的是,它们仅仅是已被当做示例而不是当做限制呈现,并且可以进行形式和细节上的各种改变。本文描述的装置和/或方法的任何部分可以以任何组合进行组合,除了互斥的组合。本文描述的实施方式可以包括所描述的不同实施方式的功能、部件和/或特征的各种组合和/或子组合。
此外,图中所描绘的逻辑流程不要求所示的特定顺序或连续顺序来实现期望的结果。此外,可以提供其他步骤,或者可以从所描述的流程中消除步骤,并且可以向所描述的系统添加其他部件,或者从所描述的系统中移除其他部件。因此,其他实施方式也在以下权利要求的范围内。
Claims (20)
1.一种计算机实现的方法,包括:
从储存库接收表示多个实体的实体数据,所述多个实体中的每个具有相应的量的值,所述量的值在先前时刻处是准确的;
针对多个实体中的每个,生成当前的时间处的多个参数的相关联的值,所述多个参数包括该实体的量的值的改变的可能性或来自储存库的该实体的访问速率中的至少一个;
根据刷新策略,选择多个刷新战略中用于更新多个实体中的每个的量的值的刷新战略;
根据选择的刷新战略,为多个实体中的每个生成相应刷新速率,多个报价中的每个实体的相应刷新速率是基于在包括先前时刻和当前时刻的时间序列处的多个参数的相关联的值的;
基于多个实体的相应刷新速率对储存库执行刷新操作,所述刷新操作被配置为获得当前时刻处的实体的量的值;以及
基于多个实体中的每个的先前时刻处的量的值和当前时刻处的量的值之间的差异来更新刷新策略。
2.根据权利要求1所述的方法,其中,所述刷新策略包括权重分布,所述权重分布表示选择多个刷新战略中的每个的相应可能性。
3.根据权利要求2所述的方法,其中,选择多个刷新战略中的刷新战略包括:
在多个刷新战略上生成刷新战略的概率分布,所述概率分布包括对应于多个刷新战略中的每个的相应概率;以及
根据概率分布执行对多个刷新战略的随机采样,以产生选择的刷新战略。
4.根据权利要求3所述的方法,其中,生成概率分布包括:
执行权重分布的权重的平均和多个刷新战略的刷新战略的数量的倒数,所述权重对应于刷新战略。
5.根据任一前述权利要求所述的方法,其中,所述多个刷新战略包括统一战略、改变加权战略、访问加权战略和资源优化战略中的至少两个。
6.根据任一前述权利要求所述的方法,其中,根据所述选择的刷新战略为多个实体中的每个生成相应刷新速率包括:
针对多个参数中的参数,生成对应于所述参数的相应神经网络模型;以及
使用对应于所述参数的神经网络模型来生成所述参数的相应刷新速率。
7.根据权利要求6所述的方法,其中,多个参数中的所述参数是多个实体中的实体的量的值的改变的可能性,并且
其中,生成对应于所述参数的神经网络模型包括:
基于一组历史特征训练模型,该组历史特征包括先前时间段中的量改变频率和自最近期的改变以来的时间长度中的至少一个。
8.根据权利要求6所述的方法,其中,多个参数中的所述参数是多个实体中的实体的访问速率,并且
其中,生成对应于所述参数的神经网络模型包括:
基于一组历史特征训练模型,该组历史特征包括先前时间段内的访问次数和先前时间段内的访问次数中的至少一个。
9.根据权利要求6所述的方法,其中,生成对应于所述参数的神经网络模型包括:
基于元数据训练模型,所述元数据包括预测时间的一周中的一天、以及多个实体中的每个的特性中的至少一个。
10.根据权利要求6所述的方法,其中:
所述储存库包括多个报价网页页面;
多个实体中的每个包括多个报价网页页面中的报价网页页面,所述报价网页页面展示产品报价;
对实体的刷新操作包括从商家网站重新爬取网页页面;
多个实体中的实体的多个参数包括报价网页页面的曝光速率和报价网页页面的点击速率;
该实体包括该报价网页页面的品牌标识符、该报价网页页面的商家标识符和该报价网页页面的国家标识符,并且
其中,生成对应于所述参数的神经网络模型包括:
基于元数据训练模型,所述元数据包括品牌标识符、国家标识符、预测时间的一周中的一天、以及商家标识符中的至少一个。
11.一种包括非暂时性存储介质的计算机程序产品,所述计算机程序产品包括代码,当由被配置为生成刷新策略的用户设备的处理电路执行时,所述方法包括:
从储存库接收表示多个实体的实体数据,所述多个实体中的每个具有相应的量的值,所述量的值在先前时刻处是准确的;
针对多个实体中的每个,生成当前的时间处的多个参数的相关联的值,所述多个参数包括该实体的量的值的改变的可能性或来自储存库的该实体的访问速率中的至少一个;
根据刷新策略,选择多个刷新战略中用于更新多个实体中的每个的量的值的刷新战略;
根据选择的刷新战略,为多个实体中的每个生成相应刷新速率,多个实体中的实体的刷新速率是基于在包括先前时刻和当前时刻的时间序列处的多个参数的相关联的值的;
基于多个实体的相应刷新速率对储存库执行刷新操作,所述刷新操作被配置为获得当前时刻处的实体的量的值;以及
基于多个实体中的每个的先前时刻处的量的值和当前时刻处的量的值之间的差异来更新刷新策略。
12.根据权利要求11所述的计算机程序产品,其中,所述多个刷新战略中的每个被表示为K臂对抗邦迪算法的臂。
13.根据权利要求11所述的计算机程序产品,其中,所述多个报价的相应刷新速率的总和是基于实体刷新预算约束被归一化的。
14.根据权利要求11所述的计算机程序产品,其中,更新所述刷新策略包括:
为多个实体中的每个生成每个实体的效用,所述每个实体的效用包括以下三项的乘积:(i)该实体的访问速率,(ii)该实体的刷新速率,以及(iii)二元函数,当使用多个战略中的刷新战略获得的前一时刻处的实体的量的值不等于当前时刻处的实体的量的值时,取值为一,并且当使用多个战略中的刷新战略获得的先前时刻处的实体的量的值等于当前时刻处的实体的量的值时,取值为零。
15.根据权利要求14所述的计算机程序产品,其中,更新所述刷新策略还包括:
在当前时刻处将多个实体中的每个的每个实体的效用添加到奖励参数,所述奖励参数指示在当前时刻处所述刷新战略的相对有用性。
16.一种被配置为生成刷新策略的电子装置,所述电子装置包括:
存储器;和
控制电路,耦合到存储器,所述控制电路被配置为:
从储存库接收表示多个实体的实体数据,所述多个实体中的每个具有相应的量的值,所述量的值在先前时刻处是准确的;
针对多个实体中的每个,生成当前的时间处的多个参数的相关联的值,所述多个参数包括该实体的量的值的改变的可能性或来自储存库的该实体的访问速率中的至少一个;
根据刷新策略,选择多个刷新战略中用于更新多个实体中的每个的量的值的刷新战略;
根据选择的刷新战略,为多个实体中的每个生成相应刷新速率,多个报价中的每个实体的相应刷新速率是基于在包括先前时刻和当前时刻的时间序列处的多个参数的相关联的值的;
基于多个实体的相应刷新速率对储存库执行刷新操作,所述刷新操作被配置为获得当前时刻处的实体的量的值;以及
基于多个实体中的每个的先前时刻处的量的值和当前时刻处的量的值之间的差异来更新刷新策略。
17.根据权利要求16所述的电子装置,其中,所述刷新策略包括权重分布,所述权重分布表示选择多个刷新战略中的每个的相应可能性。
18.根据权利要求17所述的电子装置,其中,被配置为选择多个刷新战略中的所述刷新战略的控制电路还被配置为:
在多个刷新战略上生成刷新战略的概率分布,所述概率分布包括对应于多个刷新战略中的每个的相应概率;以及
根据概率分布执行对多个刷新战略的随机采样,以产生选择的刷新战略。
19.根据权利要求18所述的电子装置,其中,被配置为生成所述概率分布的控制电路还被配置为:
执行权重分布的权重的平均和多个刷新战略的刷新战略的数量的倒数,所述权重对应于刷新战略。
20.根据权利要求16所述的电子装置,其中,所述多个刷新战略包括统一战略、改变加权战略、曝光加权战略和资源优化战略中的至少两个。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2020/025757 WO2021201825A1 (en) | 2020-03-30 | 2020-03-30 | Adversarial bandits policy for crawling highly dynamic content |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115516446A true CN115516446A (zh) | 2022-12-23 |
Family
ID=70465344
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080099441.5A Pending CN115516446A (zh) | 2020-03-30 | 2020-03-30 | 用于爬取高度动态内容的对抗邦迪策略 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20230169128A1 (zh) |
CN (1) | CN115516446A (zh) |
WO (1) | WO2021201825A1 (zh) |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150006023A1 (en) * | 2012-11-16 | 2015-01-01 | Scope Technologies Holdings Ltd | System and method for determination of vheicle accident information |
EP3079116A1 (en) * | 2015-04-10 | 2016-10-12 | Tata Consultancy Services Limited | System and method for generating recommendations |
US11379539B2 (en) * | 2019-05-22 | 2022-07-05 | Microsoft Technology Licensing, Llc | Efficient freshness crawl scheduling |
-
2020
- 2020-03-30 CN CN202080099441.5A patent/CN115516446A/zh active Pending
- 2020-03-30 US US17/995,248 patent/US20230169128A1/en active Pending
- 2020-03-30 WO PCT/US2020/025757 patent/WO2021201825A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
WO2021201825A1 (en) | 2021-10-07 |
US20230169128A1 (en) | 2023-06-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10296935B2 (en) | Real time audience forecasting | |
US10580035B2 (en) | Promotion selection for online customers using Bayesian bandits | |
US8560293B2 (en) | Enhanced matching through explore/exploit schemes | |
US11875368B2 (en) | Proactively predicting transaction quantity based on sparse transaction data | |
US10032176B2 (en) | Real time statistics extraction from arbitrary advertising audiences | |
WO2015192667A1 (zh) | 推荐广告的方法及广告推荐服务器 | |
Agarwal et al. | Content recommendation on web portals | |
US10878058B2 (en) | Systems and methods for optimizing and simulating webpage ranking and traffic | |
US10559004B2 (en) | Systems and methods for establishing and utilizing a hierarchical Bayesian framework for ad click through rate prediction | |
US11710065B2 (en) | Utilizing a bayesian approach and multi-armed bandit algorithms to improve distribution timing of electronic communications | |
US11663509B2 (en) | System and method for a personalized machine learning pipeline selection and result interpretation | |
US20210192549A1 (en) | Generating analytics tools using a personalized market share | |
US20100121801A1 (en) | Enhanced matching through explore/exploit schemes | |
CN111079014A (zh) | 基于树结构的推荐方法、系统、介质和电子设备 | |
US9858526B2 (en) | Method and system using association rules to form custom lists of cookies | |
US20150066661A1 (en) | System for scalable keyword bid optimization | |
US8285583B2 (en) | Contact stream optimization using FEC and CC constraints | |
US20120316924A1 (en) | Dynamic Ticket Pricing | |
CN116034354A (zh) | 用于自动化干预的系统和方法 | |
US8195804B1 (en) | Optimizing website traffic among content sources | |
US20230169128A1 (en) | Adversarial bandits policy for crawling highly dynamic content | |
CN115129964A (zh) | 推送待推荐内容项的方法、推送系统、电子设备 | |
KR102614813B1 (ko) | 정보 업데이트를 위한 적응적 타이밍 예측 | |
CN112990951B (zh) | 确定条目访问量的方法和装置 | |
US20230126932A1 (en) | Recommended audience size |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |