用任意费用函数训练学习系统的制作方法

文档序号:6568142阅读:185来源:国知局
专利名称:用任意费用函数训练学习系统的制作方法
用任意费用函数训练学习系统
本申请要求于2005年7月18日提交的题为"用任意费用函数训练分级系统(RAINING RANKING SYSTEMS WITH ARBITRARY COST FUNCTIONS)"的美国临时专利申请第60/700,080号的在35 U.S.C.119(e)下的优先权。
背景
无论是作为因特网上信息源的迅速扩大的结果还是作为组织公司内的商务信息的个人努力的结果或者是多种其他因素之中的任何一种,信息搜索者能获得的数据量己经极大地增长。由于可获得的数据量已经增长,因此存在能够分类并且定位相关的数据的需求。 一个相关的问题是对已经被识别为相关的数据进行分级的需要。
当用户搜索特定数据的数据集时,用户通常需要简单地与用户输入的搜索查询有某种关系的超过一个的结果列表。用户通常希望能够从该列表中快速定位最好或最相关的结果。对搜索结果进行分级可以协助用户快速定位最相关的数据。通常,高分级向用户指示用户所搜索的信息在搜索结果中出现的较高概率。
一种方法是使用机器学习系统来定位、排序、分级或以其他方式处理数据。机器学习系统包括诸如神经网络系统、支持向量机("SVM")和感知器及其他的系统。这些系统可以被用于多种数据处理或分析任务,包括但不限于光学图案和对象识别、控制和反馈系统以及文本分类。机器学习系统的其他潜在用途包括可以受益于数据分类或回归的任何应用程序。通常,机器学习系统被训练以改善性能并产生最优搜索、排序或分级结果。
通常使用费用函数训练此类机器学习系统,其中学习过程尝试最小化该费用函数。然而通常所关注的费用函数不能被直接最小化,因为这己经提出了太难以解决的问题。例如,在文件检索问题中,被训练系统的质量的测量是接收器操作曲线(Receiver Operating Curve, ROC)下的面积。ROC曲线是正阳性(例如,相关的文档检索)数量相对于假阳性(例如,不相关的文档检索)的数量的图示。此类费用函数不是所使用的机器学习系统的输出的可微分函数,这样的平滑度缺乏提出了直接地使用此类函数进行训练的困难性。
概述
下面给出学习系统训练系统和/或方法的一个或多个实施例的简化概述,以便 提供对此类实施例的一些方面的基本理解。这一概述不是广泛的纵览,且既非旨在 标识诸实施例的关键或重要元素,也非旨在描绘此类实施例的范围。其唯一目的是 以简化的形式给出所描述实施例的一些概念,作为后面给出的更加详细的描述的前奏。
简而言之,在此所描述的系统和/或方法提供机器学习系统的训练。在此所描 述的系统可以包括至少部分地基于由学习系统和费用函数产生的结构化数据的一 组估计的梯度。可以使用所估计的梯度而不是费用函数来在系统训练期间确定或修 改机器学习系统的参数。
为实现上述及相关成果,结合下列说明和附图,在此描述所要求保护主题的 某些示例性方面。这些方面指示本主题可以实践的各种方法,这些方法均被规定为 是在所要求保护主题的范围之内。结合附图一起考虑,从下面的详细描述可以明显 看出本发明的其他优点和新颖特征。
附图简述


图1是用于依照在此公开主题的一个方面生成结构化数据的系统的例示。 图2是依照在此公开主题的一个方面生成结构化数据的系统的例示。 图3是依照在此公开主题的一个方面生成结构化数据的系统的例示。 图4A是一组文档的示例性分级的例示。
图4B是一组文档的示例性分级的例示。 图4C是一组文档的示例性分级的例示。 图5是多层神经网络的系统框图。 图6是单层神经网络的系统框图。 图7是神经网络单元位的系统框图。
图8是用于依照在此公开主题的一个方面的操作而准备学习系统的方法的例示。
图9例示用于依照在此公开主题的一个方面而用任意的费用函数来训练学习 系统的方法。图io例示用于更新机器学习系统参数的方法。
图11是例示适当的操作环境的示意性框图。
图12是示例计算环境的示意性框图。
详细描述
现在参考附图描述在此公开主题的各个方面,其中始终用相同的参考数字来 指示相同的或相应的元素。然而应该了解,附图以及与其相关的详细描述并不旨在 把所要求保护的主题限制为公开的特定形式。相反,其意图是覆盖落在所要求保护 的主题的精神和范围内的所有修改、等效和替换方案。
在此所用的术语"组件"、"系统"等等意指与计算机相关的实体,可以是 硬件、硬件和软件的组合、软件或执行中的软件。例如,组件可以是但不限于是, 在处理器上运行的进程、处理器、对象、可执行(程序)、执行的线程、程序和/ 或计算机。作为例示,运行在计算机上的应用程序和计算机本身都可以是计算机组 件。 一个或多个组件可以驻留在进程和/或执行的线程中,并且,组件可以位于一 个计算机内和/或分布在两个或更多的计算机之间。
在此使用词语"示例性的"意味着用作例子、实例或例示。在此被描述为"示 例性的"的任何方面或设计并不一定被解释为比其他方面或设计优先或有利。
在此所用的术语"推理(动词)"或"推理(名词)"通常是指经由事件和/ 或数据推断或推理系统、环境和/或用户的状态的过程。例如,推理可以被用来识 别特定上下文或动作,或可以创建状态的概率分布。推理可以是概率性的,即是说, 基于对数据和事件的考虑计算所关注状态的概率分布。推理也可以指用于从一组事 件和/或数据构成更高级别事件的技术。此类推理造成从一组所观察的事件和/或所 存储的数据构造新事件或动作,无论这些事件是否是紧密瞬时相关,也无论事件和 数据是来自 一个还是多个事件和数据源。
此外,使用产生软件、固件、硬件或其任何组合的标准编程和/或工程技术, 公开的主题可以被实现为控制基于计算机或处理器的设备实现在此被所详述的方 面的系统、方法、装置或制品。此处所用的术语"制品"(或作为替换,"计算机 程序产品")规定为包含可以从任何的计算机可读设备、载波或介质访问的计算机 程序。例如,计算机可读介质可以包括但不限于磁存储设备(例如,硬盘、磁盘、
磁条等)、光盘(例如,光盘(CD)、数字通用盘(DVD)等)、智能卡和闪速 存储器设备(例如,卡、棒)。另外应该明白,载波可以被用于携带计算机可读电
6子数据,例如那些被用于传送和接收电子邮件方面或被用于访问网络如因特网或局
域网(LAN)的数据。当然,本领域的技术人员将会认识到,在不背离所要求保
护的主题的范围或精神的前提下可以对这一配置进行许多修改。
通常,机器学习系统用来处理数据。例如,机器学习系统可用来执行信息检 索或对数据项进行分级。术语"机器学习系统"通常是指与计算机相关的实体,可 以是硬件、硬件和软件的组合、软件或执行中的软件。出于公开的目的,术语"机 器学习系统"和"学习系统"将会被互换使用。通常,学习系统需要被训练才能根 据用户需要处理数据。诸如费用函数的多种度量可用来评估学习系统性能。学习系 统应该被训练以最优化有关将被用于评估学习系统的度量或费用函数方面的性能。 此类机器学习系统的一种用途对数据集中的元素进行分级。所关注的特定数 据集是作为由用户制定的搜索查询的结果而被检索的一组网页。在该数据集中,用 户通常希望将结果中的网页从最有可能响应其搜索请求到最不可能进行排序。具有 相同的响应可能性的网页(例如,具有基于特定标准与査询匹配的相同概率)应该 接收相同的分级。为了向用户呈现,具有相同分级的网页的排序可以是任意的,或 者可以基于任何适当方案。
所描述的系统的另一重要用途是回答问题。在问题回答中,已分级的答案组 (例如,字符串或短语)被作为由用户制定的搜索查询的结果返回。返回的第一答 案应该是最有可能响应该问题的答案。数据集的其他成员可以被完全忽略或被返回 在列表中较低的分级。在此情况中,度量或费用函数只测量顶端返回的答案是否正 确。
应了解,机器学习系统除了此处所讨论的分级问题之外还有多种用途。另外, 应了解存在无限数量的附加査询选项。这些其他替换方面被包括在本公开及所附权 利要求书的范围之内。换句话说,应了解在此描述的新颖概念和功能性可以被应用 于无数场景中,其中每一场景都被包括在本公开及所附权利要求书的精神和范围之 内。
图1是用于依照在此公开主题的一个方面生成结构化数据的系统100的例示。 在此所用的结构化数据可以包括已排序数据、部分已排序数据、图表、序列、字符 串等等。系统100可以被用于对数据进行分级和/或排序,或用于信息检索,但不 限于此类用途。系统100包括学习组件110、输入数据存储120和一组结构化数据 130。学习组件IIO可以包括可以使用梯度下降来训练的任何机器学习系统。被呈 现为本公开部分的各示例通常例示使用神经网络来实现学习组件110的学习系统。然而,本领域内的技术人员将会认识到,可以结合在此公开的主题使用其他机器学 习系统,包括但不限于内核学习方法系统、贝叶斯方法和助推(boosting)方法。
这些技术人员也将会容易地认识到,可以对为所呈现的特定例子进行修改,以便用
取代神经网络的其他机器学习系统来作为学习组件110。用于那些学习系统的学习
算法应该依赖于费用函数的梯度。尽管可以进行这一类型的修改,但是那些修改只 是实施细节而不背离公开主题的范围。
输入数据存储120包含要被输入学习组件110并由其处理的数据。在此所用 的数据存储是任何数据集合,包括但不限于数据库或文件集合,包括文本文件、网 页、图像文件、音频数据、视频数据、字处理文件等等。输入数据存储120内的数 据可以按适当的方式被格式化以供学习组件110使用。或者,学习组件可以包括格 式化组件(未示出),它以适用于由学习组件110操作的格式描绘数据。另外,在 输入数据存储120内的数据的格式可以基于学习组件110的操作模式或阶段而改 变,例如训练阶段、测试阶段或操作阶段。
学习组件110可以处理来自输入数据存储120的数据并输出一组结构化数据 130。结构化数据130可以被其他组件使用或被呈现给用户,或者既被其他组件使 用又被呈现给用户。例如,系统可以包括查看组件(未示出),这一查看组件把结 构化数据以任何有用的或用户所需要的格式显示给用户。此类结构化数据的例子包 括作为对用户查询的响应而对网络上的文档的搜索的结果(例如,因特网上的网 页)。 一组响应文档可以作为输入数据被呈现给学习组件110,并在作为结构化数 据被呈现给用户之前,以基于特定标准的顺序或以此示例性己分级搜索结果而被分 级。
大体上,学习系统具有多个操作阶段。初始阶段被称为训练阶段。在训练时 阶段, 一组训练数据被输入到学习系统中。在处理训练数据期间,学习系统学习以 优化对数据的处理。接着, 一组验证数据被输入学习系统。可以使用评估学习系统 性能的多种评价度量来测量学习系统对验证数据集的处理结果。学习系统可以在训 练和验证数据之间交替以便优化系统性能。 一旦学习系统达到所需要的性能水平, 学习系统的参数可以被固定,以便在学习系统进入操作阶段之前性能保持不变。在 通常跟随在训练和验证之后的操作阶段期间,用户可以利用学习系统来处理操作数 据并获得用户所需要的结果。
在用于生成图2中例示的结构化数据的系统的进一方面中,依赖于操作模式 或阶段,学习组件110或机器学习系统可以从分开的数据存储接收数据。在训练阶
8段,学习组件110可以从训练数据存储210接收专门选择以用于训练学习系统的数
据集。学习组件110可以从验证数据存储220接收验证数据集。另外,在操作阶段, 学习组件110可以从单独的测试的数据存储230接收数据。
可以使用各种费用函数或评估度量来测量学习系统结果的质量。此类度量的 一种是适用于二进制相关的任务的平均分级倒数(mean reciprocal rank, MRR)。 对于MRR,在文档检索的上下文内,对于给定的查询,任何被返回的文档被标记 为"相关"或"不相关"。如果査询的最高分级相关文档的分级是ri,其中i是返 回给文档的査询的数量或索引,那么该查询的倒数分级测量是ri的倒数即1/ri。MRR 被计算为对该组査询的排序测量倒数的平均。
也可以使用归一化折减累积增益("normalized discounted cumulative gain, NDCG")测量来评估机器学习系统。在文件检索的上下文中,NDCG是对排序质 量的累积测量。因此,适当的费用函数是1减去NDCG。对于给定的査询Qi,,可 以使用下列公式计算由iV,表示的NDCG:
在这里,rW是已分级文档顺序中的位置j的文档的相关级别。选择归一化常数Ni 以使得文档的完美排序会得到N「 1。在这里,Z是NDCG在该分级级别处被计算 的分级级别。在该査询集上对M进行平均以计算NDCG。
另外的度量包括成对错误计数(pair-wise error count)和赢者通吃 ("wi皿er-take-all, WTA")。对于文档检索上下文中的成对错误计数,处于不 正确的顺序的文件对的数量被计数。这一基本测量的各种修改被用于信息检索文 献。例如,成对错误可以被计算为不正确文档对的数量与最大可能不正确文档对的 数量之比。WTA函数常常被用来评估问题回答,其中只有顶端答案被评估。通常, 只有在正确答案是在已分级答案的列表的顶端位置时,才给问题回答加分。如果错 误答案是在顶端位置中,就不加分,即使正确答案是在已分级答案的列表的第二位 置中。
以上三种所讨论的测量MRR、 NDCG和WTA,只是检索和分级方法的实践 者所使用的测量类型的小的示例性子集。另外的度量或费用函数包括但不限于在 ROC曲线之下的面积和平均准确率(mean average precision)的测量。在这里把这 一子集用于以具体的例子阐明讨论的目的。同样地,这些测量并不旨在以任何方式 限制本创新的范围。
通常,在训练阶段,学习系统己经利用费用函数或度量的近似。因为由学习系统生成的得分或输出通常是实数,所以使用费用函数的近似,而如WTA的许多
费用函数如WTA在被看作那些数量的函数时,不是可微分且不是平滑地改变。这 可以在基于给定査询而被检索的分级文档的上下文里见到。基于为被称为査询文档 对的每个文档以及产生了该文档的输入査询所生成的学习系统得分,对由査询产生 的文档进行分级。如果两个査询文档对的得分在数值上接近,在得分方面的小改变 可以颠倒文档的分级顺序。这在用于评估机器性能的费用函数方面有很大的影响。 例如,当使用WTA费用函数时,如果正确答案只在分级顺序中向下移动一个位置 并在顶端位置由在不正确答案替代,那么学习系统就不接收加分。这一不连续性使
得学习系统难以改善性能。
由于机器学习方法的这一限制,许多传统的信息检索和问题回答系统把启发
用于分级。然而,如果可能使用正确费用函数,使用启发通常将会给出比使用正确 费用函数更坏的结果。这例如已通过在一些情况中的注意到而被观察,使用启发改 迸系统并不会改进真实的费用。另外,当为查询而返回的文档数量是变量时,机器 学习系统的训练更为复杂。因此,在训练阶段使用的方法通常是被用来评估学习系 统的费用函数的近似,而非被用来评估在学习系统的测试期间的性能的实际费用函 数。
费用函数的一种示例性近似是成对训练。在分对训练期间,向学习系统呈现 一对结果(例如文档A和文档B),其中需要这两个文档的其中之一被分级高于 另一文档。依赖于学习系统对于这两个文档的输出,费用函数被用来更新学习系统。 例如,假设文档A和文档B被呈现给机器并且需要文档A分级高于文档B。如果 机器对于文档A输出比它对于文档B输出更小的数字,那么费用将会很大,且机 器的参数或权重被相应更新。系统试图将结果中的成对错误数量降到最小,其中成 对错误在列表中的两个文档被以错误顺序分级时出现。成对错误是依赖于结构化输 出(因为它依赖于所有已排序的文档或数据)且不平滑的(因为在得分上极小改变 会产生固定、有限的费用改变)费用函数的一个例子。成对错误可以由平滑函数近 似。在以下,出于示例性目的,将假设使用对成对错误的平滑近似。
以下例子示出了把成对训练用作WTA近似的问题。训练査询返回包括两个相 关文档Di和D2以及998个不相关文档在内的1,000个文档。机器最初把Dl分级 在位置1中而把D2分级在位置2中。学习系统可以通过上移D2到位置3以及通 过把Dl下移到位置2来把有关査询的成对错误减少到996个错误,这在学习系统 没有能力把D,和D2放在位置1和2的情况下是需要的。对学习系统能力的限制包括存储器限制、计算能力限制等等。然而,相同的移动将会导致WTA费用函数从
成功的结果1减少到不成功的结果0。成对错误率的极大减少已经导致WTA错误
或费用的最大可能的增加。
大体上,找到具有期望行为的平滑费用函数非常困难。如在以上例子中所见,
把D,留在顶端位置比上移D2 997个位置且下移D, —个位置重要得多;最优WTA 花费在D,或D2是在顶端位置中时实现。在此情况下,WTA的较佳近似会急剧折 减在分级较低位置中出现的错误的费用,同时为在分级的顶端位置中发生的错误维 持较高的费用数值。对于分级较低的文档仍然允许非零费用,从而允许那些文档随 着训练的进行逐渐上移。注意,在这一例子中发生在使用成对错误和WTA之间的
这一差异,这是因为学习系统没有能力把两个文档都放入顶端两个位置;而有限容 量是任何具有良好通用性能的学习系统的特性。
现在假设,函数C是对实现以上的费用函数的平滑近似,且学习系统为给定 査询产生其中D!在位置2而D2在位置1,000的分级,则若给定文档i的得分是Si, 费用函数C对Sl的偏微分应该远大于C对s2的偏微分

在这里,通过在费用函数的导数上强加约束来取得费用函数的所需的特性。指定费 用函数本身的任务可以由指定费用函数对每一查询的每一得分Si的导数的任务来 替代。然后,这些导数可以被用来训练使用梯度下降的学习系统,就像通常使用费 用函数的导数那样。关键在于,对于查询的实例及其已分级文档,指定一组己分级 文档应如何移动以减少不可微分费用比指定多变量费用函数的平滑近似要简单得 多。因为费用函数可以是自变量数目可变的函数,所以在逼近费用函数时会出现困 难。例如,可以为不同査询提供不同数量的文档,这在信息检索中是常见的情况。 另外,费用函数可以是具有大量参数的函数。 一些参数可以具有实数数值,如每个 文档的得分,而一些参数可以具有整数数值,如每个文档的分级和标签。
对应于文档的在此被称为"估计梯度"的一系列提出的梯度,可以被生成并 被用于减少费用。每个文档的估计梯度应该反映为减少费用该文档应该在分级中移 动的方向以及该文档应该移动的强度。可以由学习系统基于结构化数据输出生成一 组估计梯度,并存储起来(例如,在存在表中)供更新学习系统参数之用。注意, 因为当费用函数不可微分时此类估计梯度将不存在,所以这些估计梯度不是费用函 数的实际梯度,这对成对错误、WTA、 NDCG和MRR来说通常是这样。基于反映费用函数需求的一组规则,可以获得适当的估计梯度并将其应用到文档。例如, 可以基于此类规则从査找表中检索出估计梯度。或者,估计梯度可以在文档应用时 被生成。
图3是用于依照在此公开主题的一个方面生成结构化数据检索的系统300的
例示。系统300包括学习组件110、输入数据存储120和一组结构化数据130。学 习组件110可以包括估计梯度组件302、参数组件304和规则组件306。估计梯度 组件302可以基于费用函数的需求存储一组提出或估计的梯度以供学习组件110 使用。可以预先确定该组估计梯度,并将其存储在査找表中以供在训练阶段检索和 使用。可以基于一组反映费用函数需求的规则来确定估计梯度。这组规则可以被存 储在规则组件306中。在训练阶段,参数组件304可以利用估计梯度组件302中所 存储的估计梯度来更新学习组件110的参数。可以基于先前的数据处理所得的结构 化数据130来生成或选择估计梯度以供参数组件304使用。
现在参见图4A,使用特定的、示例性的己分级结果组生成在费用函数、其导 数和学习系统的参数之间的关系。图4A例示六个文档的示例性分级。这里,这些 文档被从图的顶端到底端分级。文档内容由0或1表示。"1"表示文档内容是相 关的,而"0"表示指出文档内容是不相关的。结果,在文档的最优分级中,分级 中顶端两个位置由用"1"表示的文档占据,接着是由"0"表示的文档。图中每个 文档之后的箭头的方向指示每个文档应该移动以减少费用并由此改进己分级结果 的方向。箭头的大小指示文档应该向所指示的方向移动的强度。
对于这一例子,分级函数可以由Fw(x)表示。在这里,x是特征矢量。特征矢 量是从査询和文档的属性导出的査询文档对的一系列数字。或者,特征矢量可以从 文档的属性单独导出。权重矢量由w表示。特征矢量常常被用来排序或分级文档。 权重向量是指定学习系统行为的一组参数。例如,对于神经网络,权重向量表示附 加到结合诸神经网络节点的链路以及附加到每个节点的"补偿"参数的一组权重或 系数。
这一例子的费用函数可以由C(yi,...y6; h,…l6)表示。在这里,费用依赖于由 在这里被表示为y的学习系统所生成的得分,其中yi-Fw(Xi)。例如,yt表示由学 习系统为第一分级文档生成的得分;y2表示学习系统为第二分级文档生成的得分等 等。费用函数也依赖于标签,在这里用h,…l6表示。标签指示分级的质量。标签可 以是文本字符串如"优"、"良"或"差",也可以像在图中所例示的那样为"0" 或"1"
12图4B例示期望的文档分级。这里,两个由"1"指示的文档将移动到分级中 第一和第二位置。当前在第一位置中由"0"指示的文档被降级到第三位置,并且
所有由"o"指示的其他文档在分级中被下移一个位置。尽管可能不知道实现期望 移动所需的平滑费用函数,但显然为了达到这一分级,学习系统的分级函数FwOO 应该为F(Xi)生成大数值、为F(X2)生成略小的数值且为F(X4)显著较小的数值。使用 调整的权重组的F(xJ值可以被写成下式
尸屮》 )+
在这里Wi表示学习系统的原始权重或参数,巧+^^表示在小改变之后的权重。可
以按下式选择权重
熟悉优化技术的人会认识到,以上描述是梯度下降如何工作的非常基本的描述。这 里,s表示小的学习率。学习率可以是常数。或者,学习率可以相对于每个权重而
有所不同。梯度指示文档应该在分级里移动的方向和量两者。为每个文档计算梯度。
梯度的符号指示文档应该在分级里移动的方向,而梯度的大小指示文档应该向给定 方向移动的强度。计算梯度是不可能的或不实际的。相反,当前函数i^的得分可 以被计算并被排序以获得当前系统将给予文档的分级。那么,通过聚焦在期望的结
果运动上,被表示为^的估计梯度可以被附加到每个文档。这样,对于在图4A和
4B中例示的例子
l l 昨i)
j=i h W
对参数的改变5Wj是基于估计梯度即F的梯度,以及由学习系统生成的当前得分。
估计梯度Xj依赖于学习系统对于所有文档Xl...x6的当前输出。因此、是F(x)的函 数,例如、=、(巧...&)。给定一组估计梯度,可能存在相应的费用函数,其中估计
梯度是实际梯度。对应于估计梯度的费用函数在此被称为估计费用函数C。假定费 用函数是六个自变量的函数,按照在图4A和4B中所例示的例子
<formula>formula see original document page 13</formula>
浙,—h永j 浙i 那么,估计费用函数应该满足下列公式
<formula>formula see original document page 13</formula>
注意,这对估计梯度可以采用的函数形式施加条件。如果有估计梯度是真实梯度的实际函数估计梯度事实上应该是多重线性代数领域中所说的"正合式(exact form)"。
估计梯度可以基于由学习系统和标签产生的得分而被选择以反映期望的结 果。在这一例子中,标签指示分级中的文档位置。在使用WTA费用函数评估六个 文档的例子中,基于WTA费用函数的一组规则可以被用来选择估计梯度。第一规 则可以写成下式
如果h ='r & F(Xr=1)-F(xm) > s,那么义7. = oy/
在这里,m是最高已分级"0"的索引,而S是固定的余量。因此,如果在第一位
置中的文档是"1" )且第一已分级文档(F(xr=1))的得分减去最高己分
级"0"的F(xJ大于固定的余量(S),那么对每个j设置Xj等于0(、二OVj)。在
这一情况中,第一文档是在正确的位置且WTA费用函数将会产生1的费用。另外, 在标记"1"的文档和标记"0"的文档的得分之间的差异大于该余量,这确保文档 分级不可能被转换。因此,没有一个文档会被重新定位,估计梯度应该被设置为O。 第二规则是,分级高于带有标签"1"的文档的、带有标签"0"的任何文档 (li=0),应该在文档的己分级列表中大幅下移。为确保该文档在已分级列表中下 移,估计梯度应该是负数,并且为确保文档该文档在列表中大幅下移,文档的估计 梯度a》应该被设置成具有相对大数值的常数-X。
第三,对于具有标签"r的顶端分级文档(不是在结果中顶端分级的文档), 该文档应大幅上移。因此,为确保该文档在己分级的列表中上移,文档的估计梯度
a》应该被设置成正值。为确保该文档在列表中大幅上移,估计梯度应该被设置 成相对大的常数+x。
另外,在具有标签"i"的文档下的、具有标签"o"的文档,应该在已分级 列表中下移,但是幅度要小得多。例如,估计梯度的数值可以被设置成用来把被标 记为"o"的文档从顶端位置移走的估计梯度的数值的一半(例如,^ = -i/2;o 。 同样地,具有标签"r'但不是顶端分级"r'的文档,应该在已分级的列表中上移, 但是幅度要小得多。例如,估计梯度的数值可以被设置成用来把被标记为"i"的 顶端分级文档向顶端移动的估计梯度的数值的一半(例如,、=l/2 0 。
图4C是把使用上述规则生成的一组估计梯度用于再排序的例示。具有标签
"1"的顶端分级文档大幅上移,如相应箭头所例示。同样地,已分级"o"的顶端
大幅下移。依赖于其相应标签,剩余的文档被小幅上移或下移。可以通过考虑特定例子来进一步解释学习系统的训练。例如,学习组件110 可以包括神经网络。神经网络被普遍用于分类和回归任务。神经网络普遍被组织为 也被称为神经元、节点或单元的处理元件的多层层级排列。出于公开目的,术语神 经元、节点和单元将会被互换使用。每个单元通常有一个或多个输入和一个输出。 每个输入通常由某系数值加权。单元的每个输出通常是依照激活函数和所应用的任 何权重或偏置处理其(诸)输入数值的结果。
在神经网络中神经元的层级排列中,神经元通常被安排入诸层。 一层内神经 元的输出可以是到后一层中一个或多个神经元的输入。诸层可以在这样的意义上被 暴露该层的神经元的输入直接地接收来自神经网络外部的数据源的输入,或者神 经元的输出是期望的处理结果。诸层可以在这样的意义上被隐蔽使用前一的或较 低层的单元的输出计算该层的神经元的输入,或者隐蔽层的单元的输出馈入后一或 较高层的单元的输入。示例性的神经网络可以包括任何适当数量的层,如输入层、 中间或隐蔽层以及输出层。
神经网络的使用通常包括训练阶段和测试阶段。在训练阶段,被称为"训练 集"的预先选定的数据模式组之一被呈现给网络以供分类。这一过程常常被称为前
向传播(forward propagation)。训练步骤的目的是将费用函数最小化,由此将网 络的错误最小化。由训练产生的结果随后以如果再次为前向传播呈现模式,该网络 将产生较小费用的这一方式,被用来调整网络的参数如权重或偏置。这一调整过程 被称为后向传播。前向传播和后向传播通常被连续地执行,直到在适当的被称为"验 证集"的第二预先选定的数据模式组上取平均的费用函数被最小化。
当训练完成时,网络参数被冻结且不可以再被改变。此时,就认为网络被完 全训练。向网络呈现测试数据集,并评估这一测试集的计算结果且与己知理想结果 比较。如果这一评估产生可接受余量内的结果,该网络则可被接受以供使用。
图5是可以被用来实现学习组件110的多层神经网络500的系统框图。所描 述的神经网络500包括输入层510、隐蔽层520和输出层530。每层包括一个或多 个神经元541、 542、 543,其中的每个都接收输入;关于某种预定义函数以及可选 权重或偏置处理该输入;并且提供输出。每层的单元经由若干连接550而彼此连接。 在所描述的例子中,每层完全与(诸)相邻层连接,意味着在该层中的每个单元都 被连接到相应单元驻留其中的且与该层相邻的(诸)层中的每个单元。为了说明清 晰起见,图中已省略一些单元和一些连接。应该明白,在神经网络中的精确数量和 单元配置是本领域内的技术人员的水平内的实现细节,在图5中描述和在此讨论的
15特定配置不应该被看作限制因素。
输入层510是最初接收待分级的输入数据的层。通常,输入数据被结构化, 以使得所关注的若干属性被定义且每个属性都有关联值。通常,且在很多情况中优 选,输入层510的配置是使得该层的单元数量等于待处理数据的所关注的属性数
量。输入层510中的每个单元541随后将会处理输入数据的单个属性并将其处理结 果前向馈入到隐蔽层520的单元542。通常,输入层内的各单元不具有关联偏置或 权重,而网络中的其他各单元则有。同样地,隐蔽层520的单元542将处理从输入 层510的单元541向其输入的数据,并将其处理结果前向馈入到输出层530的单元 543。输出层530的单元543同样地处理其各自的输入数据和输出结果。
现在参见图6,以系统框图的形式例示单层祌经网络600的一个实施例。所描 述的神经网络600包括输入层610和输出层620。单层这一名称来自于输入层610 和输出层620之间的单层连接630。正如在多层神经网络中,每个层包括都一个或 多个神经元641和642,其各自接收一个输入的;关于某种预定义函数以及可选权 重或偏置处理该输入;并且提供一个输出。每层的单元经由若干连接630而相互连 接。输入层610是最初接收待分级的输入数据的层。通常,输入数据被结构化,以 使得关注的若干属性被定义且每个属性都有关联值。通常,且在很多情况中优选, 输入层610的配置是使得该层的单元数量等于待处理数据的所关注的属性数量。输 入层610中的每个单元641随后将会处理输入数据的单个属性并将其处理结果前向 馈入到隐蔽层620的单元642。输出642层的单元或诸单元620处理其各自的输入 数据并输出结果。
在分级查询搜索结果的学习系统的情况中,属性或特征向量可以从査询和搜 索结果(例如, 一个文档)两者中导出。每个特征向量可以是依赖于特定属性的一 组数字,例如,査询中的词、结果的标题、结果中特定词的出现次数以及查询或结 果的任意其他特征。特征向量是单个査询文档对的结果。
现在转向图7,以系统框图的形式描述示例单元700。单元700包括依照被预 先定义的过程执行数据处理的主体710。通常该进程具有激活函数720的形式。可 被利用的指定激活函数很大程度上是实现选择问题,但通常具有反曲(sigmoidal) 函数的形式。
输入740把数据馈入到主体710中以供依照这一预定义函数进行处理。也被 称为参数的权重或偏置750也被描述为到单元700的主体710中的输入,尽管还可 以使用其他加权或偏置方法,如在单元700的主体710里的变量。输出760是通过激活函数传递被累加的输入和偏置的结果。
如上所述,利用的指定激活函数主要是给定应用程序中的实现选择问题。神 经网络中的每个单元都具有唯一的激活函数是可能的。然而,典型的情况是,输入 和隐蔽层里的单元是具有相同的激活函数而输出层使用不同的函数。再次,是否使 用不同的函数根本上是实现选择。
为了构造并配置所讨论的神经网络类型,考虑若干因素。创建或选择适当的 激活函数和阈值。定义输入数据格式。确定单元和层的数量以及那些单元和层的互 连拓扑结构。当完成构造时,网络被训练并测试。
已经关于一些组件之间的交互作用描述了上述系统。应该明白,此类系统和 组件可以包括在此所指定的那些组件或子组件、所指定组件或子组件中的一些和/ 或另外的组件。子组件也可以被实现为在通信上被耦合到其他组件而不是被包括在 父组件中的组件。另外,应该注意, 一个或多个组件可以被组合成提供集合功能性 的单个组件,或者被分割成若干子组件。诸组件也可以与在此未具体描述但本领域 的技术人员已知的一个或多个其他组件交互。
此外,应该明白,以上公开的系统以及以下方法的不同部分可以包括或包含 基于人工智能或知识或规则的组件、子组件、进程、装置、方法或机制(例如,支 持向量机、神经网络、专家系统、贝叶斯信任网络、模糊逻辑、数据融合引擎、分 类器等)。此类组件和其他组件可以自动化被执行的特定机制或进程,由此使得系 统和方法的诸部分变得更加自适应、高效及智能。
考虑到以上描述的示例性系统,参考图8-10的流程图将可以更好地理解依照 所公开的主题实现的方法。尽管出于简化解释的目的,各方法被显示和描述为一系 列的框,但应该理解和明白,所要求保护的主题不受框的顺序所限,因为一些框能 够以与在此所叙述和描述所不同的顺序发生和/或与其他框同时发生。而且,实现 以下所描述的方法并非需要全部例示的框。
另外还应该明白,下文以及本说明书全文中所揭示的方法可以被存储在制品 上以便于把此类方法传送和传输给计算机。所使用的术语制品旨在包含可以从任何 计算机可读设备、载体或介质访问的计算机程序。
图8例示用于准备学习系统以供操作的方法800。处理从开始框802开始,并 行进至在其中学习系统被训练的处理框804。在处理框806,使用验证数据测试学 习系统。在判定框808,做出学习系统在验证数据上的性能可以是否充分的判断。 如果性能不充分,处理返回到处理框804,并且学习系统继续训练。如果学习系统的性能充分,则处理行进至在其中学习系统进入操作阶段且可以由用户使用的处理
框810。可以在进入操作阶段之前固定学习系统的操作参数。处理在框812结束。 图9例示用于训练具有任意的费用函数的学习系统的方法900。关于利用神经 网络的分级系统描述该方法。然而,该方法不限于包括神经网络的分级系统。处理 从开始框卯2开始,并且行进至在其中训练输入被重新排序的处理框904。更具体 地,组成训练组的查询组被完全打乱。完全打乱(shuffling)指这样一个过程在 该过程中,该组内的査询在呈现至神经网络之前被重新排序。因为此类完全打乱可 以协助收敛,所以在开始训练阶段之前以这种方式混洗查询通常是有帮助的。在处 理框906,输入数据作为给定的训练输入被呈现给学习系统。在这一例子中,对于 给定的査询, 一组査询文档对被呈现给学习系统。或者, 一组特征向量被呈现给学 习系统。可以从査询/文档对计算(对给定査询的)每个特征向量(即是说, 一些 特征大体上将会依赖于査询和文档两者)。查询文档对的组包括对于给定査询而要 分级的每个文档。在处理框908,学习系统的输出被用来生成结构化数据。在这一 例子中,决定每个文档的分级。
在处理框910,基于结构化数据(例如,文档的分级)获得每个文档的估计梯 度。估计梯度指示学习系统输出应被调整的量和方向。可以基于一组规则来选择估 计梯度以反映将被用来测试学习系统的费用函数。例如,对于WTA费用函数,顶 端分级结果的估计梯度可以显著大于其余结果的估计梯度。然而,使用大的估计梯 度可能引起会导致其中后续查询的文档分级相反的倒转问题。估计梯度组应该被选 择为使得在顶端分级结果和下一分级结果之间存在显著的间隙或余量。因此,估计 梯度可以被选择为平滑改变。
在处理框912,基于估计梯度组更新学习系统的每个参数或权重。可以为输入 数据计算来自每个训练输入的学习系统参数的改变,并基于所有训练输入的输入数
据而将其更新。在这一例子中,可以为每个査询文档对计算权重的改变。然而,权 重直至所有査询文档对都被处理才被实际上修改,这是因为估计梯度的值本身依赖 于那些权重。作为这一批处理的结果,权重的改变依赖于列表中每个查询文档对。 由于估计梯度依赖于每个文档的得分、标签和分级,因而与为诸如只依赖于单个文 档的得分的分类费用函数指令的某一简单费用函数计算估计梯度相比,该学习系统 可以建模复杂得多的从属性。
在判定框914,做出训练组中是否存在额外査询的判断。如果存在额外查询, 处理返回到处理框906,并且处理该训练组中的下一个查询。如果该训练组中的所
18有査询都已经被处理,则处理行进至判定框916。在判定框916,评估学习系统的 性能以判断是继续训练并返回到处理框904还是在框918结束。在一个实施例中, 基于训练组的平均错误率的改变率来评估性能。
图IO例示用于更新学习系统参数的方法1000。处理从开始框1002开始,并 且行进至在其中估计梯度组被检索的处理框1004。接着,在处理框1006,有关学 习系统参数的当前值被检索。在处理框1008,基于估计梯度的组以及对于每个文 档或结果从学习系统输出的得分,来更新该参数。在判定框1010,做出学习系统 中是否存在额外参数要被更新的判断。如果存在,则处理返回到处理框1006并且 检索下一参数的当前值。如果没有另外的参数要更新,处理在框1012结束。
为给所公开的主题的各方面提供上下文,图11和12以及下列讨论旨在提供 可以在其中实现所公开主题的各方面的合适计算环境的简要、概括的描述。尽管前 面已经在运行在一个或多个计算机上的计算机程序的计算机可执行指令的一般上 下文中描述本发明,然而本领域内的技术人员将认识到,所公开的系统和方法也可 以和与其他程序模块结合实现。 一般地,程序模块包括执行特定任务和/或实现特 定抽象数据类型的例程、程序、对象、数据结构等等。而且,本领域内的技术人员 将会理解,本发明的方法可以与其他计算机系统配置一起实施,包括单处理器或多 处理器计算机系统、小型计算设备、大型计算机以及个人计算机、手持式计算设备 (例如,个人数字助理(PDA)、电话、表等)、基于微处理器的或可编程的消费 性或工业电子品等等。也可以在分布式计算环境中实践所例示的方面,在这些分布 式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。然而,所公
开主题的一些方面,如果不是全部方面,可以在独立计算机上实施。在分布式计算 环境中,程序模块可被置于本地或远程的存储器设备中。
参见图11,用于实现在此所公开各方面的示例性环境1110包括计算机1112 (例如,台式计算机、膝上型计算机、服务器、手持设备、可编程消费性或工业电 子品等)。计算机1112包括处理单元1114、系统存储器1116和系统总线1118。 系统总线1118把包括但不限于系统存储器1116的系统组件耦合到处理单元1114。 处理单元1114是可以获得的各种微处理器中的任何一种。双微处理器和其他多处 理器架构也可以被用作处理单元1114。
系统总线1118可以是包括存储器总线或存储器控制器、外围总线或外部总线 和/或局部总线在内的若干总线结构类型中的任一种,这些总线结构类型使用各自 可获得的总线架构中的任一种,包括但不限于11位总线、工业标准体系结构(ISA)、微通道体系结构(MCA)、扩展ISA (EISA)、智能驱动器电子电路(IDE)、 VESA局部总线(VLB)、外围组件互连(PCI)、通用串行总线(USB)、高级 图形端口 (AGP)、个人计算机存储器卡国际协会总线(PCMCIA)以及小型计算 机系统接口 (SCSI)。
系统存储器1116包括易失性存储器1120和非易失性存储器1122。基本输入/ 输出系统(BIOS)存储在非易失性存储器1122中,它包含比如在启动过程中帮助 在计算机1112内的元件之间传输信息的基本例程。作为例示而非限制,非易失性 存储器1122可以包括只读存储器(ROM)、可编程只读存储器(PROM),电可 编程只读存储器(EPROM)、电可擦除只读存储器(EEPROM)或闪速存储器。 易失性存储器1120包括用作外部高速缓冲存储器的随机存取存储器(RAM)。作 为例示而非限制,能够以许多形式获得RAM,如同步RAM(SRAM)、动态RAM
(DRAM)、同步DRAM (SDRAM)、双倍数据率SDRAM (DDR SDRAM)、 增强SDRAM (ESDRAM) 、 Synchlink DRAM (SLDRAM)和直接Rambus RAM
(DRRAM)。
计算机1112也包括可移动的/不可移动的、易失性的/非易失性计算机存储介 质。例如,图11例示盘存储1124。盘存储1124包括但不限于,诸如磁盘驱动器、 软盘驱动器、磁带机、Jaz驱动器、Zip驱动器、LS-100驱动器、闪速存储器卡或 存储器棒等设备。另外,盘存储1124可以分离的或与其他存储介质组合的存储介 质,包括但不限于光盘驱动器,诸如致密盘ROM设备(CD-ROM)、可记录的 CD驱动器(CD-R驱动器)、可重写的CD驱动器(CD-RW驱动器)或数字多用 途盘ROM驱动器(DVD-ROM)。为了便于把盘存储设备1124连接到系统总线 1118,通常使用可移动的或不可移动的接口,如接口1126。
应该明白,图11描述在用户和适当的操作环境1110中所描述的基本计算机 资源之间用作中介的软件。此类软件包括操作系统1128。可以被存储在盘存储1124 上的操作系统1128控制并分配计算机系统1112的资源。系统应用程序1130通过 存储在系统存储器1116中或盘存储1124上的程序模块1132和程序数据1134利用 操作系统1128的资源管理。应该明白,本系统和方法可以与各种操作系统或操作 系统的组合实现。
用户通过输入设备1136把指令或信息输入到计算机1112中。输入设备1136 包括但不限于定位设备,诸如鼠标、跟踪球、指示笔、触摸板、键盘,麦克风、操 纵杆、游戏垫、碟形卫星天线、扫描仪、电视调谐器卡、数码相机、数码录像机、
20web照相机等等。这些和其他输入设备经由接口端口 1138通过系统总线1118连接 到处理单元1114。例如,接口端口 U38包括串行端口、并行端口、游戏端口和通 用串行总线(USB)。输出设备1140使用与输入设备1136相同类型的一些端口。 因此,例如,USB端口可以用来给计算机1112提供输入,把来自计算机1112的 输出信息提供给输出设备1140。提供输出适配器1142以例示存在一些输出设备 1140如显示设备(例如,平板和CRT)、扬声器和打印机,以及需要特别适配器 的其他输出设备1140。作为例示而非限制,输出适配器1142包括提供输出设备1140 和系统总线1118之间的连接装置的视频和音频卡。应该注意,其他设备和/或设备 系统提供输入和输出能力,如远程计算机1144。
计算机1112可以工作在使用到一个或多个远程计算机如远程计算设备1144 的逻辑连接的网络化环境中。远程计算机1144可以是个人计算机、服务器、路由 器、网络PC、工作站、基于微处理器的装置、对等设备或者其他普通网络节点等 等,且通常包括许多或者所有上述与计算机1112相关的元件。为简明起见,只与 远程计算机1144 一起例示存储器存储设备1146。远程计算机1144逻辑上通过网 络接口 1148被连接到计算机1112,然后物理上经由通信连接1150连接。网络接 口 1148包含通信网络如局域网(LAN)和广域网(WAN) 。 LAN技术包括光纤 分布数据接口 (FDDI)、铜缆分布数据接口 (CDDI)、以太网/IEEE 802.3、令牌 环/IEEE 802.5等等。WAN技术包括但不限于点对点链路、像综合服务数字网络
(ISDN)及其变种的电路交换网络、分组交换网络和数字用户专线(DSL)。
通信连接1150是指被用于把网络接口 1148连接到总线1118的硬件/软件。为 了说明的清晰性,通信连接1150被示出为在计算机1112里,但也可以位置于计算 机1112。仅出于示例性目的,连接到网络接口 1148所需要的硬件/软件包括内置和 外置技术,如包括一般的电话等级调制解调器、缆线调制解调器、电力线调制解调 器和DSL调制解调器、ISDN适配器和以太网卡或组件在内的调制解调器。
图12是所公开的系统可以与之交互的示例性计算环境1200的示意性框图。 系统1200包括一个或多个客户端1210。(诸)客户端1210可以是硬件和/或软件
(例如,线程、进程、计算设备)。系统1200也包括一个或多个服务器1230。因 此,系统1200可以对应于两层客户端服务器模型或多层模型(例如,客户端、中 间层服务器、数据服务器)以及其他模型。(诸)服务器1230可以是硬件和/或软 件(例如,线程、进程、计算设备)。在客户端1210和服务器1230之间的一种可 能的通信能够以适合在两个或多个计算机进程之间传输的数据分组的形式进行。系统1200包括可以用来促进(诸)客户端1210和(诸)服务器1230之间通信的通 信框架1250。(诸)客户端1210工作时被连接到一个或多个可以用来存储(诸) 客户端1210的本地信息的客户端数据存储1260。同样地,(诸)服务器1230工 作时被连接到一个或多个可以用来存储(诸)服务器1230的本地信息的服务器存 储1240。
以上所已经描述的内容包括所要求保护的主题的方面的例子。当然,出于描 绘所要求保护的主题的目的而描述每一个可以想到的组件或方法的组合是不可能 的,但本领域内的普通技术人员应该认识到,所要求保护的主题的许多进一步的组 合和排列都是可能的。因此,所要求保护的主题被规定为包括所有这些属于所附权 利要求书的精神和范围内的改变、修改和变动。此外,在详细描述或权利要求书中 用到术语"包含"、"具有"的范围内,此类术语被规定为以类似于术语"包括" 的方式包括在内,此处的"包括"作为过渡词在权利要求书中使用时做出解释。
权利要求
1. 一种用于依照不可微分费用函数训练机器学习系统来结构化数据的方法,包括从一组输入数据生成结构化数据;至少部分基于所述结构化数据以及上述费用函数的至少一个要求,获得至少一个估计梯度;以及基于所述至少一个梯度,更新所述机器学习系统的至少一个参数。
2. 如权利要求l所述的方法,还包括开发基于所述不可微分费用函数获得估 计梯度的至少一个规则,所述至少一个规则被用于获得所述至少一个估计梯度。
3. 如权利要求l所述的方法,还包括测试所述机器学习系统以确定是否继续 训练所述系统。
4. 如权利要求l所述的方法,所述机器学习系统是神经网络。
5. 如权利要求4所述的方法,所述神经网络是单层神经网络。
6. 如权利要求l所述的方法,所述机器学习系统包括可微分函数。
7. 如权利要求l所述的方法,所述至少一个数据对象是网页、文本文件、图 像、音频数据、视频数据和字处理文件的至少其中之一。
8. 如权利要求l所述的方法,所述费用函数是赢者通吃(WTA)、归一化折 减累积增益测量(NDCG)、平均分级倒数(MRR)、在ROC曲线下的面积、平 均准确率和成对错误计数的至少其中之一。
9. 一种依照不可微分费用函数结构化数据的机器学习系统,包括 从输入数据生成结构化数据的学习组件;估计梯度组件,其至少部分基于所述结构化数据和所述不可微分费用函数而 获得至少一个估计梯度;以及参数组件,其至少部分基于所述至少一个估计梯度更新所述机器学习系统的 至少一个参数。
10. 如权利要求9所述的系统,还包括规则组件,其包含基于所述费用函数 的至少一个要求以获得估计梯度的至少一个规则。
11. 如权利要求9所述的系统,还包括估计梯度数据存储,其包含所述至少 一个估计梯度的所述值。
12. 如权利要求9所述的系统,所述学习组件是神经网络。
13. 如权利要求12所述的系统,所述神经网络是单层神经网络。
14. 如权利要求9所述的系统,所述学习组件包括可微分函数。
15. 如权利要求9所述的系统,所述输入数据是网页、文本文件、图像、音频数据、视频数据和字处理文件的至少其中之一。
16. 如权利要求9所述的系统,所述费用函数是赢者通吃(WTA)、归一化折减累积增益测量(NDCG)、平均分级倒数(MRR)、在ROC曲线下的面积、平均准确率和成对错误计数的至少其中之一。
17. —个用于训练机器学习系统的系统,包括用于从一组数据对象生成结构化数据的装置;至少部分基于所述结构化数据和所述不可微分费用函数以获得至少一个估计梯度的装置;以及基于所述至少一个估计梯度以更新所述机器学习系统的至少一个参数的装置。
18. 如权利要求17所述的系统,还包括用于开发基于所述费用函数以获得估计梯度的至少一个规则的装置,所述至少一个规则被用于获得所述至少一个估计梯度。
19. 如权利要求17所述的系统,所述机器学习系统包括可微分函数。
20. 如权利要求17所述的系统,所述机器学习系统是神经网络。
全文摘要
本发明涉及用于训练机器学习系统的系统和方法。许多费用函数是不平滑或不可微分的,并且在机器学习系统的训练期间不能被容易地使用。机器学习系统可以至少部分基于由该学习系统生成的已分级或排序的结果而包括一组估计梯度。该估计梯度可以被选择以反映费用函数的需求,并用来代替费用函数以在学习系统的训练期间用于确定或修改该学习系统的参数。
文档编号G06N3/08GK101536020SQ200680025778
公开日2009年9月16日 申请日期2006年7月6日 优先权日2005年7月18日
发明者C·J·博格斯, Y·E·阿吉彻里 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1