CN1711536A - 基于相关词的聚类描述文档的方法和装置 - Google Patents
基于相关词的聚类描述文档的方法和装置 Download PDFInfo
- Publication number
- CN1711536A CN1711536A CNA2003801030451A CN200380103045A CN1711536A CN 1711536 A CN1711536 A CN 1711536A CN A2003801030451 A CNA2003801030451 A CN A2003801030451A CN 200380103045 A CN200380103045 A CN 200380103045A CN 1711536 A CN1711536 A CN 1711536A
- Authority
- CN
- China
- Prior art keywords
- words
- node
- cluster
- active
- nodes
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims description 94
- 230000000694 effects Effects 0.000 claims description 61
- 230000008569 process Effects 0.000 claims description 36
- 238000003860 storage Methods 0.000 claims description 26
- 238000010276 construction Methods 0.000 claims description 15
- 230000009194 climbing Effects 0.000 claims description 8
- 238000010304 firing Methods 0.000 claims description 8
- 230000008859 change Effects 0.000 claims description 6
- 238000013138 pruning Methods 0.000 claims description 3
- 150000001875 compounds Chemical class 0.000 description 37
- 238000009826 distribution Methods 0.000 description 28
- 230000006870 function Effects 0.000 description 19
- 241000406668 Loxodonta cyclotis Species 0.000 description 17
- 238000012545 processing Methods 0.000 description 17
- 238000005457 optimization Methods 0.000 description 16
- 238000004364 calculation method Methods 0.000 description 12
- 239000012634 fragment Substances 0.000 description 9
- 239000013598 vector Substances 0.000 description 9
- 230000008901 benefit Effects 0.000 description 8
- 230000004913 activation Effects 0.000 description 7
- 238000013459 approach Methods 0.000 description 7
- 238000012549 training Methods 0.000 description 7
- 239000000203 mixture Substances 0.000 description 6
- 230000001960 triggered effect Effects 0.000 description 6
- 230000003993 interaction Effects 0.000 description 5
- 241000282372 Panthera onca Species 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 241000282414 Homo sapiens Species 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 230000015572 biosynthetic process Effects 0.000 description 3
- 230000006835 compression Effects 0.000 description 3
- 238000007906 compression Methods 0.000 description 3
- 238000010411 cooking Methods 0.000 description 3
- 230000036961 partial effect Effects 0.000 description 3
- 238000003786 synthesis reaction Methods 0.000 description 3
- 230000009466 transformation Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 239000003795 chemical substances by application Substances 0.000 description 2
- 230000005284 excitation Effects 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 230000001343 mnemonic effect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000002441 reversible effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000001308 synthesis method Methods 0.000 description 2
- 230000008685 targeting Effects 0.000 description 2
- 206010003805 Autism Diseases 0.000 description 1
- 208000020706 Autistic disease Diseases 0.000 description 1
- 241000282412 Homo Species 0.000 description 1
- 241001465754 Metazoa Species 0.000 description 1
- 240000007594 Oryza sativa Species 0.000 description 1
- 235000007164 Oryza sativa Nutrition 0.000 description 1
- XCWPUUGSGHNIDZ-UHFFFAOYSA-N Oxypertine Chemical compound C1=2C=C(OC)C(OC)=CC=2NC(C)=C1CCN(CC1)CCN1C1=CC=CC=C1 XCWPUUGSGHNIDZ-UHFFFAOYSA-N 0.000 description 1
- 230000003213 activating effect Effects 0.000 description 1
- 230000004931 aggregating effect Effects 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000002902 bimodal effect Effects 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 235000014510 cooky Nutrition 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 239000002360 explosive Substances 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000003121 nonmonotonic effect Effects 0.000 description 1
- VIKNJXKGJWUCNN-XGXHKTLJSA-N norethisterone Chemical compound O=C1CC[C@@H]2[C@H]3CC[C@](C)([C@](CC4)(O)C#C)[C@@H]4[C@@H]3CCC2=C1 VIKNJXKGJWUCNN-XGXHKTLJSA-N 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000135 prohibitive effect Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 235000009566 rice Nutrition 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000010561 standard procedure Methods 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/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/35—Clustering; Classification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/31—Indexing; Data structures therefor; Storage structures
- G06F16/313—Selection or weighting of terms for indexing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/35—Clustering; Classification
- G06F16/353—Clustering; Classification into predefined classes
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99933—Query processing, i.e. searching
- Y10S707/99935—Query augmenting and refining, e.g. inexact access
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99943—Generating database or data structure, e.g. via user interface
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Machine Translation (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明的一个实施例提供了一种根据概念上相关的词聚类来描述文档的系统。在收到包含一组词的文档后,所述系统选择概念上相关的词的“候选聚类”,其与所述这组词相关。这些候选聚类是使用一个模型选择的,该模型解释如何从概念上相关的词聚类生成多组词。然后,所述系统构造一组分量以描述所述文档,其中该组分量包括候选聚类的分量。该分量组中的每个分量指出相应的候选聚类与所述这组词的相关程度。
Description
技术领域
本发明涉及对文本文档执行查询的技术。更具体地说,本发明涉及一种基于概念上相关的词的聚类(clusters)来描述文本文档的方法和装置。
背景技术
以捕捉文本的基本含义即语义的方式来处理文本是经常执行的任务,但对其理解不足。这个功能最通常是在搜索引擎中执行——搜索引擎试图将某个资料档案库中的文档与用户的查询相匹配,有时它也被其他类似图书馆的信息源使用,例如用于查找具有相似内容的文档。通常,理解文本的语义是这种系统的一个非常有用的子组件。遗憾的是,过去编写的大多数系统只具有初步的理解,仅仅关注在文本中使用的词,而不是词背后的含义。
作为一个例子,让我们考虑一个有兴趣查找在加利福尼亚的帕洛阿尔托市(palo-alto)的烹饪课程(cooking class)的用户的行为。这个用户可能把这组词“cooking classes palo alto”键入一个通用的搜索引擎。然后该搜索引擎典型地在网页上查找这些词,并把那个信息和其他关于这种网页的信息合并,而将候选结果返回给该用户。目前,如果文档有“cooking class palo alto”这些词,那么有好几个先进的搜索引擎都不会找到它,因为它们不理解词“class”和“classes”是相关的,因为一个是另一个的子部分即词干。
已经尝试了具有词干组件的原型系统,但没有任何实际的成功。这是因为确定一个词干能否用在特定的上下文中是个困难的问题。这可能是由文本中其他邻近的词、而不是由要作为词干的词自身来确定的。例如,如果某人在查找詹姆士·邦德的电影“for your eyes only”,返回带有词“for your eye only”的页面的结果可能看起来并不好。
通常,现有的搜索系统和其他这类语义处理系统不能捕获文本背后的许多含义。
因此,所需要的是一种处理文本的方法和装置,其处理方式有效地捕获该文本内的基本语义含义。
发明内容
本发明的一个实施例提供了一种根据概念上相关的词的聚类来描述文档的系统。在收到一个包含一组词的文档后,所述系统便选择与这组词相关的概念相关词的“候选聚类”。这些候选聚类是使用一个模型选择的,该模型解释如何从概念相关词的聚来生成各组词。然后,所述系统构造一组分量(比如向量)来描述这个文档,其中该组分量包括候选聚类的分量。在上述这组分量中的每个分量指出一个相应候选聚类与这组词相关的程度。
在这个实施例的一个变例中,所述模型是一个概率模型,该模型包含表示词及概念相关词的聚类的随机变量的节点。
在另一变例中,在上述这组分量中的每个分量指出相应的候选聚类在生成这组词时的活动程度。
在进一步的变例中,所述概率模型中的各节点是通过加权链接而被耦合在一起的。如果所述概率模型中的一个聚类节点激发(fire),那么从该聚类节点到另一节点的加权链接即能导致其他节点激发。
在进一步的变例中,如果一个节点有多个活动的父辈节点,那么该节点不激发的概率是来自不激发的活动父辈节点的各链接的概率之积。
在进一步的变例中,所述概率模型包括一个通用节点,该通用节点总是活动的并且具有对所有聚类节点的加权链接。
在这个实施例的一个变例中,所述系统通过构造证据树来选择候选聚类。这包括从和上述这组词关联的终端节点开始,而随后反向链接到达父聚类节点。所述系统使用这个证据树来估计在生成这组词时,各个父聚类节点是活动的可能性。所述系统随后基于其估计的可能性,选择一个父聚类节点作为候选聚类节点。
在这个实施例的一个变例中,在生成所述这组词时,估计一特定父辈节点是活动的可能性可以包括研究:该特定父辈节点是活动的无条件概率;假设该特定父辈节点的父辈节点是活动的,该特定父辈节点是活动的条件概率;及假设该特定父辈节点的子节点是活动的,该特定父辈节点是活动的条件概率。
在另一变例中,研究上述条件概率包括研究在各个节点之间的链接上的权重。
在另一变例中,在生成上述这组词时,估计一特定父辈节点是活动的可能性包括在估计过程中标识终端节点,以确保终端节点不会被分解成估计值超过一次。
在另一变例中,构造所述证据树包括从该证据树剪除不可能的节点。
在这个实施例的一个变例中,在构造所述这组分量期间,在生成所述这组词时,候选聚类的活动程度是通过计算候选聚类在生成这组词时是活动的概率确定的。
在这个实施例的一个变例中,在构造上述这组分量期间,在生成所述这组词时,候选聚类的活动程度是通过把候选聚类在生成所述这组词时是活动的概率与该候选聚类的活动值相乘来确定的,其中所述活动值指示有多少从所述候选聚类到其他节点的链接可能激发。
在这个实施例的一个变例中,构造上述这组分量包括使这组分量归一化。
在这个实施例的一个变例中,构造上述这组分量包括逼近一特定候选聚类在所述概率模型的各个状态是活动的概率,这些状态可能已经生成上述这组词。
在另一变例中,逼近所述概率包括选择所述概率模型的状态,该状态可能已经在所述文档中生成所述这组词,且随后在计算所述特定候选聚类是活动的概率时,只考虑选定的状态。
在另一变例中,选择可能已经生成上述这组词的状态包括随机选择所述概率模型的起始状态,然后执行从该起始状态开始的爬山(hill-climbing)运算,以达到一个可能已经生成这组词的状态。
在另一变例中,执行所述爬山运算包括周期性地改变单个候选聚类的状态,而不考虑爬山运算的目标函数,以探查所述概率模型的状态,而这些状态通过爬山运算是不能到达的。
在这个实施例的一个变例中,所述文档包括网页或来自查询的一组术语。
附图说明
图1示例了依据本发明实施例的一个概率模型。
图2示例了依据本发明实施例的概率模型的一个状态。
图3示例了依据本发明实施例的一个表示美国各州的模型。
图4示例了依据本发明实施例的全局节点和多个局部网络。
图5示例了局部网络节点和全局模型节点之间的交互作用。
图6示例了依据本发明实施例的一个重构模型。
图7A示例了依据本发明实施例的具有两个布尔节点的一简单网络。
图7B示例了依据本发明实施例、在具有两个布尔节点的简单网络中,推理是如何工作的。
图8示例了依据本发明实施例的一个噪声“或”(noisy-or)网络,其中环状信任传播失败。
图9示例了依据本发明实施例、在一简单会话内部的环状信任传播计算。
图10示例了依据本发明实施例的一个简化局部网络。
图11示例了依据本发明实施例的竞争以触发一终端节点的两个聚类。
图12示例了依据本发明实施例、一个局部概率网络如何在运行时动态处理词典中的复合词。
图13示例了依据本发明实施例、一单个聚类C是如何通过“终端稀疏(terminal sparseness)”而将虚拟消息发布给全局节点。
图14示例了依据本发明实施例、稀疏的链接消息在计算一新全局节点的最佳设置时是如何得到使用的。
图15.1示例了依据本发明实施例的一个信任网络(belief network)。
图15.2A示例了依据本发明实施例的一个示例网络。
图15.2B示例了依据本发明实施例的一个替代性示例网络。
图16示例了依据本发明实施例的系统输出。
图17示例了依据本发明实施例的更多系统输出。
图18示例了依据本发明实施例的更多系统输出。
图19示例了依据本发明实施例的更多系统输出。
图20示例了依据本发明实施例的搜索结果。
图21示例了依据本发明实施例的在描述文档时所涉及的数据结构。
图22给出了依据本发明实施例的描述过程的流程图。
图23给出了依据本发明的实施例来选择候选聚类的过程的流程图。
图24给出了依据本发明的实施例来逼近候选聚类的概率的过程的流程图。
图25示例了如何依据本发明实施例来选择概率模型的状态。
具体实施方式
以下给出的描述为的是使本领域的技术人员能够制作和使用本发明,并且以下描述是在特定应用及其要求的背景下提供的。对本领域的技术人员来说,对所公开的各实施例进行各种修改是显而易见的,而且本说明书中所规定的通用原则在不偏离本发明的精神和范围的情况下,尚可应用于其他实施例和用途。因此,本发明不应限于所示实施例,而是应与在本说明书中公开的原理和特征一致的最广泛的范围一致。
在本详细描述中所描述的数据结构和代码典型地是存储在计算机可读存储介质上的,该介质可以是能够存储由计算机系统使用的代码和/或数据的任何设备或介质。这包括但不限于:磁存储和光存储设备,如磁盘、磁带、CD(光盘)和DVD(数字通用光盘或数字视频光盘);以及包含在传输介质(有或没有解调信号的载波)中的计算机指令信号。例如,上述传输介质可包括通信网络,比如因特网。
系统
本发明的一个实施例提供一种系统,该系统通过学习文本的说明模型来学习概念。在所述系统看来,小的文本块是通过执行概率网络,而以非常简单但异常有效的方式生成的。所述系统通过分析许多小文本块的例子来学习这个网络的各参数。
所述系统的一个实施例认为,文本块中的重要信息便是文本中所使用的词(和复合词)。例如在查询“cooking classes palo alto”时,上述的词是“cooking”和“classes”,而复合词由简单的复合词“palo alto”组成。将复合词与词区分开,是在组合性基础上进行的。例如,“cookingclasses”不是一个复合词,因为它既与烹饪(cooking)、又与课程(classes)有关。但“palo alto”就不是分别与“palo”和“alto”有关的。有时这难以区分,但和完全不猜测相比,好的猜测能使这种系统变得更好。
这样说的含义便是,所述系统由于不考虑文本中的词的顺序而简化了文本的分析。例如,本发明的一个实施例不区分上述的“cookingclasses palo alto”和“palo-alto classes cooking”(在本说明书中我们使用短划线来连接复合词的组成部分)。我们将把词和复合词都称为“终端(terminal)”。(后面我们将看到这是因为在我们的模型世界中,它们和生成词的概念相反,它们不生成词。)这种简化意味着所述系统把文本的片断当成一组终端。
作为一组终端的文本生成的概率模型
让我们看看将文本作为一个词的集合来生成的系统。图1显示了一个这样的模型。图中的圆圈被称为模型节点。这些节点表示随机的变量,每个变量模拟有或没有概念或终端。在这个模型中我们正在考虑的仅有的终端是“大象”、“灰色”和“天空”。有两个概念,被称为C1和C2(因为它们被用于生成相关的词,所以概念有时被称为聚类)。
这个模型举例来说可用于解释为什么词“灰色”和“天空”经常一起出现,为什么词“灰色”和“大象”经常一起出现,但为什么词“大象”和“天空”极少一起出现。这是因为人们用这些词来生成文本时,他们的头脑中有想法。提出所述系统的概念,为的是建模人脑中在生成文本之前的想法。
注意在这个图的顶部有一个没有名字的较暗节点。这是一个通用的节点U,它总是活动的。当建模文本时,它总是活动的,且所有的概念都来自于它。退出任何概念的箭头被称为“链接”。这些链接暗示,当用户想到一个概念时,他们可能想到另一个概念或在后面写下另一个终端。例如,概念C1链接到词“灰色”和“大象”。这意味着用户想到C1之后,他们经常写出词“大象”和/或“灰色”。尤其是,链接上的数字是重要的。它们表示某些事件的概率。C1和“大象”之间的链接意味着在想到C1之后,用户想到词“大象”的概率是0.5。这些数字通常被称为链接上的“权重”。
这个模型可以被使用或“执行”从而生成文本。当我们这样做时,我们从通用节点(通常称为U)开始,并认为它存在于生成者的头脑中。我们将经常说节点是“活动的”或节点已经“激发”来表示这一点。对于概念来说,激发意味着这个概念的想法是活动的,并能够激发终端。对于终端来说,激发的意思是指终端存在于所要生成的文本中。
让我们浏览如何方能生成一个这种文本块的一个例子。在图1的例子中,我们将以假设通用节点是活动的来开始。然后C1将以0.1的概率激发。在这一点上,某个随机过程将会决定C1是否激发。对于这个随机过程,你可以掷骰子或使用任何随机信息。通常,如果这发生在一个计算装置上,那么就会使用随机数生成器。只要我们能有某种方式产生决定,即10次中的9次为否(0.9)而10次中的1次为(0.1),那么许多方法都是适当的。如果结果为是,概念C1便被激活。如果结果为否,概念C1即不被激活。类似的过程应用于C2。
现在我们将要为我们的例子假设:随机数生成器为通用节点→C1的链接产生是(YES),而为通用节点→C2的链接产生否(NO)。在这个点上,C1是活动的。当一个概念是活动的,我们就可以随后为其他的概念或终端选取随机数,其中这些概念或终端具有源自该活动概念的链接。在这个例子中,现在词“大象”和“灰色”所具有的变成活动的概率是0.5和0.4。现在让我们假设,我们获得了更多的随机数(为了做个简单的比喻,现在我将这称为掷骰子),并且决定大象和灰色都是活动的。这就意味着,我们有了我们的文本块,它就是词“大象”和“灰色”。注意,在本发明的一个实施例中,因为词的顺序是不被建模的,所以我们不能将“灰色大象”与“大象灰色”区分开(除非它们组成一个复合词)。通过这种方式,我们便生成了一个小文本块。
图2显示了图1中详示的模型的这种特定执行。在本图中,我们看到概念C1变成为活动的——我们通过使该节点变暗来图形化地说明这一点,并且词“大象”和“灰色”变成为活动的。从考查整个系统以查看它是否正确工作的观点来说,图形化地查看一个文本块的模型的执行是重要的,并且我们稍后会用到它。
这看上去要有许多工作来生成一个“灰色大象”。但请注意我们所产生的词对作为人的我们来说具有某些含义。这是因为大象就是灰色的。就某些小的方面而言,即使图1所示的这个模型也捕捉了一点关于世界的状态。如果仅停留在表面上,这个模型捕捉了“大象”和“灰色”、“灰色”和“天空”这些词之间的相关性,但没有捕捉“大象”和“天空”之间的相关性。
我们的系统学习中间概念、链接和链接权重——为的是解释在小文本块中同时出现的词和复合词。此外,为了能够更好地生成和解释各种大小的文本,其生成的模型稍微比上述模型复杂(例如,查询常常是2到3个词,而文档则是大约1000个词)。
为各种大小的文本进行调整
由于各种原因,上述简单模型的类型稍稍不足以处理文本。对于这一点的简单解释是,每个概念都产生特定数量的词,但如果链接上的权重小的话——举例来说,便会发现要产生许多的词更加困难得多。理想的是,举例来说,一个概念能够从其指向的终端产生几个或许多词。
图3显示了表示美国各州的一个概念例子。按照我们前面的模型,该概念能够激发表示50个州中的每个州的终端,每个具有1/50的概率。现在,对于这个模型单独生成词“California”不是不可能的。那个概率大约是(1/50)*(49/50)49,即大约为0.7%。对这个概念来说,激活所有这些州的概率是(1/50)50,相当地小。但是,如果我们开发这样一个概念,该概念包含美国的各州的想法,那么我们就希望它解释其中出现所有这些州的文本块。
为了解决这一问题,在它激发其他终端之前,每个概念都拾取一个激活级别。从概念上说,这个激活级别选择要从这个概念取得“多少个”终端。注意,这个激活级别不是我们模型的一个质量值。实际上,只是在执行模型时才选择它。激活所做的事情是,它修改这个概念激发其每个终端的概率(但不是其子概念,也就是概念对概念的链接不受激活的影响)。
精确的数字调整可以如下所述。如果一个链接具有权重W,而所述聚类在其执行中选择激活A,且所述链接指向一个概念和一个终端之间,则所述概念便以概率值(1-e-AW)来激发所述终端。其中e是常用的数学数,约为2.71。初一看,这个公式似乎是奇怪的,但它具有以下的优良特性:当W非常小(<0.01)且A是个小的数(比如2)时,概率即大约等于AW——所以这些数一般是易于逼近的。它们具有一种奇怪的指数形式的原因是,概率必须具有上限值1。所以,具有0.02(1/50)的链接权重和100的活动值不会给你2.0的概率。上述指数形式从数学的角度看也具有许多其他优良的理论特性。
在这里,我们已经详述了组成我们模型的几乎所有单个的块。一个细节是,在两个或更多个聚类之间的交互作用试图激发相同的终端或聚类。在此情况下,各个交互作用是彼此独立的。尤其是,结果不激发的概率是每个导致不激发它的原因的概率之积。例如,如果三个聚类C1、C2、C3以权重0.1、0.2、0.3链接到第四个聚类C4,且C1、C2、C3是活动的:C4不激发的概率就是(1-0.1)*(1-0.2)*(1-0.3)或(0.9)*(0.8)*(0.7)或0.504。因此,确实激发的机会就是1-(1-0.1)*(1-0.2)*(1-0.3)或1-0.504=0.496。
我们没有提到的另一件事是用来选取活动值的先验概率。所述模型的学习表明对此并不太敏感。其中所述活动值被约束为
(存在1),而且等于1/Alog*A的概率是在该活动值上的先验概率(其中log*A=AlogAloglogAlogloglogA...)。这仅仅表明对生成文本的目的来说是重要的。对于该目的,由一个基本模型来生成大体上正确数量的词的任何分布应该是足够的。
贝叶斯网络
在这一点上,且在我们继续下去之前,值得讨论我们一直在谈论的模型与称为贝叶斯网络的某种类型的概率模型之间的特定对偶性。
贝叶斯网络是公知的概率建模技术,其中条件独立性是在联合分布中的各种随机变量之间判断的。如同上述模型,贝叶斯网络具有节点和定向链接。这些网络紧凑地表示了在大量随机变量上的联合分布,同时结构化地表示了关于这些变量的条件独立性假设。
在一个贝叶斯网络中,指向一个节点的一组节点被称为其“父辈节点”。通过后面的链接从一个节点可到达的一组节点被称为其“后继节点”或“子节点”;且该结构暗示,一个节点若已知其父辈节点,便是独立于其非后继节点的。因此,整个分布就被编码进已知其父辈节点的一个子节点的条件概率表(没有父辈节点的节点具有其自己的分布)。整个网络的一个特定实例的概率就简单地是已知其父辈节点的每个子节点的概率之积。
贝叶斯网络和我们的模型在以下方面相关,如果在我们模型的执行中,每个节点被认为是一个随机变量,那么在开启的这组节点上的联合分布就正是把我们的模型当成具有噪声“或”(noisy-or)合并功能的贝叶斯网络而产生的分布。噪声“或”条件概率独立于每个父辈节点而开启一个布尔子节点。也就是说,一个子节点是关闭的概率就是每个父辈节点不激发它的概率之积。注意这正是在我们的模型中所使用的合并功能,用来决定链接到一终端的多个活动概念是否激发它。注意,贝叶斯网络自身是更通用的概率模型的一个子类。
学习
在这里,我们已经描述了一个现有的模型是如何能够被用于生成文本的。我们还没有详述这个工作的这几个方面:(1)我们的模型是如何被学习的;(2)我们的模型是如何被用于估计出现于文本中的概念的;(3)在实际情况中,我们的模型是如何被使用的。在本小节,我们将试着详细描述我们的模型是如何被学习的,以及可用于这一目的的各种技术。
在学习文本的生成模型时,在本发明的一个实施例中,必须选择文本的某个来源。在这种选择中的一些考虑是:(1)它应该有紧密相关的词;(2)它应该给出独立的证据,指定我们正在尝试学习的模型(后面更详细地介绍);(3)它应该和不同类型的文本相关。由于这个原因,以下的模型的实施方案使用了来自一搜索引擎的示例性“查询会话”作为其小文本块。我们同样已经在网页和其他文本来源上实施和运行了我们的模型,但为了使本说明更加具体,我们集中于查询会话的分析。
为了更加准确,我们把查询会话(也称为用户会话或会话)定义为单个用户一天在一个搜索引擎上所使用的一组词。通常用户们会搜索相关的材料,在一行中发出关于一个特定主题的若干查询。有时,这些查询与其他主题随机混杂。一个查询会话例子(不是实际的)可能如下所示:
the graduate
dustin hoffman
rain man
autism
cool junk
fast cars
tom cruise nicole kidman
本例中每个查询都是在单独的一行上。注意大多数词在某个方面是相关的。第一个是由Dustin Hoffman演的电影,第三个也是。第二个是Dustin Hoffman本人。第四个是关于电影中所提出的问题。第五个查询“cool junk(极好的旧货)”则与这个会话的主题不相关,第六个“fast cars(快速的汽车)”也是如此。最后一个有一点相关,因为Tom Cruise在Rain Man(雨人)中和Dustin Hoffman一起演出。总的说来,在这样的一小块文本中有许多信息,利用这些信息我们便可得出结论,但也有许多不相关的无用信息。我们系统的主要任务是从无用信息中找出适当的相关性,同时查看大量(数十亿)这样的文本块。
学习一个能够解释在各个查询中同时出现的所有词的概率模型是困难的。注意,在以上对会话的解释中,我们使用了我们所拥有的关于这个世界的一般信息来解释查询会话。这是我们模型所学习的信息的特性,为的是提出一个世界模型,在这个世界模型中,一个上述的会话不是不可能的。以下是这样的一个方案。
假如我们并不了解所述模型是什么,但我们知道存在着大量的概念。概率网络自身便能够被用来表示这种不确定性。可以引入一个节点,该节点表示一个概念与另一概念或一终端之间的每个链接。这些类型的节点被称为全局节点,且它们表示我们关于所述模型自身的不确定性。
这些全局节点和上述的模型节点不同,实际上它们表示关于模型节点和链接的不确定性。现在,对于每块文本(用户会话),我们复制整个模型,创建一个局部网络。每个模型节点复制品被称为局部节点,且这些局部节点表示我们对于一个特定的执行,关于是否存在一个概念的不确定性,其中这个执行导致产生了这块文本。为了学习我们的模型,我们必须考虑关于我们的模型的所有不确定性,并进行某种推理,从而提出一个最好的模型,或一组模型,我们能够使用上述模型来进行进一步的处理。
图4显示了这样一个大型网络看上去可能会是什么样子。在虚线上是全局节点,它们表示关于我们的模型的不确定性。节点U→C1表示在模型中关于U和C1之间的链接权重的不确定性(请记住U是我们对总是活动的通用节点的命名)。类似地,U→T1,C1→C2,C1→T1,依此类推。注意,我们的模型不允许所有节点都链接到所有别的节点。这是因为,为了得到来自通用节点U的所有想法的一致解释,链接结构内的循环是不允许的——例如,概念C1能够导致C2,C2又能够导致C1等等,这使得C1和C2总是相似的,即使U并没有链接到它们。由于这个原因,一个概念只允许被链接到比自己编号更高的概念,而通用概念可链接到所有概念。
现在,在虚线之下是局部网络。在每个网络中,假设一个特定用户会话的各个终端是活动的。注意,我们的模型是被复制用于每个这类会话的。这是因为,对于每个会话而言,我们所观察的仅仅是用户所使用的词,而并不是实际上当这些词出现时,在用户的头脑中活动的那些概念!这里所述的局部节点表示我们关于这些概念的不确定性。因为当用户写下他们所写的每个词时,他们可能一直在想所有的事,所以在每一局部网络中必须研究所有的概念。
现在,局部网络和全局节点是如何相关联的?简单说来,在一个局部网络中,U和C1之间的每个链接是以全局节点(U→C1)居于其间的。在每个局部网络中,U激发C1的概率取决于上述全局节点(U→C1)。在图4所示的局部网络的全概率网络图中,每个全局节点(U→C1)在每个局部网络中都会指向每个C1。因为图4中没有足够的空间,所以图5显示了与一个这样的网络的交互作用。同样,图5仅仅显示了与具有两个概念的模型的交互作用。此图中全局节点(U→C1)和C1之间的链接表示这样的事实:当C1在一个局部会话中激发之前,它需要知道U和全局节点(U→C1)二者的状态。
图6显示了这个模型的稍加重新处理的版本,其中存在变量,用于清楚地显示出是否每个概念触发(trigger)另一概念或终端。注意,一旦它们被投影到我们所感兴趣的原始变量(也就是C1和C2),这两者所表示的联合分布就是相同的。本图中的三角形表示额外的“触发”变量,且因为它们简化了所需的条件概率的数量,所以考虑带有这些三角形的模型常常是有益的。
例如在图6中,U和C2之间的“触发”变量只需要知道U以及(U→C2)的分布,以确定C2从U被激发的概率。类似地,进入C2的另一个触发只需要知道C1和(C1→C2)分布的值。这两个联合比图5的模型中C2节点需要所有4个变量的联合更简单。这主要是因为一个条件概率规范的复杂性随着其必须考虑的元素的数量而以指数上升。
这点值得说得更清楚一些。设想例如一个人进入一种复杂的打赌方案,其中赌的结果取决于10个赛马事件,而每个结果提供不同的回报率。为了传达这个赌,需要210或者说1024个数,因为这就是当同时考虑所有赛事时,不同结果的数量。现在代之以设想同一个人进入10个独立的关于每匹马的打赌,赢或输取决于每匹马。这个赌现在只需要10个数来传达。类似地,当一个条件概率分布必须考虑N个变量时,2N就是所需的复杂性的阶数,且因此便是处理这样一种状态所需的计算复杂性的数量。这就是为什么将触发变量作为这个问题的一种因子是有用的。从这里开始,我们将交替地以触发或非触发的形式来显示我们的局部网络。
仍然必须在这个大型网络中规定最后一件事,以使其从概率上得到良好定义。首先,全局节点需要一个先验分布。也就是说,为了合并关于一个概念链接到特定的另一概念或词的可能性的证据,我们需要了解,我们的什么信任(belief)会是先验的。我们模型的学习表明对这个分布来说不是过于敏感,所以这里有许多事都是可能的,包括使用在非零的链接上的1/1000和在非零的链接上的1/1000的平坦分布。
这是一点题外话和消遣,但为完整起见,让我们在此说明,这并没有完全约束上述变量,因为没有在非零值上施加密度,且仅仅是加权的活动值之积和激发的概率有关系。但是,我们用于选取一个会话中的概念的活动值的启发式法暗示,从所述概念到所有终端的激发的总权重应该大约等于这个概念激发的终端的平均数量除以其在每个会话中能够激发的词的平均数量。同样,设置这些概率的另一种方式取决于在全局节点上所发生的推理的特定方式。事实上,我们只查找一个简化的模型,其中每个全局节点是由一个双峰值分布来表示的,一个是在0处,而一个是在另一个最佳值处。在此情况下,你能够估计,已知这个新链接,则新链接上的先验值大致依赖于网络的科尔莫格洛夫复杂性,那也就是具有这个新链接的模型的简单程度,事实上假设这整个模型实际上从世界的一个解释推导出其自身,其中,如果模型较简单,那么它们便更相似。这里,从一个聚类到一个终端的链接可可能更依赖于该聚类链接到的其他事物的数量,或者链接到该终端的事物的数量,或者是上述这两者。
一旦建立了整个大型网络,就不再有概念上的工作要完成。从理论观点看,在这个网络上进行推理是相当直接的,而且特定足够的计算能力,到达各全局节点的所有分布是直接了当的,它完全指定了所述模型。这里的推理意味着解释所有特定的训练证据(用户会话),并且完全能够在我们的模型上使用该证据的含义。在相似模型上的分布又让我们得以正确地猜到,当特定的文本块是活动的时候哪些概念是活动的,以及其概率。实际上,在模型上的分布让我们能够回答所有关于这种文本的生成的问题。
只剩下一个问题,即规模问题。这个基本问题陈述如下:让我们假设,世界上大约有500万个概念(而且那很少,考虑到有60亿人,并且当谈论他们中的每一个时,你都可能在说不同的事情,所以至少有50亿个概念,但是让我们以假设500万个概念来开始)。让我们假设有100万个终端(它产生比如new-york这样的复合词,那是容易得到的,且其仅仅是英语)。现在,让我们假设,我们希望在50亿个用户会话中训练这个网络。此外,让我们忽略处理连续的随机变量的计算负担(它是相当可观的)。注意,模型节点必须为每个会话复制一次。这意味着整个大型网络将具有:
50亿个会话×(100万个终端局部节点+500万个概念局部节点)=3亿亿(30billion million)个局部终端节点……而且这是容易的部分。现在让我们计算链接。全局模型有500万个节点,其中每个可以链接到100万个终端,每个终端能够在局部网络中被复制50亿次,其中每个随后便具有来自合适的全局节点的一个链接(其翻倍该数字),所以:
100万个终端×500万个聚类×50亿个会话×2=5×1022(50millionmillion billion)个链接!……而且最坏的部分是,正确的推理技术的运用次数是网络大小的指数,所以基本上,完成此任务的这种直接方法是不可实行地昂贵。本说明书的下一节讨论为使这个系统可实现而能够做的和必须做的不同事情。
扩展技术和环状信任传播
在求解我们的大型网络时,我们的第一个问题是,完全的推理是网络大小的指数。这里我们取一些捷径。有一种称为“环状信任传播(loopy belief propagation)”的推理技术(通常称为loopy),该技术围绕一概率网络而以一种快速、即使是不正确的方式来传播证据。它的优点是快速,但缺点是不正确。但它经常证明是各种信任网络的一种良好的近似求解程序。
环状信任传播依赖在一个网络中传输的两种类型的消息,以计算出在一特定网络中的所有节点的边缘分布。向下的消息是那些和链接流一起移动的消息,并且如果已知除了来自目标节点的所有其他证据,则无论在链接的另一端上的节点是什么,它们都在源节点叠加(summarize)信任。向上的消息和链接流的移动方向相反,如果已知目标节点的各种值,它们便告诉目标节点(在概率网络中其也是父辈节点)链接的这一端的概率。
图7A显示了具有噪声“或”(noisy-or)组件的一个简单的两布尔节点网络。这里节点A为真的先验概率是0.1,假如A为真,那么B为真的概率是0.3。现在通过在这个网络上运行环状信任传播,我们就能够确定B为真的概率。A传播一个向下的消息给B,告诉它已知所有其他证据,A相信它自己为真的概率是0.1。B接收这个消息,并自已处理条件概率(噪声“或”),且得出它为真的概率是0.03,我们就完成了。
图7B显示了一个两布尔节点网络,其示出了如何使用向上的消息推理来工作。这里,B上有一个B为真的证据。所以,我们试着确定假定B为真时的A的概率。B给A发送一个向上的消息,这告诉A,如果A为真,那么B才能是真:也就是,假如A为假,那么B了解来自下面的证据的概率是0。因此A必须为真。A接收了这个消息,并把它乘以其先验概率,先验概率是有0.1的可能为真,并得出它必须为真,所以已知所述证据,A为真。
由于以下原因,环状信任传播技术上不是对于推理问题的准确解答。当来自两个不同源的证据到达一个特定的点,它们丢失了关于这些源是否相关的信息。设想以下的例子。三个人A、B、C参与一次谈话。A告诉B说他相信股市下个月会上升。B告诉C相同的信息。在这一点C告诉A说其他人相信股市会上升。环状信任传播的问题是有了这个简单的信任传播系统,A现在不能告诉说C的信任实际是基于A的原始断言,因此来自A的证据循环回到其自身。在稍微更复杂的方法中,环状信任传播在网络中围绕环循环证据,以创建通常准确但有时不准确的解。
当环状信任传播在一个无环的网络上运行时,它是准确的且在等于网络直径的若干步骤内稳定。但当它在一个有环的网络上运行,证据就围绕该网络循环。通常它在一个特定的解上稳定,但不能保证那个解是正确的,或者甚至保证环状信任传播完全稳定。图8实际显示了一个环状信任传播失败的噪声“或”(noisy-or)网络。这里假设D是真,且其唯一的源实际是A,所以推理应该显示A为真。但是环状信任传播为A确定了近似为0.6的值。但是,通常环状信任传播工作得相当好,且我们稍后在该公开文本中考查如何改进它。
这里要提到的额外一点是在这个大型网络上运行环状信任传播的效果很大程度上等同于在数据上运行EM(预期最大值)运算的概念,该运算认为聚类是隐含变量。在EM中,在模型变量上进行初始猜测,然后推断隐含变量的概率,然后更新对模型变量的猜测。这本质上是和环状信任传播相同的计算。两者之间的一个差别是环状信任传播不在其自身反射回来自一个会话的证据,也就是环状信任传播的正确计算为前面的向上消息减少来自全局节点的向下消息,该前面的向上消息是会话在最后一次迭代中发送的。在环状信任传播方法和每次迭代在不同数据块上运行EM的方法之间没有太多的差别。在本说明书的剩余部分,我们在讨论这个过程时将使用术语环状信任传播(loopy)而不是术语EM。
在大型网络中的环状信任传播
环状信任传播消息在大型网络中被用于穿过全局/局部边界。这里全局节点向下传播它们对于自身的信任到一个特定的局部网络——且由于该网络仅仅是10亿分之一,所以通常这仅仅是在各处传播的相同信任。但是,触发节点向上传播网络的概率,如果已知了解关于触发节点的所有其他事情。
图9显示了在特别简单的会话里面发生的环状信任传播计算,且模型只包括一个概念(C1)和一个终端(T1)。注意在这个会话中,我们已经看到终端T1,这是局部节点被暗化的原因。现在,让我们看看围绕这个模型的一些消息是什么。
首先,让我们看向下的消息,其从全局节点(U→C1)到U和C1之间的触发节点。已知其在来自其他会话的环状信任传播的当前迭代中已经整理的数据,这个消息必须报告在(U→C1)节点的状态中的当前信任。传输和计算连续变量上的完整准确分布是禁止的。由于这个原因,在U和C1之间的这个会话中,从(U→C1)到触发节点的向下的消息被简化。不是传输完全的分布,相反它用两个有峰值的离散分布近似这个分布,一个峰值在0处,而另一个峰值则在选定的“最佳值”W处。
在处理这个向下的消息时,我们的系统首先汇编来自其他会话的关于这个全局节点的证据。我们的系统然后为这个节点选取一个最佳的非零值W。它然后把向上的消息翻译成关于节点的存在性的消息,允许其确定在最佳值W和零值处在向下的消息中发送的概率大小。在以计算上可行的方式处理全局节点的离散一连续特性时,这个对来自全局节点的向下的消息的简化是一个优点。
这个简化的来自(U→C1)的向下的消息沿着从(U→C1)发源的链接旁边的小箭头。它被标识为(0.1,1.0)。这意味着最佳值是0.1,且概率是1.0,这个链接存在。因为我们希望所有的网络是部分可解释的,所以我们从不让从U到任何地方的链接的概率小于1.0。另一个向下的消息例子是从(C1→T1)发源的、到局部网络中的C1和T1之间的触发节点的消息。这个消息被标识为(0.2,0.8)。其意味着它有0.8的可能为非零,且当它为非零时,它等于0.2。
现在,让我们试着在这个网络上做一些推理,假设我们知道来自全局节点的向下的消息。有三个触发节点,一个从C1到T1,一个从U到C1,一个从U到T1,它们的概率我们不知道。我们也不知道在这个会话内聚类C1是活动的概率。所有这些可以通过在这个会话上运行环状信任传播来计算。但是在我们浏览这些计算的一个样本前,通过增加(multiply out)两个峰值的分布并再次把它简化成单个峰值的分布,我们假设它实际是(0.16,1.0)的单个消息。现在我们准备好只看小的会话网络。这个简化也是在我们的框架内完成的。
我们能做的一个小假设是,C1上的活动值被设为1。典型地,在运行概率网络时,这个值可通过推理导出。但是,当试着在这些局部网络中推理时,我们的模型假设聚类的活动值等于其在这个网络中可能激发的终端数量。这是我们前面谈论的调整,其处理的事实是只有所述活动值和权重的乘积是有关系的。这个调整是用以下理由进行的,即所述活动值只在数量级内有关系,因此,不应该花费计算时间在最佳地确定它。
现在,我们查看这个网络的简化噪声“或”(noisy-or)模型,同时忽略全局节点。这是因为全局节点输入系统的所有信息能够由聚类和其他聚类或终端之间的噪声“或”上的权重来汇总。这是概率网络中通过把没有其他父辈节点的节点加入到附近的网络来简化去掉这些节点的标准技术。这个简化的局部网络看起来象图10中的网络。这个网络中的链接被标记为0.095、0.095和0.1478。这是因为U触发T1的概率现在等于1-e-0.1,即0.095。记住前面我们说链接应该以近似AW的概率触发结果。这里A是1且W是0.1,且这近似于0.095。同样的应用于C1和到T1的触发节点之间的链接,其是0.1478,即1-e-0.16,近似于0.16。
现在,我们知道T1为真。让我们确定C1导致它的可能性大小。来自U的触发节点发给T1的向下的消息是(0.095,0.905),其中0.095表示节点为真的信任且0.905表示节点为假的信任。注意这个向下的消息的特性完全不同于来自全局节点的向下的消息的特性。这是因为触发节点是布尔变量,而全局节点是连续和离散变量的奇怪混合,其具有在0处的某个概率聚集和在其他点的某个密度,此外这是由两个点的分布近似的,然后进一步简化成单个点的分布。
由于触发节点是布尔节点,所以它只需要向下发送它的一个数,即它为真的概率,另一个数就是1减去第一个数,且在我们的实现中,我们进行这种优化。T1获得这个数,并把假如触发了所述触发节点的T1的概率和假如不触发所述触发节点的T1的概率向上发送给C1端上的触发节点。这个向上的消息是(1.0,0.095)。通常,布尔变量的向上的消息具有两个这样的值,但实际只需要一个,即两者之间的比值(假如无穷大是可表示的数)。现在,从C1到T1的触发节点获得向上的消息(1.0,0.095),但它也有来自以上C1的向下的消息。这个消息是来自C1的(0.095,0.905)。现在,所述触发节点具有它所需要的所有信息。它把来自以上的消息变换成(0.095*0.1478,1-0.095*0.1478)或(0.014,0.986)。这个变换意味着已知它上面的信息,它现在具有自己的信任。现在它把其关于它下面信息的信任按各个分量地相乘,从而得到(0.014*1.0,0.986*0.095)或(0.014,0.09367),然后它把这个归一化为共计为1而得到(0.13,0.87),这是其最终的信任。现在可进行类似的计算以算出这个网络中所有的其他“隐含变量”。
一般,环状信任传播把在其父辈节点上的信任和其子节点在其自身上的信任给节点。它使用其条件概率分布把其父辈节点上的信任转换为其自身上的信任。它现在具有两个自己的信任数,它把其乘以分量状态,然后它归一化为1以获得其自己的信任。在计算这些消息时我们常常做的几个优化是:为了避免下溢,我们在对数空间中进行许多概率计算。这既包括向下的消息也包括向上的消息比。此外,为了实现环状信任传播以使它在节点的父辈节点数目中工作线性的时间,它有助于能够从节点的信任减去一个父辈节点的影响。这是通过特殊的例程完成的,这个特殊的例程为了快速地进行这个传播,其采用N个数并计算这些数的N-1的所有N个乘积。
现在让我们看看向上传给不同特性的全局节点的向上消息。记住,全局节点实际是离散-连续随机变量,其能够取从0到无限大的任何值。让我们设计一个简单的例子,其示出已知链接上的权重,你如何计算网络的概率。
图11显示了两个聚类C1和C2,它们竞争去触发一个终端。从(C1→T)和从(C2→T)到合适的触发节点的向下的消息分别表示q1和q2的激活概率。注意如上面提到的,我们通过乘以其存在性的概率和其最佳值来估计来自全局节点的向下的消息的影响,因此,我们通过假设在局部网络中,C2能够以1-e-a2q2的概率启动T,且对于C1启动T是类似的,来估计我们的解。现在来自模型其他部分的消息进入C1,它们显示p1可能为真。类似地,来自模型其他部分的进入C2的消息显示p2可能为真。C1和C2被确定以具有活动值a1和a2,且节点T是已经被观察的终端。
现在,让我们看看沿着从(C1→T)到局部模型中C1和T之间的触发节点的链接发送的向上的消息。这个消息在图中表示为M。这个消息能够把网络的概率作为q1的函数传输。网络的实际概率不需要发送。确实,只需要发送相对的概率比值,也就是能够发送乘以概率的任何常数因子,只要这个因子对于q1的所有值是相同的。最后,我们准备检查向上发送的消息。
在此网络中要考虑4个概率,每个概率有它们自己关于在这个小网络之外发生什么的概率。第一个是C1和C2都为真的概率。这发生的概率是p1p2。如果这样,T为真(网络中唯一余下的证据)的概率等于:
1-e-a1q1e-a2q2
且因此整个网络概率是
p1p2(1-e-a1q1e-a2q2)。
如果C1为真且C2为假,那么这发生的概率是p1(1-p2)。T为真的概率是:
1-e-a1q1,
且因此整个网络概率便是
p1(1-p2)(1-e-a1q1)。
类似地,如果C2为真而C1为假,那么网络的概率就是
p2(1-p1)(1-e-a2q2)。
并且最后,如果C1和C2都不为真,那么T不可能为真。因此,消息向上发送给全局节点(C1→T)的函数是:
p1p2(1-e-a1q1e-a2q2)+p1(1-p2)(1-e-a1q1)+p2(1-p1)(1-e-a2q2)
虽然这个函数看起来复杂,但它实际上非常简单。考虑到这个函数中为了消息M的唯一变量是q1,所以这个函数归纳成以下的形式:
a+be-a1q1,
……其中a是以上所有常数项的和,b是以上和中的e-a1q1的系数。注意q2、p1、p2是为了向上发送消息给节点(C1→T)的所有考虑的常数。其实,由于这个函数乘以的常数因子不重要,所以这个方程可重写为:
1+ke-a1q1
……只留下两个数k和a1来向上发送到全局节点。我们称这些到全局节点的向上的消息为链接消息。
现在,当链接的目的地是一个聚类时,这些向上的消息的函数形式不会改变太多。例如,如果T是一个聚类,那么C1和C2的活动值就不重要,而T可能接收来自其他终端的向上的消息,这些终端指示它是否可能为真。这只是把另一组条件加到了计算中,因为每个世界观点不得不说明或者T为假或者T为真,并把以上相加,不是具有4个不同的部分,而是会有8个部分,每个是C1、C2和T的每个可能值。现在通过发送向上的消息给触发节点(我们在这里没有模拟它们),我们的代码有效避免了指数地增加,而这是全部考虑T和它的所有聚类父辈节点会发生的,如果T有几个父辈节点的话,这会是异常昂贵的。
一个要注意的事情是,虽然我们通过包括全局节点的整个网络来运行环状信任传播,但我们不必在锁定步骤中运行环状信任传播的局部迭代和全局迭代。其实,在我们返回在全局节点上运行一步环状信任传播之前,为了收敛它,我们经常在每个局部网络上运行10次或更多次的环状信任传播的迭代。
链接权重优化
现在,我们准备好考虑环状信任传播如何对待全局节点,也就是,在环状信任传播的每次迭代中,我们的模型如何重新考虑存在性和模型中的每个链接的最佳值。记住,到任何全局节点的向上的消息是这样的形式:
1+ke-a1q1。
现在,为了给这个变量选择最可能的权重值,我们的模型仅仅不得不合并所有这些向上的消息,并为全局选取最佳值。为了方便,让我们改变一点我们的记号。节点接收N个(1+kiexp(aix))形式的向上的消息,这里我们使用i作为下标,其取值为从1到N。ki是常数因子,ai是x的系数,且x是待解变量,这里X表示该变量的可能选择,而函数消息使用x的不同值表示各种会话的概率。
为了选择最大的非零x,我们仅仅必须寻找最大化所有这些向上的消息之积的x(这些向上的消息也被称为链接消息,因为它们到达确定链接权重的全局节点)。这是一维的优化问题。求解这个的一个方法是在一个范围中抽样x。更高效的方法会注意到:当一组数的乘积的对数是最优时,这个乘积就是最优的。这些数的乘积的对数是它们的对数之和。这给我们留下了优化:
现在对于局部优化,我们可以关于x来取此函数的导数,并在该导数消失的一个特定范围(比如说0到1)内搜索点。这个搜索能够通过二等分或任何数量的其他技术来完成。这个函数有时可以是非单调的(也就是不总是上升和下降),所以有时这有多于一个的局部优化,但典型地不总是这样。
在此作个小提示,为什么这个优化不产生无限大或0的最优x?函数1+ke-ax的特性很多取决于k。如果k是正的,那么这个函数随着x的增大而减小。这意味这个特定的会话通过使这个特定链接更大而被损害。典型地,当一个聚类指向另一个不可能由会话指示概率的聚类时,这就会发生。如果k是负的,特别是大约为-1,那么这指示一个充足的理由以具有这个链接。假如,假设k是-0.99,那么x为0暗示0.01的相对概率。非常大的X暗示相对概率为1,因此x为非常大的可能性是它为0的100倍。但是,有时证明0值是唯一的局部最优值。当这发生时,我们的模型把链接的所有概率体放在0。
当选定了最佳值,此向上的消息随后便能够被转换成一个布尔存在性变量的向上的消息,交替使用X的最佳值和0值。以上概率之积仅仅在X和0处被求值,其关于链接的存在性的先验概率(以上的1/1000或由科尔莫格洛夫复杂性确定的)被混入。这种混合给我们提供了链接的存在性概率。
预合成和词典
我们的模型处理它理解的词或复合词的一个有限集,这被称为词典。需要一个预处理阶段来确定这个词典。这个预处理阶段确定我们的模型能够处理的重要的词和复合词。大概说来,包括在特定的时间段在用户会话中看到的所有词。复合词包含是更加复杂的。这里两个策略是可能的:1)更多地包含复合词和进行运行时合成2)更少包含复合词和进行静态合成。
合成是复杂的,理由是因为复合词本身的记号。如我们以上所讨论的,如果一组词本质上是非合成的,比如“new york”,那么它是一个好的复合词。另一组,象“red car(红色的汽车)”是合成的,因为它既是红色的(red)又是一辆汽车(car)。发现这一点的一种方式是,查看用户会话的中断(break)和分裂(split)。我们可以计算每个可能的复合词被中断的次数。这里中断的复合词意指在一个查询中用户给出整个复合词,而在另一个查询中,用户给出这个复合词的一部分。例如,以下会话对于red car具有两个中断:
red car
blue car
yellow car
分裂是一个类似的概念,其中复合词在任一端被分开。对于两个词的复合词,中断也是分裂,但对于更长的复合词象“this is the time forall good men”,一个中断可以视为在这个会话中某个其他地方的词“thetime”。现在,可以合并这个信息和关于停顿的可能性的信息,以解释中断不是故意而是无意的可能性,例如,用户可以看到以下的用户会话;
new york cars
new magazine
……且我们的模型可给出结论,这是“new york”的中断。但是,由于“new”是个相对频繁的词,所以中断的权重,或者我们的模型相信它的有效度应该由这个词的常见度来加权。所有这个消息,复合词的频率,中断和分裂的频率,和分裂词或中断词的术语频率被用于确定词典的一组合适的复合词。这个词典没有必要基于我们的会话,其实任何文本形式,包括web文档、书籍等等能被用于形成合适的复合词词典。
在静态合成方法中,我们的模型取词典中的词和复合词的频率,并使用它们预合成文本。假若这样,使用动态的编程方法解释每个序列,动态的编程方法设法最大化看到来自词典的记号序列的概率。这个动态的编程方法运行穿过整个文本块并最全地解释目前看到的记号序列。在每一点,如果我们知道序列的最佳解释,序列相当于每个新词,那么两件事之一是可能的:(1)要么这个词由它自己的词典符号解释,且前面所有其他的词由它们对那个点的最佳解释来解释,或者(2)这个词是一个复合词的一部分,这个复合词混合了查询的最佳解释,查询相当于许多前面的记号。可以研究这两个替代,且能够为直到那个点的会话生成最佳解释。通过运行这个运算,我们看到一组词中的每个新词。
在动态合成情况下,会话中的证据被选取为可能的词解答的或逻辑(OR)上的证据,可能的词解答出现在会话内的每个位置。图12显示了一个局部概率网络如何能够在运行时动态处理词典中的复合词。当看到仅仅由词“new york”组成的会话时,不为词new、york或者甚至new york计数证据。相反,我们看到在第一个位置,词“new”或复合词“new york”会解释那个位置。类似地,“york”或“new york”同样解释第二个位置。我们在上一节讨论的所有消息调整到这个新的合成方法是相当容易的。其实,这个方法的优点是能够基于会话中的其他词确定一对词是否是复合词。
稀疏和初始化
尽管以上我们模型的描述大部分假设任意多的概念,但是这不必是这个技术被初始化的方式。其实,我们的模型始于仅仅一个特定的聚类,即通用聚类U,仅仅为了助记的原因它也被称为CANADA(注意这和加拿大(Canada)国家不同)。
环状信任传播是一种迭代方法,所以在它的运行中总是有时间以引入新的可能的聚类,这就是我们的模型所做的。在每次迭代时,我们的模型取许多的用户会话,并检查这些会话中的词。如果会话包括足够数量的词,那么就形成最佳解释那个特定会话的新聚类。这个新的聚类引入大量可能的模型节点——这个新聚类内或之外的每个可能的模型链接有一个节点。并非所有这些都存储,其实我们的模型只存储特定的链接,如果链接优化阶段确定它比存在特定阈值的可能性更大,且它的权重足以比来自CANADA的链接的权重大的话。这是从模型去除虚假的链接,因为正如我们将看到的,它们既耗费存储资源又耗费计算资源。这种简化被称为“模型稀疏(model sparseness)”。
类似的稀疏被施加到局部网络上。即使在开始时,具有有500万个词和复合词的词典,局部会话会特别庞大。实际上没有原因在每个局部网络中包括每个终端和复合词。我们可以汇总观察到所有词和复合词不在文本中的结果为假。这是通过为每个概念预计算它不激发词的概率完成的。这能够在链接优化阶段之后完成(后面更多地介绍我们模型的阶段)。这个预计算能够通过除去实际在文本中的词的影响来进行调整。也就是,不是附加地确定所有不存在词的影响,我们为每个聚类计算一次它不触发词的概率成本,并减去地除去已经在这的词的影响。
这种“终端稀疏”从每个局部会话除去差不多几个终端,并用每个概念的某个证据汇总它们,每个概念以确定的权重指向“假”布尔节点(那个权重可能由不激活的概率除以其实际激活会话中的终端的概率来确定)。
此外,当给全局节点发送向上的消息时,所有不存在的终端的影响被汇总。通常,如果聚类C1存在于只有一个词T1的会话中,那么我们需要一个向上的消息(和上面一样,k为正的),其关于网络的概率会为C1和C2、C1和C3、C1和T2、C1和T3等等之间的链接减少。这会有上百万的这些向上的消息。相反,我们用一个向上的消息汇总这个。这个过程是用于“链接消息稀疏”的一组技术的一部分。让我们考查这是如何完成的。
在图13中,我们看到单个的聚类C,其由网络的其余部分确定为真的概率是p。在这个会话中,C具有活动值a。现在,没有观察终端T。它通过“终端稀疏”不包含在这个会话中。假设节点(C→T)的值是x。向上的消息沿着链接从节点(C→T)到C和T之间的触发节点,其传输已知x的网络概率。现在,T为假的概率大约是:
P(C为真|其他)*P(T为假|C为真)+
P(C为假|其他)*P(T为假|C为真)
=pe-ax+(1-p)
≌p(1-ax)+1-p
=1-pax
≌e-pax
这里我们假设链接强度x弱,这看上去是合理的,因为聚类在这但是词不在。由于弱的链接强度,所以e-ax≌(1-ax)。同样为了准确进行这个计算,我们不得不进行调整,因为我们初始计算C的概率是假设这个词不在这,这个事实在这个特定的向上消息的环状信任传播确定中不得不忽视。我们不这样做的原因是,忽视这个事实使我们能够仅仅向上发送一个数表示聚类C在这个文本块中的存在性。这个信息——乘积e-pax——然后被分解成具有C作为源的模型节点上的所有链接优化计算,也就是,全局节点(C→T)使用这个数来估计它在这个网络概率上的最优值的影响。
这里引入的一个小误差是,由于这些消息是按聚类发送的,我们也考虑它们用于聚类和终端的合并,其中终端实际出现在文本中!例如,在图13中,C向上发送的稀疏的链接消息可被用于计算全局节点(C→T)的最优设置。这是正确的。但它也可用于计算节点(C→T2)的最优值,这是不正确的,因为T2实际出现在文本中。为了调整这个,T2和C之间的触发节点在它的链接消息中包括一个额外分量。e-pax的这个调整沿着通常的链接消息被发送到全局节点(C→T2)。这抵销了来自稀疏的链接消息的e-pax且所有的计算近似正确地完成。
至此,我们已经简化掉了不在这的终端以及向上来自它们的触发节点的链接消息。在大型模型中,仍然可能有上百万的聚类节点在每个局部网络中处理。为了简化这个,我们进行快速的近似计算,它使我们能确定哪些聚类有可能以任何概率存在于会话中。结果是,为了学习所需的全局消息,一旦解释了通用的稀疏链接消息,结果不可能的聚类对全局节点几乎没影响。因此,允许我们的模型仅仅不考虑大量的聚类的快速计算会格外有利。
我们的模型运行一个称为“父辈节点选取”的例程来确定在局部网络内其实考虑哪些聚类。这个例程使用几种类型的信息:(1)聚类的先验可能性,其能够从它在所有其他会话中的概率估计(2)会话中的词,其为指向它们的聚类生成可能性(3)从具有高概率的聚类链接的词(4)全局节点的结构。我们在后面会回到这个例程并考查它,但现在要注意在小文本块上运行这个例程后,它典型地减少由大的因子检查的聚类数量。在一个具有过百万概念的大型模型中,且在由单个词“office”组成的会话上运行,我们的模型以仅仅考虑过百万聚类中的12个聚类结束。这个“聚类稀疏”也极大减少了分析会话所需的工作量。
注意,不仅仅为当前迭代中已经以高概率存在的链接发送向上的消息。我们模型的一个实施例需要把也和概念相关的向上的消息发送到新的词,其实这就是新词如何变成从概念链接的。例如研究聚类C的初始配置是查询会话:
california
palo alto
berkeley
现在由于我们正在一个新的局部网络上训练,所以我们观察这个会话:
california
palo alto
san francisco
图14显示了这样的一个网络的可能形式(这里我们为了美观除去了触发节点)。我们的新聚类C在这个会话中既指向california又指向berkeley。注意使用终端稀疏,所有其他终端不被显式考虑,使用聚类稀疏是类似的。同样,由于不在低概率的模型链接中存储,所以C和San Francisco之间没有显式的链接(这是它们之间是虚线的原因)。还要注意因为模型稀疏,所以全局节点(C→San Francisco)也不显式存在。现在,如果确定C在会话中是可能的,那么发送向上的消息给不存在的节点(C→San Francisco)是有利的。当我们的模型接收这个消息时,它计算(C→San Francisco)链接的最佳值,且如果这个链接足够重要(它存在且具有足够高的最佳值),那么(C→San Francisco)节点被加到全局模型。这正是全局模型如何发展从聚类到终端的新链接的。但是,一个能完成的优化是,如果在局部地运行环状信任传播后,聚类具有足够高的概率,那么只向上发送这些新节点链接消息。
这些稀疏技术的效果是相当重要的。它们的本质是把多个消息组成摘要消息,以及能基本上被忽略的实际不存在消息的稀疏表示。
模型存储和压缩
至此,我们已经围绕我们模型的说明以及用于使我们的模型实用的某些稀疏技术查看了许多理论细节。这一节讲述我们模型的执行,也就是在以上的理论模型上执行的一组准确的步骤和过程。但是在这个会话里仍然有重要的理论介绍,因为只有查看我们模型的实际运行,某些瞬变的效果才是可解释的。
我们的模型能够在分开的计算单元上并行运行,这些计算单元使用共享的文件系统或网络交换数据。在其操作中的一个阶段被说成是“分割的”,如果它能够被分解以使这个并行可能的话。同样地数据可被说成是“分割的”(例如,我们经常说一个文件由标识符(id)分割,这意味着它被分成N块,且具有某个标识符的数据被放在id取模N的块中)。
存储的分量
首先,我们从讲述消息的分量开始,为了使它能够学习,我们的模型能够从一次迭代到下一次迭代存储这些信息分量。
用户会话作为一个或多个文件存储在文件系统中。它们的格式是这样的:词典查找已经把每个识别的词变换成一个独特的整数,这个整数是它的terminal_id。词典允许terminal_id从文本的字符串到小的标识符(id)之间来回变换。使用标识符的一个好处是它们被放在小的密集空间中,所以常常能够简化被用于操作它们的数据结构。
词典被存储在一种格式中,这种格式使得能够容易地变换terminal_id到终端,以及反向变换。每个终端具有一个独特的terminal_id。
我们的模型能够和所有相关的链接关系一起存储,它们是从聚类到终端,或从终端到聚类。每个链接的源被称为父辈节点,且目的地被称为子节点。在父辈节点和子节点之间的每个链接能够被存储。在我们的模型中,这个信息被存储在倒排索引中,由child_id分割。当创建每个聚类时,特定它自己的cluster_id。这个标识符可存在于和terminal_id相同的空间中。这个倒排索引为每个子节点存储该子节点的父辈节点列表,以及它们的存在性概率和它们的权重。为了减少索引在存储器中占用的空间,所有这些信息是使用压缩技术比如赖斯编码技术,被比特编码的。
一种特殊的优化是在两倍大小的区块中存储倒排的索引数据,其中在每个块内,为了压缩,父辈节点以标识符顺序存储。然后能够选择块间顺序来强调为了目标第一重要链接。这个数据结构的优点是进入终端或聚类的最重要的链接能够被检索而无需浏览整个索引条目。这当然能够仅仅通过按重要性排序来完成。第二个优点是大部分索引条目是按标识符存储的,使得它比按重要性的简单排序更加紧凑。
这个模型也可以以相反的顺序存储,既父辈节点具有子节点的列表。这可被用于调试信息。这个模型也可被分成独立的索引和数据结构,其中这里的索引是文件中的指针索引,所以能够发现聚类或终端的父辈节点(或子节点)具有两个文件入口。
为了给下一次迭代重做链接优化和为了父辈节点选取,我们的模型保存各种消息块,比如(1)不给出关于会话的其他信息的每个聚类的概率,这近似为在环状信任传播的上次迭代中那个聚类的频率(2)总的活动值乘以每个聚类的概率。这被用于链接优化中的虚拟链接消息。这个信息有时被称为1阶(order one)信息或模型,因为它是聚类是否存在以及其预计的活动值乘以概率的1阶(没有考虑相关性)模型。
这个模型也能够为所有聚类存储所有的外链接之和。这里外链接是从一个聚类到另一个聚类的链接。这通过乘以链接的当前存在性值乘以它的权重来相加。这个模型也能够存储所有它的激活的外链接之和。这是从聚类到终端的链接之和。需要这两块信息来计算如何调整聚类的概率以响应只隐含考虑的它的某些子终端或聚类——例如当使用聚类或终端稀疏时。这个数据也由cluster_id分割。
这个模型可选择地在一个文件中存储一聚类名称列表。典型地通过在聚类中选择几个更突出的终端,并链接它们来决定这些名称。这很大程度上是用于合成的助记手段。但是,通过终端,它也能被用于识别我们模型中的当前聚类,我们的模型响应特殊的信息需要。例如,一组色情的词可被用于识别色情的聚类,这些色情的聚类然后可以容易地和我们的模型一起使用,以对于孩子形成一种安全搜索。
在下一次迭代的处理中,向上的链接信息被临时存储。这些消息由父辈节点和子节点标识符的组合分割。
以上讲述我们的模型在运行时的数据要求,下一节详述在运行我们的模型时的不同步骤。
(1)过程会话
首先,我们的模型是基本上被装入存储器中的,为的是节省文件系统存取。其次,我们的模型从文件系统读取训练会话。它使用上述的稀疏原理形成那些会话的局部网络。它然后在局部会话上运行推理(loopy,环状信任传播),因为要求那样做以决定各种聚类的概率,这对于抽取链接消息是重要的(如上详述的)。
在运行推理之后,我们的模型从那些会话中抽取向上的链接消息,并存储那些由消息的(source_id,targer_id)分割的消息。它还从会话中抽取“节点消息”。这些节点消息包含聚类和终端的当前概率和活动值(终端的活动值总是1)。这个信息被存储到由标识符分割的文件系统,以由后面的阶段处理。注意,现在每个聚类的这个消息正是调整“链接消息稀疏”的效果所需的,也就是,在图13的用法中,它准确地包括在具有源C的任何全局节点重建e-pax消息所必需的“a”和“p”。
在这一阶段期间,我们的模型还决定其能够基于其哪一个会话产生新的聚类。对于每个这些会话,我们的模型创建记录类似的终端和聚类的“新的聚类消息”。新的聚类打算指向终端且被包含的聚类指向。这些“新的聚类消息”被存储在由标识符分割的文件系统中,用于“处理新的聚类”阶段来处理。
这个阶段由会话分割。这意味着输入能够被分成许多块(碎片),且每个处理单元能够只处理一组特定的会话。注意,输入的碎片(通过会话分开)不同于输出的碎片。例如考虑如果有N个输入会话碎片,和节点消息的M个输出节点碎片(由cluster_id分割)以及L个链接消息的输出碎片(由targer_id,source_id分割)。那么这个阶段的输出是MN个节点消息文件,其由会话碎片和聚类标识符碎片分割。这个数据然后被合并到一起N种方法,以产生M个聚类标识符碎片。链接碎片也发生类似的过程。通常,当一个阶段被不同于其输出的不同方法分割,其部分文件被合并以获得一个结果,该结果由下一个阶段所预计的东西分割。
作为一个例子,取一个过程:它按星期中的各天来接收用户的数据,但是产生由用户名的第一个字母分割的数据。它的输入是7个文件,星期一、星期二、星期三、星期四、星期五、星期六和星期日各一个。其最终的输出是26个文件,字母表的每个字母一个。但是,首先,每个7个过程产生它自己的26个文件,导致182个文件。例如这有“Monday-a”文件、“Monday-b”文件(等等……)、“Tuesday-a”(等等)。现在,所有7个“a”文件被合并成一个“a”文件,且字母表的所有其他字母是类似的,直到只有26个文件。
这个“叉积合并”是处理以不同于输出分割的输入的一个方法。它是并行生成数据的一个非常高效的方法。一个替代是仅仅使用文件系统并同时把所有的数据追加到输出碎片。当追加大量的数据,且源分割是巨大的时,这个方法趋向于更慢。
(2)计算O1
这里,聚类的概率和及活动值乘以聚类概率的和被确定。这个信息仅仅是在处理会话阶段产生的“节点消息”的总结。这个信息也被存储到文件系统,作为一组由标识符分割的新的“汇总的节点消息”,并且它是我们模型的一部分。这个信息被称为1阶模型。
这个阶段由节点标识符分割(这里节点可以是终端或聚类)。这意味着每个处理单元负责为仅仅一部分数据计算1阶模型,这个1阶模型实际是接收其输出数据的部分,所以不需要相互的产品合并。
(3)处理新的聚类
这个阶段取新的聚类消息,并且确定这些新的聚类如何适应我们的模型。这个决定被延迟到这个时间,因为它需要在Ol阶段中计算的信息。这是因为重要的动态理论原因。当引入一个新的聚类时,可以决定到它那里的所有链接的可能性和最佳值。典型地,从CANADA以及“新的聚类消息”中的其他链接来链接这样的聚类,新的聚类消息是其基础(based off of)。
如果新的聚类被特定太牢固的链接(高权重和可能性),那么它会立即取代来自存在的好聚类的词,而无需学习新的概念。这是因为所述聚类还没有指向适当相关的一组终端。如果新的聚类被特定太不牢固的链接,那么它不足以重要到在任何会话中制造差别,且它不会接收足够牢固的链接消息,且它也会失败。这里失败意味着它接收的链接消息除去了来自/到它的链接和模型的其余部分。
为了决定这些链接应多么强,我们考虑其每个潜在的父辈节点将激发的概率。这正是以上计算的1阶模型中给出的信息。为了明智地做出这个决定,我们平衡链接可能性和权重,以预期在下一次迭代中这个聚类的预计出现的一个小的数M(通常是100)。
这个阶段的输出是一组“入口消息”。入口消息本质上是在模型的倒排索引信息中存在的东西。入口包括关于源、目标、存在的可能性和最佳值的信息。这个信息由目标标识符分割。
这个阶段由新聚类的聚类标识符分割。也就是,每个处理单元为仅仅某些新聚类标识符产生入口消息。注意,由于不同的处理单元可能正在产生目标(通过目标标识符)是相同的碎片的数据,所以它们不得不使用文件系统异步地追加它们的数据到某些相同的文件。这里也可以使用相互的产品合并,但是数据的数量相当小,所以数据只是在文件系统级被立即合并。
(4)优化链接
这个阶段接收来自处理会话阶段的所有链接消息,和所有汇总的节点消息,并以以上在链接优化小节中描述的方式优化链接的可能性和概率。它的输出再次是由目标标识符分割的一组“入口消息”。
这个阶段由源标识符和目标标识符的组合分割。也就是,每个处理单元只负责那些落入其分割空间内的链接。这个结果的数据是相当小的,并且不需要经过相互的产品合并,它可以从所有的源被并行地追加到一组文件。
(5)构建父辈索引
这个阶段取所有的入口消息,并且为了一个特定的目标把它们放在一起。这个阶段还限制指向一个特定目标的源数量为一固定的数N。N的典型值为大约100。到达到那个目标的点的N个源对于那个目标是最重要的。这里重要性是由源的o1值、沿着那个链接的链接权重和链接可能性的乘积确定的。为了效率的原因,完成这个简化以使指向特定节点的父辈节点数量少。这是另外一种可伸缩性技术,我们将其称为“行稀疏”。
这个阶段的输出是以上描述的模型文件的倒排索引的特定分割。这个输出是由目标标识符分割的,和输入的方式相同。这整个阶段也是由目标标识符分割的。
(5)构建子索引
这个阶段倒置父辈索引数据以构建子索引。它的输入由链接的目标分割,它的输出相反由源分割。每个处理单元并行追加许多的结果文件。
以上描述了运行环状信任传播的一次迭代以重新定义模型的步骤。这个过程有必要重复以获得更好的模型。
重新编号
有一个被称为“重新编号”的特殊步骤,其每隔几次迭代出现一次。记住聚类C1可以链接到聚类C2,但相反则不行。一般,当且仅当i小于j时,id=i的聚类可以链接到id=j的聚类。为了学习特殊和普通关系,理想的是较大的聚类链接到较小的聚类。由于概念通常具有比普通性更多的特殊性,所以把较大的聚类较早地放在标识符空间中是有意义的。遗憾的是这不一定是它们被学习的顺序。由于这个原因,我们有时(每隔几次迭代)重新编号所有的聚类。
将聚类重新编号,意味着改变几乎所有链接上的链接权重和可能性。这发生的方式如下。假如聚类A以权重w指向聚类B。此外,假设A和B的和概率分别是p1和p2(这是o1模型的分量之一)。现在,我们预计A在大约会话的小部分p1中出现,B在会话的小部分p2中出现,且A和B在会话的小部分(p2w)中出现。当然这些数都是近似。使B指向A的一个合理方法是保持预计的接合事件相同的编号。这是用满足以下的新链接w’实现的:
w’p2=w p1或者
w’=w p1/p2
为了做到这一点,一个特殊的模型被转换成“入口消息”,模型的1阶部分被装入存储器(它们是p1和p2分量所要求的),并发生这个转换。该转换的输出是一组入口消息,其然后被送入常规操作的“构建父辈索引”阶段。
父辈节点的选取(选择候选聚类)
当分析会话时,本发明的一个实施例不包括我们求解的局部信任网络中的所有数千的聚类。我们首先确定哪些聚类极小地可能是活动的,并假设其余的是关闭的。我们称我们考虑的聚类是“候选聚类”。为了确定哪些聚类是候选的,我们保存一个待评估的聚类的优先队列,使得以模型中高度的递增顺序评估它们(减少聚类标识符,增加通用性)。我们把会话的终端的所有父辈节点增加到那个队列。然后我们开始从该队列弹出聚类并评估它们。对于已知的聚类C1,我们构造了如图15.1显示的信任网络。我们包括C1和会话中链接到C1的所有终端。我们加权这些节点之间的链接,就好象C1具有等于某个常数的活动值(我们使用3.0)。我们把一个链接加到不知道来自何处的终端,权重等于该终端的o1模型乘以会话中的词数量。这个链接大约汇总了由其他方面导致该终端的可能性。我们把不知是来自何处的链接加入C1中,权重等于C1的o1模型。我们然后求解这个网络以得到C1上的概率。由于这个网络是树,所以我们可以快速求解它。如果该网络中C1的概率超出某个阈值(我们使用0.05),那么我们决定C1是候选聚类。在这个例子中,我们把C1的所有父辈节点加到待评估的聚类队列。
在我们正在评估一个聚类C2时,C2具有另一个子聚类C1,而我们已经使C1为候选聚类,我们希望在我们为C2创建的网络中包括我们为C1创建的网络,以在C2上增加合适的额外证据。这种包括中的危险是它将在网络中建立回路。因此我们只把终端和聚类子节点加到C2的网络,以使终端和对应于聚类的子网络都是分离的。在选择包括哪些时,我们渴望以将被发送到C2的消息的强度顺序来选择。例如,如果聚类C2链接到会话中的终端“灰色”和“老鼠”以及聚类C1,我们可以构造象图15.2A中的包括C1的网络,或者象图15.2B中的包括从C2到“灰色”的链接的网络。我们可以根据那个消息更强来选择构造哪一个,从C1到C2的那个网络或者从“灰色”到C2的那个网络。
在实践中,不需要构造对应于这些网络的数据结构。当我们使C1是候选聚类,并且我们正在把它的父辈节点C2加到待评估的聚类队列时,我们也可以增加一条消息,其指定如果C1包括在C2的网络中的话,从C1传到C2的消息以及发源于C1的树中的那组节点(为了避免和C2的网络的其他元素相交)。当把会话中的终端的父辈节点加到队列时,也加上类似的消息。可以根据这些消息计算所有的这些计算。
微分的文本源调整技术
我们一直在查询会话的上下文中讨论我们的模型。但是,如在本公开文本的开始指出的,我们的模型能够在任何文本源上运行,比如web文档。我们已经开发的一种有趣技术是在数据源之一上训练我们的模型,而在另一个源上应用它。
例如,我们能够在用户查询上训练我们的模型,但应用已训练的模型预测网页中各种聚类的存在性概率。有时这是成问题的,因为某些词比如动词,其在文档中的数量远远多于在用户查询中的数量,用户查询倾向于具有更多的名词。遗憾的是,在查询中,许多动词出现在歌词中,且查询训练的模型经常会识别大多数文档是部分关于歌词的!
对这种情况的一个补救是改变从CANADA到所有终端的链接权重以反映在候选语言中它们的概率(也就是网页的语言)。因为来自CANADA的对终端的解释本质上是一个陈述,即不存在从那个终端发源的良好定义的概念,这在某种程度上终止了低估那些词的影响。这经常导致用于比较查询和网页中的概念的更好的概念引擎。
另一个能够应用的小补救涉及独立性假设,在训练文本时具有这些独立性技术是有益的。大量的网页是彼此的拷贝,被剪切和粘贴进不同的网络服务器。在所有这些网页上训练我们的模型有一点浪费,因为它终止了学习完全重复的拷贝,这些拷贝背后没有任何隐含的含义。为了减轻这个问题,可以从大的文档集除去所有重复的一连串N个或更多词(N典型地是大约为10)。这可以通过“指纹”识别N个词的所有序列,排序这些指纹以把它们分组,然后在训练文本上反复迭代,除去在被看到多次的10个词运行的开始的词。当在网页上训练时,我们的模型已经应用了这个技术。
演示
在这一点上,让我们看看来自图16中的我们模型的某些输出。我们看看在“Model of 1378939 clusters(1378939个聚类的模型)”这行之下的信息。数据是以两列的格式。左边这列报告聚类的o1模型,也就是在我们模型的最后一次迭代中的所有会话中的它的存在性概率之和。右边这列是聚类的当前名字。由于CANADA(通用节点)存在于所有会话中,所以数字595417600也是这个模型被训练的用户会话的数量。
让我们看看下一个聚类。它被标识为[john david mark paul michaelscott]。这是一聚类姓。后面的聚类[free sex porn pics movies xxx](免费色情图片电影xxx)是一聚类色情词。后面的聚类[uk england Londonin-the-uk ltd friends-reunited]集中关于英国的内容。一个快速提示是虽然这个模型是在一组英语的查询上运行的,但是我们的模型在语言方面是不受限制的,可以容易地构建任何其他语言的类似模型。下一个聚类是[pictures of picture photos pics images](图片照片图像)。注意这个聚类是有趣的,因为它看上去被许多在网上寻找图片的方式中的某些标识。其实,这正是我们的模型打算做的,通过主题来集合词。
大约有130万个这类主题。图16只显示了几个(最大的)。现在,让我们仔细看看其中一个聚类。计数为6408187的一个聚类被标识为[jobs job employment in job-search careers](工作职业工作-搜索职业)。已和我们的模型一起提供了一个HTML界面,并且选择那个聚类就引出关于该聚类的更多详细信息。这个更详细的信息在图17中。我们将首先查看在水平线之下的信息(稍后我们会回到搜索框)。
这里有三个主要的部分,一个标识为PARENTS(父辈节点),一个标识为CHILDREN(子节点)且一个以“ID 4737501”开始。PARENTS和CHILDREN部分列出和这个聚类相关的其他聚类。左边的列列出预计父辈节点触发这个特定聚类的次数或者是子节点被这个特定聚类触发的次数。这里父辈节点信息是稀疏的,只有CANADA是这个聚类的父辈节点,且这是因为工作(jobs)的概念是如此庞大以至于重新编号快速地移动它,使它成为许多其他概念的父辈节点。
现在让我们看看子节点信息。注意最经常被触发的子节点是在列表的底部。预计子概念[in jobs for India it bangalore](印度的工作它炸药桶)从这个工作聚类被触发378070次。这个子聚类是在印度搜索工作的人!下一个子聚类是[programs degree program education onlinemaster](程序学位程序教育在线硕士)是谈论教育的。这意味着人们谈论工作时,他们常常谈论教育!下一个子聚类是关于[salary salariesaverage salary-survey wages pay](薪水平均薪水调查工资报酬)薪水的!等等……我们的模型包含有趣的关于世界的信息量,因为它确定工作常常是与教育、薪水和报酬相关的。在子聚类之后的数字,例如(0.0608101,inf)是处理两个聚类之间的链接的最佳值的一对数,以及在链接的存在性内的logodds信任,它在这个例子中是无限的,所以根据我们的模型这个链接以1.0的概率在这里。
现在让我们看看始于ID 4737501的信息。这意味着这个工作聚类的标识符是4737501。它的“Total Firing:6408187.000000”(总的激发:6408187.000000)意味着这个聚类(o1)的存在性的总和概率在我们模型的最后一次迭代中是6408187倍。激发有时被用作概率的同义词或者概率和的同义词。它的“Total Activation:11139140.000000”(总的活动值)是,在最后一次迭代中聚类的活动值之和乘以它在所有会话中的概率的1阶项(它实际应当被称为总的活动值乘以概率,但是那个名称使用不便)。它的“Outlink Sum:0.848506”(外链接和:0.848506)指的是,权重之和乘以它到聚类的链接的可能性是0.848506。它的“Activated Outlink Sum:0.521899”(激活的外链接和:0.521899)指的是,它的权重和乘以到终端的可能性是0.521899。现在下面的信息又是按照两列的格式。下一个部分以与PARENTS和CHILDREN部分相似的方法,详述了这个聚类和终端之间的链接。
第一个终端是“jobs(工作)”。左边的信息1841287是这个聚类触发词“jobs”的次数。在这个词的右边的信息又是它的最佳值和存在性的对数可能性。下几个词是“job”(工作)、“employment”(职业)、“in”(处于)、“job-search”(工作搜索)、“careers”(职业)、“it”(它)、“career”(职业)、“job-opportunities”(工作机会)、“human-resources”(人力资源)等等。当人们谈论工作的概念时使用了所有这些终端!注意更多的终端从这个聚类被链接到,且这个图中只显示了最重要的那些。
类似地,使用任何这些概念就表示这个想法是活动的,某些词比其他词多。例如,词job(工作)主要是由这个概念导致的。我们通过查看词“jobs”的不同输出来检查这个,这个输出是所有终端都有的。图18显示这个输出。从“TERMINAL:jobs”(终端:工作)这行开始,下一行是“Firing:3049398.000000”(激活:3049398.000000),其表示在前面的迭代中这个词出现的概率和是3049398(注意,由于合成,终端在会话中可具有不同于1.0的出现概率)。下几行详细列出最强导致这个终端的聚类。第一个是[jobs job employment in job-search careers]聚类!注意更多的聚类链接到这个终端,且只有最重要的那些显示在这个图中。
现在,终端“in”在聚类[jobs job employment in job-search careers]中,但是,选择对应于终端in的页面(显示在图19中),我们看到CANADA是主要导致“in”的聚类。这个的解释如下:当人们谈论工作时使用了“in”,但是“in”更经常由其他事情导致,所以在人们正在搜索的内容中,它不是和词“jobs”一样强的指示器。注意这里也有更多的聚类链接到这个终端,且只有最重要的那些显示在这个图中。
现在,我们准备看看在页面顶部的搜索框。我们把查询“palo altorestaurants”(帕洛阿尔托的饭店)输入框中并点击Search(搜索)。图20显示了这个搜索的结果。我们从“QUERY:palo alto restaurants”这行开始。这仅仅是键入搜索框中的内容。下两行是复合词“palo alto”和词“restaurants”。它们表示这个查询的当前合成(有时被称为分词)。
现在,让我们检查词palo-alto旁边的数字。最后的数9.9789是它用来表示这个词的比特数。在比特表示费用和概率之间存在对偶性,其中比特费用是概率的以2为底的对数的负数。这意味词palo-alto在2 ^9.9789(大约1000)次词出现中大约出现一次。中间的数是假定已经看到其他的词,那么这个词需要的比特数的近似值。词palo-alto没有变得更好(更可能),但是词restaurants却变得更好!这是因为以非常高的频率(大约23.7之一或十分之一)搜索帕洛阿尔托市的人希望找到帕洛阿尔托市里的饭店。这同样可应用在人们写的关于帕洛阿尔托市的文档中。
这个信息的一个用处是确定在文字搜索中哪些词能够被除去,因为它们没有其他的词那么特殊。例如,如果搜索“palo alto”饭店不从文档集中返回足够的结果,那么你也许能寻找仅仅提到palo alto的页面,并看它们是否是关于饭店的,但使用了不同的词(例如就象[restaurants in restaurants restaurants dining best]聚类中的词之一。palo-alto的第一个数15.2624也是比特费用,但假设文档中的高可能的(>0.95)聚类是开启的,但没有一个聚类是为了这个会话。这个数也是近似值。
以“session graph 8 nodes 16 edges”(会话图8个节点16条边)开始的行谈论引入的局部网络以求解已经看到终端的证据。注意我们的模型具有超过8个的许多聚类,但是终端和聚类稀疏技术意味着我们不得不只看着总共8个节点!这里节点可以是终端或聚类。这一行的剩余部分关于计时信息。下几行显示关于在这个查询中发现的所有聚类的信息。第一个是命名的饭店聚类[restaurants in restaurants restaurantsdining best]。在左边有三列数。第一个是聚类的概率,第二个是它的概率乘以它的活动值,第三个是它的概率乘以调整的活动值。记住局部网络里面的活动值只是被任意设置为它能够触发的、为真的可能的词数量。一旦我们求解了这个网络,我们能够对终端的发源处进行另一个更加有根据的猜测。我们通过计算在每个聚类和每个终端之间的触发节点的概率来这样做。然后这个聚类因它启动的每个终端的概率而得到好评为“调整的活动值”。
第二个要发现的聚类是[san-jose ca sunnyvale santa-clara bay-areamountain-view](圣何塞市加利福尼亚州sunnyvale圣克拉拉市海湾地区山景)聚类,其存在性的概率为0.682912。第三个聚类是[palo-altoMenlo-park restaurant evvia palo straits-cafe],概率是0.37。这里要注意的一件有趣的事是“evvia”和“straits cafe”实际是帕洛阿尔托市的饭店。这个聚类特殊化为围绕帕洛阿尔托市的饭店的概念。
通过这种方式,我们的模型能够被用于估计各种概念出现在任何文本块中的概率。同样也可以为网页这样做,并通过查找在网页和查询中出现的联合概念,我们模型的用处之一是用于在网页上搜索。下一节讨论我们模型的某些用处。
模型的使用
这一节详述我们模型的某些可能用途。
(1)猜测文本块背后的概念。这些概念然后可显示给用户,使得用户更好地理解文本的含义。
(2)在文档和查询之间比较词和概念。这可以是在任何文档搜索引擎中所需的信息检索评分函数,包括文档是网页的特殊情况。
(3)使用我们的模型用于网上搜索的一种不同方法是假设聚类的分布扩展了查询。例如,关于词“jaguar”(美洲虎)的查询是歧义的。它的意思可以是动物或者汽车。响应这个搜索时,我们的模型将识别和两种含义相关的聚类。在这个例子中,我们可以考虑用户键入两个查询中的任一个,jaguar(汽车)查询或jaguar(动物)查询。我们然后可以考虑它们各自的聚类的概率,检索这两个查询的文档。通过仔细平衡我们为每个含义返回的结果数量,我们保证搜索结果的某个差异。
(4)在文档和广告之间比较词和概念。这可以用作一个代理,其关于如果广告附到某个内容块,那么广告的表现如何。这种的一个特例是把广告附到网页。
(5)在查询和广告(或者广告的目标准则)之间比较词和概念。在搜索引擎中,广告经常选择一组“目标准则”,当它们出现在用户查询中时,就服务了广告。这些准则的这些文本(和广告拷贝本身)能够通过使用我们模型中的聚类和查询来比较。这个比较可以是一个代理,其关于如果搜索网页上的服务来自这个查询,那么广告的表现如何。
(6)在两个文档之间比较词和概念。这可以用作文档的概念上的聚类的距离度量,其中类似的文档被集合在一起。
(7)把文本投影到聚类的空间。文本中聚类的概率可被用作任意分类任务的特征。例如,通过把页面的文本投影到聚类上,可以产生色情资料过滤器,然后构建使用聚类和词作为其输入的分类器。
(8)把网上查询一般化以检索更多的结果,使用已知它们的父聚类的一组词或终端的概率或比特费用。
(9)通过查看由两个词引起的概念,猜测特定的词是否是另一个词的错误拼写。
局部推理机制
有可能使用不同于环状信任传播的方法解局部网络,尽管在全局节点上使用环状信任传播。这种方法的一个优点是它们可能比环状信任传播收敛得更快或比它更正确。以下两个小节详述能够在局部网络上使用的替代推理机制。
另一个局部推理机制
在局部网络中推理的另一个方法是寻找问题的几个好的解,而不是运行环状信任传播。我们围绕网络的完整实例化的空间搜索以寻找我们网络的一组好的解。我们对待这些就好像它们是网络的解的完全枚举。我们可以发送和环状信任传播发送的消息类似的向上的链接消息,但是更准确,如果我们考虑一组足够好的解法的话。我们系统的余下部分仍然基本相同。
注意,每次翻转(flip)一个聚类时,我们可以快速地更新整个网络的概率,且存储所有这些概率(这是因为实例的概率是许多局部条件概率表的乘积)。在搜索期间,存储网络中每个聚类的历史。这帮助我们最后更快地计算链接消息。
通常,我们在完整实例上的搜索象这样进行:我们从所有聚类关闭开始,除了CANADA以外。然后我们通过翻转单个的聚类开或者关闭来爬山到局部最佳值。然后,对于除了CANADA以外的每个聚类,我们从到目前为止的全局最佳值开始,我们翻转那个节点的值,使那个节点的值固定,我们在余下的节点上爬山,直到达到局部最佳值。如果在这个过程中,我们发现新的全局最佳值,那么我们以那个全局最佳值开始。这样,我们保证考虑具有每个非CANADA聚类节点的每个值的相当好的解。
这种方法的一个优点是,为了权衡执行速度和准确性,可以任意限制搜索。在分析较大的文本块时,为了使我们的模型在适当的时间内返回,做出的权衡经常偏向执行速度。
另一个局部推理机制
在局部网络中进行推理的另一个方法是运行一个会环状信任传播,并看看它是否快速收敛。存在理论的结果,其指出如果环状信任传播快速收敛,那么它更加正确地收敛。这样,如果环状信任传播不快速收敛,那么一个或更多节点可以是“有条件的”,也就是环状信任传播为这些变量的真值和假值都运行。如果网络是足够有条件的,那么环状信任传播变得更加稳定,这是因为在回路的顶部或旁边的条件处理打破了环状信任传播中的消息循环圈(由于各种理论原因)。这个条件处理被递归应用,直到环状信任传播快速收敛。在运行有条件的环状信任传播之后,结果是了解所有链接消息的各种条件。
所有剩下的就是能够在它们的相对概率(既然条件通常是截然不同的)中把条件合并在一起。我们已经设计的一个技术是在环状信任传播已经在网络上稳定之后,使用网络的熵的测量(大约是在网络收敛的剩余自由比特数)和网络的能量(大约是网络解违反前面的约束的量)。这个近似值允许我们以正确的顺序合并各种链接消息,且我们模型的余下部分仍然基本相同。
描述文档的过程
图21示例说明依据本发明实施例在描述文档当中所涉及的数据结构。这些数据结构包括1阶概率表2102、父表2104、子表2106和链接表2108。
1阶概率表2102包括概率模型中每个节点的条目,该概率模型近似了在生成指定的一组词时节点是活动的1阶(无条件)概率。因此,1阶概率表2102中的条目指出在由所述概率模型生成的多组词中,相关联的词或聚类的普通程度。在本发明的一个实施例中,1阶概率表2102还包括每个聚类节点的“活动值”,其指出有多少从候选聚类到其他节点的链接可能激发。
父表2104包括识别所述概率模型中相关联的节点的父辈节点的条目,以及来自所识别的父辈节点的链接权重。
类似地,子表2106包括识别所述概率模型中相关联的节点的子节点的条目,以及来自所识别的子节点的链接权重。
注意,1阶概率表2102、父表2104和子表2106都是在描述文档之前为所述概率模型预先计算的。而另一方面,链接表2108则是在描述文档的过程中被填写的。
链接表2108包括链接的条目,它们在构造证据树时被认为是证据,如以下参考图22-25讨论的。链接表2108中的每个条目包含相关联的链接的权重和相关联的父辈节点的标识符。此外,链接表2108能够按父辈节点标识符排序,如以下讨论的。
图22给出了依据本发明实施例的一个描述过程的流程图。所述系统以接收包含一组词的一个文档来开始(步骤2202)。注意这个文档可包括一个网页或者来自一次查询的一组术语(词)。
接下来,所述系统从概率模型选择一组“候选聚类”,它们在生成这组词时可以是活动的(步骤2204)。以下参考图23更详细地描述了这个过程。注意,通过选择一组候选聚类,所述系统限制了在后续的计算运算中考虑的聚类的数量,因此减少了描述文档时涉及的计算量。
所述系统然后构造一个向量以描述文档(步骤2206)。这个向量包括候选聚类的分量,其中该向量的每个分量指示在生成文档中的这组词时,相应的候选聚类的活动程度。以下参考图24-25更详细地描述了这个过程。
最后,所述系统能够使用这个向量来帮助和文档相关的多个不同操作(步骤2208)。这些用途中的有一些被列举在本说明书前面题为“模型的使用”的小节中。
图23给出了依据本发明的实施例用来选择候选聚类的过程的一个流程图。这个流程图更详细描述了执行图22中的步骤2204时所涉及的操作。所述系统以构造一个“证据树”来开始,该证据树始于和文档中的这组词相关联的终端节点,并沿着链接到达父辈节点(步骤2302)。由于选择节点作为证据树的一部分,所以从父辈节点到该节点的链接被插入链接表2108中。
在构造证据树的过程中,所述系统使用证据树来估计在生成这组词时每个父聚类是活动的可能性(步骤2304)。更具体地,在本发明的一个实施例中,对于只指向终端节点的聚类节点Ci,所述系统使用以下公式估计在生成这组词时包括Ci的可能性(我们把这个估计的可能性称为“Ci的猜测”):
其中,
(活动值Ci),且其中
这个公式指出,Ci的猜测是Ci的1阶概率乘以来自Ci的活动子节点的条件概率基值之积。这个基值的分子
是从Ci到wj的链接权重乘以Ci的活动值的猜测。记住Ci的活动值是出自节点Ci的活动链接数量的一个指示器。这个基值的分母
是wj的1阶概率乘以在这组词中的词数量。
对于一个指向其他聚类节点的聚类节点Ci来说,这个公式稍微不同,
猜测(Ci)=O1(Ci)·Score(Ci)
其中
与聚类节点只指向终端节点的情况相同,Ci的猜测是Ci的1阶概率乘以条件概率基值之积。但是这些条件概率基值来自其他聚类节点Ck以及来自子节点Wj。
来自子节点的基值与聚类节点只指向终端节点的情况相同,
来自其他聚类节点的基值更加复杂,
其中P(Ck|Ci)是指定Ci的Ck的条件概率,P(Ck)是Ck的1阶概率,且Score(Ck)是Ck的前面计算的分数。注意由于证据树是从终端向上构造的,子节点Ck的分数在计算父辈节点Ci的分数之前就已经计算了。
在本发明的一个实施例中,所述系统在估计过程期间为指定的聚类节点标识终端节点,以确保终端节点不超过一次被分解成估计值。
最后,所述系统基于这些估计的可能性而选择父辈节点作为候选聚类节点(步骤2306)。在这个“父辈节点选取”过程的最后,所述系统具有一组候选聚类和它们的活动值。
图24给出了依据本发明的实施例来估计候选聚类的概率的过程的一个流程图。所述系统首先为概率模型选择状态,这些状态可能已生成这组词(步骤2402)。
接下来所述系统构造向量,其中该向量包括候选聚类的分量。这些分量中的每一个指出在生成该组词时,相应的候选聚类是活动的可能性。为了估计分量,所述系统在估计概率时只考虑选定的状态,该概率是生成该组词时相关联的候选聚类是活动的概率(步骤2404)。
更具体地说,在本发明的一个实施例中,所述系统计算和聚类节点Ci相关联的向量的指定分量Vi是:
Vi=活动值(Ci)×P(Ci)
其中活动值(Ci)是当节点Ci激发时,将会激发的链接数量的一个指示器,而其中P(Ci)是在生成文档中的该组词时,Ci是活动状态的概率。
P(Ci)可按照下式计算:
这个公式表明,P(Ci)是在其中发现Ci的网络的网络概率之和除以已经搜索的网络的所有网络概率之和。
一个指定的网络状态发生的概率可按照下式计算:
这个概率包括来自那些“开启的”节点的贡献。更具体地,对于在一特定网络中是开启的每个节点j,所述系统计算至少一个进入j的链接(来自活动的父辈节点i)激发的概率。这是1减去来自活动父辈节点i的进入j的链接没有激发的概率,其中来自活动节点的链接不激发的概率是1减去链接权重。
所述概率也包括来自那些“关闭的”节点k的贡献。对于一个关闭的指定节点k,上述贡献是没有链接从活动节点i指向k的概率,其仅仅是1减去链接权重。
图25示例说明依据本发明实施例,如何选择概率模型的状态。这个流程图更详细描述了执行图25中的步骤2402时涉及的操作。为了限制在选择状态时涉及的计算工作量,本发明的一个实施例仅仅考虑与文档中的那组词相关联的候选聚类节点和终端节点,忽略所有其他节点。
所述系统从为概率模型随机选择起始状态开始(步骤2502)。每个起始状态指出概率模型中的哪些节点是活动的,哪些节点是不活动的。注意,任何起始状态都是可能的,因为通用节点能够触发候选节点的任何子集来激发。
还应注意,概率模型中的链接权重倾向于在生成文档中的一组词时使某些状态比其他状态更可能。因此,随机的起始状态会已经生成文档中的一组词是不可能的。为了找到更可能的状态,所述系统执行“爬山”运算以到达可能已经生成文档中的一组词的一个状态(步骤2504)。注意大量的公知爬山技术都能够被用于这个目的。爬山运算,典型地以增加特定目标函数的值的方式来改变系统的状态。在这个例子中,目标函数就是指定的网络状态存在的概率P网络,这已在上面作了描述。
在本发明的一个实施例中,所述系统定期在爬山运算之间改变单个候选聚类的状态,而不考虑目标函数。这样做时,所述系统固定已改变的状态,以使它在后续的爬山运算期间不变化。这产生了目标函数的局部最佳值,其包括已改变的状态,使得所述系统能够搜索仅仅通过爬山运算不能到达的概率模型的状态。
前面关于本发明的实施例的描述仅仅是为了解释和描述的目的。它们不打算是详尽的或限制本发明为所公开的形式。据此,许多修改和变化对于本领域的技术人员是显而易见的。此外,以上的公开不打算限制本发明。本发明的范围是由所附权利要求限定的。
Claims (62)
1.一种根据概念上相关的词的聚类来描述文档的方法,包括:
接收所述文档,其中所述文档包含一组词;
选择概念上相关的词的候选聚类,其与所述这组词相关;
其中所述候选聚类是使用一模型选择的,该模型解释如何从概念上相关的词的聚类来生成多组词;和
构造一分量组来描述所述文档,其中该分量组包括候选聚类的分量,其中每个分量指出一相应的候选聚类与所述这组词的相关程度。
2.如权利要求1所述的方法,其中所述模型是概率模型,其包含表示词的随机变量的节点,以及表示概念上相关的词的聚类的随机变量的节点。
3.如权利要求2所述的方法,其中所述分量组中的每个分量指出在生成所述这组词时,一相应的候选聚类的活动程度。
4.如权利要求3所述的方法,其中所述概率模型中的节点通过加权链接而连接到一起;且
其中如果所述概率模型中的一个聚类节点激发,则从该聚类节点到另一个节点的加权链接能够导致其他节点激发。
5.如权利要求4所述的方法,其中如果一个节点具有活动的多个父辈节点,则该节点不激发的概率是来自活动的父辈节点的链接不激发的概率之积。
6.如权利要求2所述的方法,其中所述概率模型包括一通用节点,该通用节点总是活动的,并具有对所有聚类节点的加权链接。
7.如权利要求4所述的方法,其中选择所述候选聚类包括:
通过从与所述文档中的所述这组词相关联的终端节点开始,以相反的方向沿链接到达父聚类节点,来构造一证据树;
在生成所述这组词时,使用所述证据树来估计每个父聚类节点是活动的可能性;和
基于其被估计的可能性,选择一父聚类节点作为候选聚类节点。
8.如权利要求7所述的方法,其中在生成所述这组词时,估计一特定父辈节点是活动的可能性可以包括考虑:
所述特定父辈节点是活动的无条件概率;
假设所述特定父辈节点的父辈节点是活动的,该特定父辈节点是活动的条件概率;和
假设所述特定父辈节点的子节点是活动的,该特定父辈节点是活动的条件概率。
9.如权利要求8所述的方法,其中考虑所述条件概率包括考虑节点之间的链接上的权重。
10.如权利要求7所述的方法,其中在生成所述这组词时,估计一特定父辈节点是活动的可能性包括:在估计过程期间标识终端节点,以确保终端节点不会被分解成估计值超过一次。
11.如权利要求7所述的方法,其中构造所述证据树包括从该证据树剪除不可能的节点。
12.如权利要求3所述的方法,其中在构造所述分量组期间,一个候选聚类在生成所述这组词时的活动程度是通过计算候选聚类在生成所述这组词时是活动的概率来确定的。
13.如权利要求3所述的方法,其中在构造所述分量组期间,一个候选聚类在生成所述这组词时的活动程度是通过使候选聚类在生成所述这组词时是活动的概率和该候选聚类的活动值相乘来确定的,其中所述活动值指出有多少从该候选聚类到其他节点的链接可能激发。
14.如权利要求1所述的方法,其中构造所述分量组包括归一化所述分量组。
15.如权利要求3所述的方法,其中构造所述分量组包括逼近一特定候选聚类在所述概率模型的各个状态是活动的概率,这些状态可以已经生成所述这组词。
16.如权利要求15所述的方法,其中逼近所述概率包括:
选择可能已经在所述文档中生成所述这组词的所述概率模型的状态;和
在计算所述特定候选聚类是活动的概率时,只考虑被选择的状态。
17.如权利要求16所述的方法,其中选择可能已经生成所述这组词的状态包括:
随机选择所述概率模型的起始状态;和
执行从所述起始状态开始的爬山运算,以达到一个可能已经生成所述这组词的状态。
18.如权利要求17所述的方法,其中执行所述爬山运算包括定期地改变单个候选聚类的状态,而不考虑所述爬山运算的目标函数,以探查所述概率模型的状态,否则这些状态通过爬山运算是不能到达的。
19.如权利要求18所述的方法,其中改变单个候选聚类的状态包括暂时固定被改变的状态以产生所述目标函数的一局部最佳值,其包括被改变的状态。
20.如权利要求1所述的方法,其中所述文档可以包括:
网页;或
来自查询的一组术语。
21.一种存储指令的计算机可读存储介质,当所述指令被计算机执行时,导致该计算机执行一种根据概念上相关的词的聚类来描述文档的方法,所述方法包括:
接收所述文档,其中所述文档包含一组词;
选择概念上相关的词的候选聚类,其与所述这组词相关;
其中所述候选聚类是使用一模型选择的,该模型解释如何从概念上相关的词的聚类来生成多组词;和
构造一分量组来描述所述文档,其中该分量组包括候选聚类的分量,其中每个分量指出一相应的候选聚类与所述这组词的相关程度。
22.如权利要求21所述的计算机可读存储介质,其中所述模型是概率模型,其包含表示词的随机变量的节点和表示概念上相关的词聚类的随机变量的节点。
23.如权利要求22所述的计算机可读存储介质,其中所述分量组中的每个分量指出在生成所述这组词时,一相应的候选聚类的活动程度。
24.如权利要求23所述的计算机可读存储介质,其中所述概率模型中的节点通过加权链接而连接到一起;且
其中如果所述概率模型中的一个聚类节点激发,则从该聚类节点到另一个节点的加权链接能够导致其他节点激发。
25.如权利要求24所述的计算机可读存储介质,其中如果一个节点具有活动的多个父辈节点,则该节点不激发的概率是来自活动的父辈节点的链接不激发的概率之积。
26.如权利要求22所述的计算机可读存储介质,其中所述概率模型包括一通用节点,该通用节点总是活动的,并具有对所有聚类节点的加权链接。
27.如权利要求24所述的计算机可读存储介质,其中选择所述候选聚类包括:
通过从与所述文档中的所述这组词相关联的终端节点开始,以相反的方向沿链接到达父聚类节点,来构造一证据树;
在生成所述这组词时,使用所述证据树来估计每个父聚类节点是活动的可能性;和
基于其被估计的可能性,选择一父聚类节点作为候选聚类节点。
28.如权利要求27所述的计算机可读存储介质,其中在生成所述这组词时,估计一特定父辈节点是活动的可能性可以包括考虑:
所述特定父辈节点是活动的无条件概率;
假设所述特定父辈节点的父辈节点是活动的,该特定父辈节点是活动的条件概率;和
假设所述特定父辈节点的子节点是活动的,该特定父辈节点是活动的条件概率。
29.如权利要求28所述的计算机可读存储介质,其中考虑所述条件概率包括考虑节点之间的链接上的权重。
30.如权利要求27所述的计算机可读存储介质,其中在生成所述这组词时,估计一特定父辈节点是活动的可能性包括:在估计过程期间标识终端节点,以确保终端节点不会被分解成估计值超过一次。
31.如权利要求27所述的计算机可读存储介质,其中构造所述证据树包括从所述证据树剪除不可能的节点。
32.如权利要求23所述的计算机可读存储介质,其中在构造所述分量组期间,一个候选聚类在生成所述这组词时的活动程度是通过计算候选聚类在生成所述这组词时是活动的概率来确定的。
33.如权利要求23所述的计算机可读存储介质,其中在构造所述分量组期间,一个候选聚类在生成所述这组词时的活动程度是通过使候选聚类在生成所述这组词时是活动的概率和该候选聚类的活动值相乘来确定的,其中所述活动值指出有多少从该候选聚类到其他节点的链接可能激发。
34.如权利要求21所述的计算机可读存储介质,其中构造所述分量组包括归一化所述分量组。
35.如权利要求23所述的计算机可读存储介质,其中构造所述分量组包括逼近一特定候选聚类在所述概率模型的各个状态是活动的概率,这些状态可以已经生成所述这组词。
36.如权利要求35所述的计算机可读存储介质,其中估计所述概率包括:
选择可能已经在所述文档中生成所述这组词的所述概率模型的状态;和
在计算所述特定候选聚类是活动的概率时,只考虑被选择的状态。
37.如权利要求36所述的计算机可读存储介质,其中选择可能已经生成所述这组词的状态包括:
随机选择所述概率模型的起始状态;和
执行从所述起始状态开始的爬山运算,以达到一个可能已经生成所述这组词的状态。
38.如权利要求37所述的计算机可读存储介质,其中执行所述爬山运算包括定期地改变单个候选聚类的状态,而不考虑所述爬山运算的目标函数,以探查所述概率模型的状态,否则这些状态通过爬山运算是不能到达的。
39.如权利要求38所述的计算机可读存储介质,其中改变单个候选聚类的状态包括暂时固定被改变的状态以产生所述目标函数的一局部最佳值,其包括被改变的状态。
40.如权利要求21所述的计算机可读存储介质,其中所述文档可以包括:
网页;或
来自查询的一组术语。
41.一种根据概念上相关的词的聚类来描述文档的装置,包括:
一接收装置,其被配置用以接收所述文档,其中所述文档包含一组词;
一选择装置,其被配置用以选择概念上相关的词的候选聚类,所述聚类与所述这组词相关;
其中所述候选聚类是使用一模型选择的,该模型解释如何从概念上相关的词的聚类来生成多组词;和
一分量构造装置,其被配置用以构造一分量组来描述所述文档,其中该分量组包括候选聚类的分量,其中每个分量指出一相应的候选聚类与所述这组词的相关程度。
42.如权利要求41所述的装置,其中所述模型是概率模型,其包含表示词的随机变量的节点,以及表示概念上相关的词的聚类的随机变量的节点。
43.如权利要求42所述的装置,其中所述分量组中的每个分量指出在生成所述这组词时,一相应的候选聚类的活动程度。
44.如权利要求43所述的装置,其中所述概率模型中的节点通过加权链接而连接到一起;且
其中如果所述概率模型中的一个聚类节点激发,则从该聚类节点到另一个节点的加权链接能够导致其他节点激发。
45.如权利要求44所述的装置,其中如果一个节点具有活动的多个父辈节点,则该节点不激活的概率是来自活动的父辈节点的链接不激发的概率之积。
46.如权利要求43所述的装置,其中所述概率模型包括一通用节点,该通用节点总是活动的,并具有对所有聚类节点的加权链接。
47.如权利要求44所述的装置,其中所述选择装置被配置用以:
通过从与所述文档中的所述这组词相关联的终端节点开始,以相反的方向沿链接到达父聚类节点,来构造一证据树;
在生成所述这组词时,使用所述证据树来估计每个父聚类节点是活动的可能性;和
基于其被估计的可能性,选择一父聚类节点作为候选聚类节点。
48.如权利要求47所述的装置,其中在所述这组词的生成当中,当估计一特定父辈节点是活动的可能性时,所述选择装置被配置用以考虑至少以下之一:
所述特定父辈节点是活动的无条件概率;
假设所述特定父辈节点的父辈节点是活动的,该特定父辈节点是活动的条件概率;和
假设所述特定父辈节点的子节点是活动的,该特定父辈节点是活动的条件概率。
49.如权利要求48所述的装置,其中当考虑所述条件概率时,所述选择装置被配置用以考虑节点之间的链接上的权重。
50.如权利要求47所述的装置,其中在所述这组词的生成当中,当估计一特定父辈节点是活动的可能性时,所述选择装置被配置用以在估计过程期间标识终端节点,以确保终端节点不会被分解成估计值超过一次。
51.如权利要求47所述的装置,其中当构造所述证据树时,所述选择装置被配置用以从该证据树剪除不可能的节点。
52.如权利要求43所述的装置,其中当构造所述分量组中的一特定分量时,所述分量构造装置被配置用以通过计算候选聚类在生成所述这组词时是活动的概率,来确定候选聚类在生成所述这组词时的活动程度。
53.如权利要求43所述的装置,其中当构造所述分量组中的一特定分量时,所述分量构造装置被配置用以通过使候选聚类在生成所述这组词时是活动的概率和该候选聚类的活动值相乘,来确定该候选聚类在生成所述这组词时的活动程度,其中所述活动值指出有多少从该候选聚类到其他节点的链接可能激发。
54.如权利要求41所述的装置,其中所述分量构造装置被配置用以归一化所述分量组。
55.如权利要求43所述的装置,其中所述分量构造装置被配置用以逼近一特定候选聚类在所述概率模型的各个状态是活动的概率,这些状态可以已经生成所述这组词。
56.如权利要求55所述的装置,其中当逼近所述概率时,所述分量构造装置被配置用以:
选择可能已经在所述文档中生成所述这组词的所述概率模型的状态;和
在计算所述特定候选聚类是活动的概率时,只考虑被选择的状态。
57.如权利要求56所述的装置,其中当选择可能已经生成所述这组词的状态时,所述分量构造装置被配置用以:
随机选择所述概率模型的起始状态;和
执行从所述起始状态开始的爬山运算,以达到一个可能已经生成所述这组词的状态。
58.如权利要求58所述的装置,其中当执行所述爬山运算时,所述分量构造装置被配置用以定期地改变单个候选聚类的状态,而不考虑所述爬山运算的目标函数,以探查所述概率模型的状态,否则这些状态通过爬山运算是不能到达的。
59.如权利要求59所述的装置,其中当改变单个候选聚类的状态时,所述分量构造装置被配置用以暂时固定已改变的状态以产生所述目标函数的一局部最佳值,其包括被改变的状态。
60.如权利要求41所述的装置,其中所述文档可以包括:
网页;或
来自查询的一组术语。
61.一种包含一数据结构的计算机可读存储介质,该数据结构有助于根据概念上相关的词的聚类来描述文档,所述数据结构包括:
一概率模型,其包含表示词的随机变量的节点,以及表示概念上相关的词的聚类的随机变量的节点;
其中所述概率模型中的节点是通过加权链接而被连接到一起的;其中如果所述概率模型中的一个聚类节点激发,则从该聚类节点到另一个节点的加权链接能够导致其他节点激发;和
其中所述另一个节点能够和一词或一聚类相关联。
62.如权利要求61所述的计算机可读存储介质,其中所述概率模型包括一通用节点,该通用节点总是活动的并具有到所有聚类节点的加权链接。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US41614402P | 2002-10-03 | 2002-10-03 | |
US60/416,144 | 2002-10-03 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1711536A true CN1711536A (zh) | 2005-12-21 |
CN100504856C CN100504856C (zh) | 2009-06-24 |
Family
ID=32069938
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2003801030451A Expired - Lifetime CN100504856C (zh) | 2002-10-03 | 2003-10-03 | 基于相关词的聚类描述文档的方法和装置 |
Country Status (7)
Country | Link |
---|---|
US (2) | US7383258B2 (zh) |
EP (1) | EP1546932A4 (zh) |
JP (1) | JP4465274B2 (zh) |
KR (1) | KR101014895B1 (zh) |
CN (1) | CN100504856C (zh) |
CA (1) | CA2500914C (zh) |
WO (1) | WO2004031916A2 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102236664A (zh) * | 2010-04-28 | 2011-11-09 | 百度在线网络技术(北京)有限公司 | 基于语义归一化的检索系统、检索方法以及信息处理方法 |
CN101493823B (zh) * | 2007-10-05 | 2012-06-13 | 富士通株式会社 | 根据单词相关度识别单词聚类 |
CN108475288A (zh) * | 2016-02-19 | 2018-08-31 | 华为技术有限公司 | 一种联合数据库统一访问控制的系统、方法和设备 |
CN116821053A (zh) * | 2023-08-30 | 2023-09-29 | 之江实验室 | 数据上报方法、装置、计算机设备和存储介质 |
Families Citing this family (124)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8229957B2 (en) * | 2005-04-22 | 2012-07-24 | Google, Inc. | Categorizing objects, such as documents and/or clusters, with respect to a taxonomy and data structures derived from such categorization |
US7231393B1 (en) * | 2003-09-30 | 2007-06-12 | Google, Inc. | Method and apparatus for learning a probabilistic generative model for text |
US7020593B2 (en) * | 2002-12-04 | 2006-03-28 | International Business Machines Corporation | Method for ensemble predictive modeling by multiplicative adjustment of class probability: APM (adjusted probability model) |
GB0322600D0 (en) * | 2003-09-26 | 2003-10-29 | Univ Ulster | Thematic retrieval in heterogeneous data repositories |
US7617205B2 (en) | 2005-03-30 | 2009-11-10 | Google Inc. | Estimating confidence for query revision models |
US8010459B2 (en) * | 2004-01-21 | 2011-08-30 | Google Inc. | Methods and systems for rating associated members in a social network |
US8015119B2 (en) | 2004-01-21 | 2011-09-06 | Google Inc. | Methods and systems for the display and navigation of a social network |
EP1562111B1 (en) * | 2004-02-03 | 2017-04-26 | Sap Se | A context modeller for modelling a context representation and a method of modelling a context representation |
US7313552B2 (en) * | 2004-03-19 | 2007-12-25 | Sybase, Inc. | Boolean network rule engine |
US7409383B1 (en) | 2004-03-31 | 2008-08-05 | Google Inc. | Locating meaningful stopwords or stop-phrases in keyword-based retrieval systems |
US8019875B1 (en) | 2004-06-04 | 2011-09-13 | Google Inc. | Systems and methods for indicating a user state in a social network |
US8832132B1 (en) | 2004-06-22 | 2014-09-09 | Google Inc. | Personalizing search queries based on user membership in social network communities |
US9223868B2 (en) | 2004-06-28 | 2015-12-29 | Google Inc. | Deriving and using interaction profiles |
US7860314B2 (en) * | 2004-07-21 | 2010-12-28 | Microsoft Corporation | Adaptation of exponential models |
US8015019B1 (en) | 2004-08-03 | 2011-09-06 | Google Inc. | Methods and systems for providing a document |
WO2006034038A2 (en) * | 2004-09-17 | 2006-03-30 | Become, Inc. | Systems and methods of retrieving topic specific information |
US9031898B2 (en) * | 2004-09-27 | 2015-05-12 | Google Inc. | Presentation of search results based on document structure |
US7797344B2 (en) * | 2004-12-23 | 2010-09-14 | Become, Inc. | Method for assigning relative quality scores to a collection of linked documents |
US7668822B2 (en) * | 2004-12-23 | 2010-02-23 | Become, Inc. | Method for assigning quality scores to documents in a linked database |
US7716140B1 (en) | 2004-12-31 | 2010-05-11 | Google Inc. | Methods and systems for controlling access to relationship information in a social network |
US7567946B2 (en) * | 2005-03-14 | 2009-07-28 | Xerox Corporation | Method, apparatus, and article of manufacture for estimating parameters of a probability model on shared device usage probabilistic semantic analysis |
US7870147B2 (en) * | 2005-03-29 | 2011-01-11 | Google Inc. | Query revision using known highly-ranked queries |
US8412780B2 (en) * | 2005-03-30 | 2013-04-02 | Google Inc. | Methods and systems for providing current email addresses and contact information for members within a social network |
CN100470544C (zh) | 2005-05-24 | 2009-03-18 | 国际商业机器公司 | 用于链接文档的方法、设备和系统 |
US7818208B1 (en) | 2005-06-28 | 2010-10-19 | Google Inc. | Accurately estimating advertisement performance |
US8204974B1 (en) * | 2005-08-30 | 2012-06-19 | Sprint Communications Company L.P. | Identifying significant behaviors within network traffic |
US8028337B1 (en) | 2005-08-30 | 2011-09-27 | Sprint Communications Company L.P. | Profile-aware filtering of network traffic |
US8316292B1 (en) | 2005-11-18 | 2012-11-20 | Google Inc. | Identifying multiple versions of documents |
US8095876B1 (en) | 2005-11-18 | 2012-01-10 | Google Inc. | Identifying a primary version of a document |
US20070157228A1 (en) | 2005-12-30 | 2007-07-05 | Jason Bayer | Advertising with video ad creatives |
US10600090B2 (en) | 2005-12-30 | 2020-03-24 | Google Llc | Query feature based data structure retrieval of predicted values |
US7827060B2 (en) * | 2005-12-30 | 2010-11-02 | Google Inc. | Using estimated ad qualities for ad filtering, ranking and promotion |
US20070156887A1 (en) * | 2005-12-30 | 2007-07-05 | Daniel Wright | Predicting ad quality |
US8065184B2 (en) * | 2005-12-30 | 2011-11-22 | Google Inc. | Estimating ad quality from observed user behavior |
US7849047B2 (en) | 2006-02-09 | 2010-12-07 | Ebay Inc. | Method and system to analyze domain rules based on domain coverage of the domain rules |
US7725417B2 (en) * | 2006-02-09 | 2010-05-25 | Ebay Inc. | Method and system to analyze rules based on popular query coverage |
US7739225B2 (en) | 2006-02-09 | 2010-06-15 | Ebay Inc. | Method and system to analyze aspect rules based on domain coverage of an aspect-value pair |
US7739226B2 (en) * | 2006-02-09 | 2010-06-15 | Ebay Inc. | Method and system to analyze aspect rules based on domain coverage of the aspect rules |
WO2007095075A2 (en) * | 2006-02-09 | 2007-08-23 | Ebay Inc. | Methods and systems to communicate information |
US7640234B2 (en) * | 2006-02-09 | 2009-12-29 | Ebay Inc. | Methods and systems to communicate information |
US8380698B2 (en) * | 2006-02-09 | 2013-02-19 | Ebay Inc. | Methods and systems to generate rules to identify data items |
US9443333B2 (en) * | 2006-02-09 | 2016-09-13 | Ebay Inc. | Methods and systems to communicate information |
US8019754B2 (en) * | 2006-04-03 | 2011-09-13 | Needlebot Incorporated | Method of searching text to find relevant content |
US8856145B2 (en) * | 2006-08-04 | 2014-10-07 | Yahoo! Inc. | System and method for determining concepts in a content item using context |
US7660804B2 (en) * | 2006-08-16 | 2010-02-09 | Microsoft Corporation | Joint optimization of wrapper generation and template detection |
US7831472B2 (en) | 2006-08-22 | 2010-11-09 | Yufik Yan M | Methods and system for search engine revenue maximization in internet advertising |
US20080066107A1 (en) | 2006-09-12 | 2008-03-13 | Google Inc. | Using Viewing Signals in Targeted Video Advertising |
EP1903457B1 (en) * | 2006-09-19 | 2012-05-30 | Exalead | Computer-implemented method, computer program product and system for creating an index of a subset of data |
US7747607B2 (en) * | 2006-09-21 | 2010-06-29 | Yahoo! Inc. | Determining logically-related sub-strings of a string |
US9075864B2 (en) | 2006-10-10 | 2015-07-07 | Abbyy Infopoisk Llc | Method and system for semantic searching using syntactic and semantic analysis |
US9098489B2 (en) | 2006-10-10 | 2015-08-04 | Abbyy Infopoisk Llc | Method and system for semantic searching |
US9892111B2 (en) | 2006-10-10 | 2018-02-13 | Abbyy Production Llc | Method and device to estimate similarity between documents having multiple segments |
US9495358B2 (en) | 2006-10-10 | 2016-11-15 | Abbyy Infopoisk Llc | Cross-language text clustering |
US9189482B2 (en) | 2012-10-10 | 2015-11-17 | Abbyy Infopoisk Llc | Similar document search |
US9069750B2 (en) | 2006-10-10 | 2015-06-30 | Abbyy Infopoisk Llc | Method and system for semantic searching of natural language texts |
JP5011947B2 (ja) * | 2006-10-19 | 2012-08-29 | オムロン株式会社 | Fmeaシートの作成方法およびfmeaシート自動作成装置 |
US7945854B2 (en) * | 2006-10-30 | 2011-05-17 | Palo Alto Research Center Incorporated | Systems and methods for the combination and display of social and textual content |
US20080172293A1 (en) * | 2006-12-28 | 2008-07-17 | Yahoo! Inc. | Optimization framework for association of advertisements with sequential media |
US20080159114A1 (en) * | 2007-01-02 | 2008-07-03 | Dipietro Richard Anthony | High density data storage medium, method and device |
US9507858B1 (en) * | 2007-02-28 | 2016-11-29 | Google Inc. | Selectively merging clusters of conceptually related words in a generative model for text |
US8584013B1 (en) | 2007-03-20 | 2013-11-12 | Google Inc. | Temporal layers for presenting personalization markers on imagery |
US8271476B2 (en) * | 2007-03-30 | 2012-09-18 | Stuart Donnelly | Method of searching text to find user community changes of interest and drug side effect upsurges, and presenting advertisements to users |
US8275773B2 (en) * | 2007-03-30 | 2012-09-25 | Stuart Donnelly | Method of searching text to find relevant content |
US8103707B2 (en) * | 2007-03-30 | 2012-01-24 | Verizon Patent And Licensing Inc. | Method and system for presenting non-linear content based on linear content metadata |
US8229942B1 (en) | 2007-04-17 | 2012-07-24 | Google Inc. | Identifying negative keywords associated with advertisements |
US8086624B1 (en) | 2007-04-17 | 2011-12-27 | Google Inc. | Determining proximity to topics of advertisements |
US8667532B2 (en) * | 2007-04-18 | 2014-03-04 | Google Inc. | Content recognition for targeting video advertisements |
US20080276266A1 (en) * | 2007-04-18 | 2008-11-06 | Google Inc. | Characterizing content for identification of advertising |
US8433611B2 (en) * | 2007-06-27 | 2013-04-30 | Google Inc. | Selection of advertisements for placement with content |
US20090006190A1 (en) * | 2007-06-28 | 2009-01-01 | Google Inc. | Determining location-based commercial information |
US8073803B2 (en) * | 2007-07-16 | 2011-12-06 | Yahoo! Inc. | Method for matching electronic advertisements to surrounding context based on their advertisement content |
US20090024470A1 (en) * | 2007-07-20 | 2009-01-22 | Google Inc. | Vertical clustering and anti-clustering of categories in ad link units |
US8180725B1 (en) * | 2007-08-01 | 2012-05-15 | Google Inc. | Method and apparatus for selecting links to include in a probabilistic generative model for text |
US8799285B1 (en) | 2007-08-02 | 2014-08-05 | Google Inc. | Automatic advertising campaign structure suggestion |
US9064024B2 (en) | 2007-08-21 | 2015-06-23 | Google Inc. | Bundle generation |
US20090089261A1 (en) * | 2007-10-01 | 2009-04-02 | Wand, Inc. | Method for resolving failed search queries |
US8572087B1 (en) * | 2007-10-17 | 2013-10-29 | Google Inc. | Content identification |
US9824372B1 (en) | 2008-02-11 | 2017-11-21 | Google Llc | Associating advertisements with videos |
US8255948B1 (en) | 2008-04-23 | 2012-08-28 | Google Inc. | Demographic classifiers from media content |
US8214346B2 (en) * | 2008-06-27 | 2012-07-03 | Cbs Interactive Inc. | Personalization engine for classifying unstructured documents |
US20100037149A1 (en) * | 2008-08-05 | 2010-02-11 | Google Inc. | Annotating Media Content Items |
US8583618B2 (en) * | 2008-11-24 | 2013-11-12 | Business Objects S.A. | Determination of graphical format to present search results |
US8234274B2 (en) * | 2008-12-18 | 2012-07-31 | Nec Laboratories America, Inc. | Systems and methods for characterizing linked documents using a latent topic model |
US8099453B2 (en) * | 2009-01-22 | 2012-01-17 | Hewlett-Packard Development Company, L.P. | System and method for data clustering |
US20100211894A1 (en) * | 2009-02-18 | 2010-08-19 | Google Inc. | Identifying Object Using Generative Model |
US8296257B1 (en) | 2009-04-08 | 2012-10-23 | Google Inc. | Comparing models |
US8060512B2 (en) * | 2009-06-05 | 2011-11-15 | Xerox Corporation | Hybrid tensor-based cluster analysis |
DE102009031872A1 (de) | 2009-07-06 | 2011-01-13 | Siemens Aktiengesellschaft | Verfahren und Vorrichtung zur automatischen Suche nach Dokumenten in einem Datenspeicher |
US8326820B2 (en) * | 2009-09-30 | 2012-12-04 | Microsoft Corporation | Long-query retrieval |
US8229959B1 (en) | 2009-11-11 | 2012-07-24 | Google Inc. | Sharable search result labels |
US9152708B1 (en) | 2009-12-14 | 2015-10-06 | Google Inc. | Target-video specific co-watched video clusters |
US9002866B1 (en) | 2010-03-25 | 2015-04-07 | Google Inc. | Generating context-based spell corrections of entity names |
US8161073B2 (en) | 2010-05-05 | 2012-04-17 | Holovisions, LLC | Context-driven search |
AU2010202901B2 (en) * | 2010-07-08 | 2016-04-14 | Patent Analytics Holding Pty Ltd | A system, method and computer program for preparing data for analysis |
JP5403696B2 (ja) * | 2010-10-12 | 2014-01-29 | 株式会社Nec情報システムズ | 言語モデル生成装置、その方法及びそのプログラム |
US8751496B2 (en) | 2010-11-16 | 2014-06-10 | International Business Machines Corporation | Systems and methods for phrase clustering |
US9026479B1 (en) | 2011-02-02 | 2015-05-05 | Google Inc. | Predicting user interests |
US8811726B2 (en) * | 2011-06-02 | 2014-08-19 | Kriegman-Belhumeur Vision Technologies, Llc | Method and system for localizing parts of an object in an image for computer vision applications |
US8869208B2 (en) * | 2011-10-30 | 2014-10-21 | Google Inc. | Computing similarity between media programs |
US8997008B2 (en) | 2012-07-17 | 2015-03-31 | Pelicans Networks Ltd. | System and method for searching through a graphic user interface |
US9245024B1 (en) * | 2013-01-18 | 2016-01-26 | Google Inc. | Contextual-based serving of content segments in a video delivery system |
US9390383B2 (en) * | 2013-01-28 | 2016-07-12 | Georges Harik | Method for an optimizing predictive model using gradient descent and conjugate residuals |
US9600777B2 (en) | 2013-03-11 | 2017-03-21 | Georges Harik | Configuring and optimizing computational structure for a machine learning application using a tuple of vectors |
US10599753B1 (en) | 2013-11-11 | 2020-03-24 | Amazon Technologies, Inc. | Document version control in collaborative environment |
US10540404B1 (en) * | 2014-02-07 | 2020-01-21 | Amazon Technologies, Inc. | Forming a document collection in a document management and collaboration system |
US11336648B2 (en) | 2013-11-11 | 2022-05-17 | Amazon Technologies, Inc. | Document management and collaboration system |
US9542391B1 (en) | 2013-11-11 | 2017-01-10 | Amazon Technologies, Inc. | Processing service requests for non-transactional databases |
US9652554B2 (en) * | 2013-12-26 | 2017-05-16 | Facebook, Inc. | Systems and methods for adding users to a networked computer system |
CA2973706A1 (en) * | 2014-01-15 | 2015-07-23 | Intema Solutions Inc. | Item classification method and selection system for electronic solicitation |
CN103810266B (zh) * | 2014-01-27 | 2017-04-05 | 中国电子科技集团公司第十研究所 | 语义网络目标识别判证方法 |
US10691877B1 (en) | 2014-02-07 | 2020-06-23 | Amazon Technologies, Inc. | Homogenous insertion of interactions into documents |
WO2015145555A1 (ja) * | 2014-03-25 | 2015-10-01 | 株式会社日立製作所 | 確率推論システム |
US9811931B2 (en) | 2014-06-02 | 2017-11-07 | Business Objects Software Limited | Recommendations for creation of visualizations |
US9807073B1 (en) | 2014-09-29 | 2017-10-31 | Amazon Technologies, Inc. | Access to documents in a document management and collaboration system |
US9928232B2 (en) | 2015-02-27 | 2018-03-27 | Microsoft Technology Licensing, Llc | Topically aware word suggestions |
CN104881400B (zh) * | 2015-05-19 | 2018-01-19 | 上海交通大学 | 基于联想网络的语义相关性计算方法 |
US9684842B2 (en) | 2015-10-29 | 2017-06-20 | The Nielsen Company (Us), Llc | Methods and apparatus to extract text from imaged documents |
US10803245B2 (en) * | 2016-09-06 | 2020-10-13 | Microsoft Technology Licensing, Llc | Compiling documents into a timeline per event |
JP7089513B2 (ja) | 2016-11-11 | 2022-06-22 | デンネマイヤー オクティマイン ゲーエムベーハー | 意味的検索のための装置および方法 |
CN108075959B (zh) * | 2016-11-14 | 2021-03-12 | 腾讯科技(深圳)有限公司 | 一种会话消息处理方法和装置 |
JP6751064B2 (ja) * | 2017-09-20 | 2020-09-02 | 株式会社東芝 | データ検索システム、データ検索方法、及びプログラム |
JP6652986B2 (ja) * | 2018-05-02 | 2020-02-26 | 株式会社Fronteo | 危険行動予測装置、予測モデル生成装置および危険行動予測用プログラム |
US11205179B1 (en) | 2019-04-26 | 2021-12-21 | Overstock.Com, Inc. | System, method, and program product for recognizing and rejecting fraudulent purchase attempts in e-commerce |
WO2024186352A1 (en) * | 2023-03-09 | 2024-09-12 | PwC Product Sales LLC | Method and apparatus for knowledge representation and reasoning in accounting |
Family Cites Families (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5675819A (en) * | 1994-06-16 | 1997-10-07 | Xerox Corporation | Document information retrieval using global word co-occurrence patterns |
US6460036B1 (en) * | 1994-11-29 | 2002-10-01 | Pinpoint Incorporated | System and method for providing customized electronic newspapers and target advertisements |
GB9426165D0 (en) | 1994-12-23 | 1995-02-22 | Anthony Andre C | Method of retrieving and displaying data |
US5794050A (en) | 1995-01-04 | 1998-08-11 | Intelligent Text Processing, Inc. | Natural language understanding system |
US7013298B1 (en) | 1996-07-30 | 2006-03-14 | Hyperphrase Technologies, Llc | Method and system for automated data storage and retrieval |
US6820093B2 (en) | 1996-07-30 | 2004-11-16 | Hyperphrase Technologies, Llc | Method for verifying record code prior to an action based on the code |
US6078914A (en) | 1996-12-09 | 2000-06-20 | Open Text Corporation | Natural language meta-search system and method |
US6137911A (en) | 1997-06-16 | 2000-10-24 | The Dialog Corporation Plc | Test classification system and method |
US6606143B1 (en) | 1998-03-13 | 2003-08-12 | Sharp Kabushiki Kaisha | Liquid crystal display device with phase element |
US6108662A (en) | 1998-05-08 | 2000-08-22 | Allen-Bradley Company, Llc | System method and article of manufacture for integrated enterprise-wide control |
US6161130A (en) * | 1998-06-23 | 2000-12-12 | Microsoft Corporation | Technique which utilizes a probabilistic classifier to detect "junk" e-mail by automatically updating a training and re-training the classifier based on the updated training set |
US7181438B1 (en) | 1999-07-21 | 2007-02-20 | Alberti Anemometer, Llc | Database access system |
GB9925741D0 (en) | 1999-10-30 | 1999-12-29 | Ibm | Interaction with database reports |
US20020120619A1 (en) | 1999-11-26 | 2002-08-29 | High Regard, Inc. | Automated categorization, placement, search and retrieval of user-contributed items |
US6868525B1 (en) | 2000-02-01 | 2005-03-15 | Alberti Anemometer Llc | Computer graphic display visualization system and method |
JP2001273293A (ja) | 2000-03-23 | 2001-10-05 | Nippon Telegr & Teleph Corp <Ntt> | 単語推定方法及び装置及び単語推定プログラムを格納した記録媒体 |
US6684205B1 (en) | 2000-10-18 | 2004-01-27 | International Business Machines Corporation | Clustering hypertext with applications to web searching |
US7363308B2 (en) * | 2000-12-28 | 2008-04-22 | Fair Isaac Corporation | System and method for obtaining keyword descriptions of records from a large database |
US20020087310A1 (en) | 2000-12-29 | 2002-07-04 | Lee Victor Wai Leung | Computer-implemented intelligent dialogue control method and system |
US8001118B2 (en) | 2001-03-02 | 2011-08-16 | Google Inc. | Methods and apparatus for employing usage statistics in document retrieval |
WO2003075186A1 (en) | 2002-03-01 | 2003-09-12 | Paul Jeffrey Krupin | A method and system for creating improved search queries |
GB2391967A (en) | 2002-08-16 | 2004-02-18 | Canon Kk | Information analysing apparatus |
US7231393B1 (en) | 2003-09-30 | 2007-06-12 | Google, Inc. | Method and apparatus for learning a probabilistic generative model for text |
US7685236B1 (en) | 2003-09-24 | 2010-03-23 | Google Inc. | Methods and systems for developing an instant messaging network |
US8224964B1 (en) | 2004-06-30 | 2012-07-17 | Google Inc. | System and method of accessing a document efficiently through multi-tier web caching |
US7437364B1 (en) | 2004-06-30 | 2008-10-14 | Google Inc. | System and method of accessing a document efficiently through multi-tier web caching |
US9820658B2 (en) | 2006-06-30 | 2017-11-21 | Bao Q. Tran | Systems and methods for providing interoperability among healthcare devices |
US7558622B2 (en) | 2006-05-24 | 2009-07-07 | Bao Tran | Mesh network stroke monitoring appliance |
-
2003
- 2003-09-30 US US10/676,571 patent/US7383258B2/en active Active
- 2003-10-03 CA CA2500914A patent/CA2500914C/en not_active Expired - Fee Related
- 2003-10-03 JP JP2004541690A patent/JP4465274B2/ja not_active Expired - Lifetime
- 2003-10-03 CN CNB2003801030451A patent/CN100504856C/zh not_active Expired - Lifetime
- 2003-10-03 WO PCT/US2003/031545 patent/WO2004031916A2/en active Application Filing
- 2003-10-03 KR KR1020057005832A patent/KR101014895B1/ko active IP Right Grant
- 2003-10-03 EP EP03774573A patent/EP1546932A4/en not_active Ceased
-
2008
- 2008-06-02 US US12/131,637 patent/US8688720B1/en active Active
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101493823B (zh) * | 2007-10-05 | 2012-06-13 | 富士通株式会社 | 根据单词相关度识别单词聚类 |
CN102236664A (zh) * | 2010-04-28 | 2011-11-09 | 百度在线网络技术(北京)有限公司 | 基于语义归一化的检索系统、检索方法以及信息处理方法 |
CN102236664B (zh) * | 2010-04-28 | 2016-04-13 | 百度在线网络技术(北京)有限公司 | 基于语义归一化的检索系统、检索方法以及信息处理方法 |
CN108475288A (zh) * | 2016-02-19 | 2018-08-31 | 华为技术有限公司 | 一种联合数据库统一访问控制的系统、方法和设备 |
CN116821053A (zh) * | 2023-08-30 | 2023-09-29 | 之江实验室 | 数据上报方法、装置、计算机设备和存储介质 |
CN116821053B (zh) * | 2023-08-30 | 2023-11-21 | 之江实验室 | 数据上报方法、装置、计算机设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CA2500914A1 (en) | 2004-04-15 |
EP1546932A2 (en) | 2005-06-29 |
JP4465274B2 (ja) | 2010-05-19 |
CA2500914C (en) | 2010-12-21 |
EP1546932A4 (en) | 2008-04-09 |
WO2004031916A3 (en) | 2004-12-23 |
JP2006502480A (ja) | 2006-01-19 |
CN100504856C (zh) | 2009-06-24 |
AU2003282688A1 (en) | 2004-04-23 |
WO2004031916A2 (en) | 2004-04-15 |
US7383258B2 (en) | 2008-06-03 |
KR20050065578A (ko) | 2005-06-29 |
US20040068697A1 (en) | 2004-04-08 |
US8688720B1 (en) | 2014-04-01 |
KR101014895B1 (ko) | 2011-02-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1711536A (zh) | 基于相关词的聚类描述文档的方法和装置 | |
CN112800218B (zh) | 基于消息分类自动扩增消息交换话题 | |
CN1535433A (zh) | 基于分类的可扩展交互式文档检索系统 | |
Wang et al. | Truncation-free online variational inference for Bayesian nonparametric models | |
US7231393B1 (en) | Method and apparatus for learning a probabilistic generative model for text | |
CN1145901C (zh) | 一种基于信息挖掘的智能决策支持构造方法 | |
CN1219266C (zh) | 一种实现多路对话的人-机汉语口语对话系统的方法 | |
CN101079026A (zh) | 文本相似度、词义相似度计算方法和系统及应用系统 | |
KR20190015797A (ko) | 인공지능(ai)을 통한 딥러닝훈련모듈과, 순위화프레임워크모듈을 활용하여, 법률전문가에게 최적화된 모범답안을 제시하는 한편, 법률정보를 의미 벡터로 변환하여, 데이터베이스에 저장하고, 이에 대한 문자열 사전모듈을 활용한 온라인 법률정보사전을 제공하는 시스템 및 그 방법 | |
CN1975858A (zh) | 会话控制装置 | |
WO2019032204A1 (en) | INTELLIGENT INTERROGATION SYSTEM FOR ATTACHMENTS | |
CN1573744A (zh) | 进行非结构化信息管理和自动文本分析的系统和方法 | |
CN1632749A (zh) | 构建智能用户辅助设备的方法 | |
CN1495639A (zh) | 文本语句比较装置 | |
CN1542736A (zh) | 在自然语言理解系统中用于位置的基于规则的语法和用于前终端的统计模型 | |
CN1628298A (zh) | 综合从搜索系统中使用的文档中抽取知识的自学习系统的方法 | |
Singhal | Term weighting revisited | |
Sanagar et al. | Unsupervised genre-based multidomain sentiment lexicon learning using corpus-generated polarity seed words | |
CN1741012A (zh) | 文本检索装置及方法 | |
Wang et al. | KG2Vec: A node2vec-based vectorization model for knowledge graph | |
CN1647069A (zh) | 对话控制系统和对话控制方法 | |
Pan | Optimization of information retrieval algorithm for digital library based on semantic search engine | |
CN1924995A (zh) | 基于内容分析的短信问答系统及实现方法 | |
CN1514387A (zh) | 语音查询中的辨音方法 | |
CN101060396A (zh) | 一种事件的检测方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CP01 | Change in the name or title of a patent holder | ||
CP01 | Change in the name or title of a patent holder |
Address after: California, USA Patentee after: Google Inc. Address before: California, USA Patentee before: GOOGLE, Inc. |
|
CX01 | Expiry of patent term | ||
CX01 | Expiry of patent term |
Granted publication date: 20090624 |