CN103765415A - 文档主题的并行生成 - Google Patents
文档主题的并行生成 Download PDFInfo
- Publication number
- CN103765415A CN103765415A CN201180071588.4A CN201180071588A CN103765415A CN 103765415 A CN103765415 A CN 103765415A CN 201180071588 A CN201180071588 A CN 201180071588A CN 103765415 A CN103765415 A CN 103765415A
- Authority
- CN
- China
- Prior art keywords
- word
- theme
- matrix
- processor
- document
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
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/31—Indexing; Data structures therefor; Storage structures
- G06F16/316—Indexing structures
- G06F16/319—Inverted lists
-
- 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/36—Creation of semantic tools, e.g. ontology or thesauri
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)
- Computational Linguistics (AREA)
- Machine Translation (AREA)
- Multi Processors (AREA)
Abstract
用于增强的并行隐含狄利克雷分布(PLDA+)的方法、系统和设备,包括被编码在计算机存储介质上的计算机程序。PLDA+系统是多个处理器的系统,该多个处理器被配置成生成多个文档的主题。多个处理器被指定为两种类型:文档处理器和矩阵处理器。在文档处理器之间分配文档。在矩阵处理器之间分配所生成的主题。在文档处理器和矩阵处理器上执行的任务被分成两种类型的任务:计算绑定任务和通信绑定任务。计算绑定任务是CPU密集型任务;通信绑定任务是网络密集型任务。采用数据布置和流水线策略,使得计算绑定任务和通信绑定任务以均衡方式被分发给各处理器,并且被并行执行。
Description
技术领域
本说明书涉及文档处理。
背景技术
电子文档可以具有一个或更多个主题。计算机可以使用一种被称为主题模型的统计模型从电子文档中自动提取一个或更多个主题。示例主题模型为隐含狄利克雷分布(LDA)。根据LDA,主题是词的概率分布。例如,具有与词斑猫(tabby)、猫叫(purr)和小猫(kitten)相关联的指定的概率分布的主题可以是关于“猫”的主题。计算机可以分析电子文档,包括例如计算如文档中包括的词斑猫、猫叫和小猫中的每个词的概率分布。所计算的概率分布可以指示该电子文档与主题“猫”相关联的可能性。主题是抽象的。词“猫”是抽象的主题的任意标签。
在LDA中,每个文档被建模为K个主题的混合,其中,每个主题k是关于W个词的词汇表的多项分布φk。对于任意文档dj,其主题矩阵θj是使用参数α从狄利克雷先验(Dirichlet prior)中得到的概率分布。对于dj中的每个第i个词xij,从θj中得到主题zij=k,并且从φk中得到词xij。因此,由下式给出LDA的生成操作:
θj~Dir(α),φk~Dir(β),zij=k~θj,xij~φk, (1)
其中,Dir(*)表示狄利克雷分布;α和β各自是狄利克雷先验。
发明内容
描述了增强的并行隐含狄利克雷分布(PLDA+)系统和方法。PLDA+系统是多个处理器的系统,多个处理器被配置成生成多个文档的主题。多个处理器被指定为两种类型:文档处理器和矩阵处理器。在该上下文中,术语“处理器”指代被配置成执行下面所描述的视情况而定由文档处理器或矩阵处理器执行的动作的计算机。计算机可以被配置成借助使软件、固件、硬件或其组合安装在计算机上来执行这些动作,该软件、固件、硬件或其组合在工作中使得系统执行这些动作。类似地,一个或更多个计算机程序可以被配置成借助包括指令来执行特定动作,在由一个或更多个计算机执行这些指令时使得计算机执行这些动作。
文档在文档处理器之间分配。生成的主题在矩阵处理器之间分配。在文档处理器和矩阵处理器上执行的任务被分成两种类型的任务:计算绑定任务和通信绑定任务。计算绑定任务是CPU密集型任务;通信绑定任务是网络密集型任务。使用数据布置(data placement)和流水线策略(pipeline strategy),使得计算绑定任务和通信绑定任务以均衡方式被分发给处理器并且被并行执行。
一般地,本说明书中所描述的主题的一个方面可以用以下操作来实施,这些操作包括使用一个或更多个文档处理器和多个矩阵处理器从一个或更多个文档的集合提取词-主题矩阵。词-主题矩阵包括一个或更多个文档的集合的多个主题。至少部分地由词集中的一个或更多个词来定义主题中的每个主题。一个或更多个词中的每个词与概率相关联。根据一个或更多个文档的集合的词索引来创建词集。至少部分地由与一个或更多个主题相对应的第一维度以及与词集相对应的第二维度来定义词-主题矩阵。
矩阵处理器包括至少第一矩阵处理器和第二矩阵处理器。第一矩阵处理器被配置成存储和处理与词集的第一子集相对应的词-主题矩阵的第一部分。第二矩阵处理器被配置成存储和处理与词集的第二子集相对应的词-主题矩阵的第二部分。
一个或更多个文档处理器中的每个被配置成执行主题提取操作和矩阵交换操作。主题提取操作包括使用存储在第一矩阵处理器处的词-主题矩阵的第一部分来针对一个或更多个第一主题对一个或更多个文档的集合进行采样。第一主题可以包括一个或更多个文档的集合的多个主题的至少一部分。矩阵交换操作包括获取操作(fetching operation)或更新操作中的至少之一。获取操作包括从第二矩阵处理器获取待在针对一个或更多个第二主题对一个或更多个文档的集合进行采样时使用的词-主题矩阵的第二部分。第二主题可以包括一个或更多个文档的集合的多个主题的至少一部分,并且可以与第一主题相同或不同。更新操作包括:当提取到至少一个第二主题时,请求第二矩阵处理器使用所提取的第二主题来更新词-主题矩阵的第二部分,其中所提取的第二主题对应于第二子集中的词。
可选地,这些实施方式和其他实施方式可以包括下面的特征中的一个或更多个。这些操作还包括将词集中的词组织为循环队列。一个或更多个文档处理器包括多个处理器。操作还包括将多个文档处理器中的第一文档处理器配置成使用队列的第一位置处的词来开始执行主题提取操作;以及将多个文档处理器中的第二文档处理器配置成使用队列的第二位置处的词来开始执行主题提取操作,其中,第一位置不同于第二位置。
操作还可以包括根据加权轮询调度(round robin schedule)将词集中的词分配给多个矩阵处理器。根据加权轮询调度来对词进行分配可以包括:确定词集中的每个词的权重;确定多个矩阵处理器中的每个处理器的负荷;根据词的权重对词集中的词进行排序;以及迭代地将具有最大权重的词分配给具有最小负荷的矩阵处理器。确定词集中的每个词的权重可以包括确定驻留有词的文档处理器的数量。确定多个矩阵处理器中的每个矩阵处理器的负荷可以包括确定该矩阵处理器上词的权重之和。
操作还可以包括将一个或更多个文档处理器中的每个文档处理器配置成基于第一词束(word bundle)和第二词束执行主题提取操作。第一词束可以对应于词集的第一子集。第二词束可以对应于词集的第二子集。针对一个或更多个第一主题对一个或更多个文档的集合进行采样包括:对一个或更多个文档的集合执行吉布斯采样。
本说明书中所描述的主题的另一方面可以用以下操作来实施,这些操作包括将词-主题矩阵的第一部分分配给第一矩阵处理器。词-主题矩阵包括一个或更多个文档的集合的多个主题。每个主题包括词集中的一个或更多个词。一个或更多个词中的每个词与相应概率相关联。词集包括来自一个或更多个文档的集合的词索引的词。操作包括将词-主题矩阵的第二部分分配给第二矩阵处理器。词-主题矩阵的第二部分不同于词-主题矩阵的第一部分。操作包括在文档处理器上执行主题提取操作。文档提取操作包括使用存储在第一矩阵处理器处的词-主题矩阵的第一部分来针对一个或更多个第一主题对一个或更多个文档的集合进行采样。操作包括在文档处理器上并且与执行主题提取操作并行地执行矩阵交换操作。矩阵操作包括获取操作或更新操作中的至少一个。获取操作包括从第二矩阵处理器获取要在针对一个或更多个第二主题对一个或更多个文档的集合进行采样时使用的词-主题矩阵的第二部分。更新操作包括,当提取到至少一个第二主题时,请求第二矩阵处理器使用所提取的第二主题更新词-主题矩阵中的第二部分,其中所提取的第二主题对应于第二子集中的词。
本说明书中所描述的技术能够减少常规并行隐含狄利克雷分布(PLDA)的通信瓶颈。更具体地,并行执行计算绑定任务和通信绑定任务以提高PLDA的性能。在并行处理中,计算绑定任务屏蔽(mask)通信绑定任务,使得通信绑定任务的处理时间并不对主题生成的总处理时间做出显著贡献。另外,本说明书中所描述的技术使得能够在多个处理器之间实现灵活的负荷均衡,进一步增强了性能。另外,常规的主题提取方法,包括PLDA,经常将全部词-主题计数保存在每个处理器的存储器中。本说明书中所描述的技术将词-主题矩阵分发给多个矩阵处理器,降低了每个处理器处的存储器需求。
在附图和下面的描述中对本说明书中所描述的主题的实施方式的细节进行阐述。该主题的其他特征、方面和优点将根据描述、附图和权利要求而变得明显。
附图说明
图1A是示出用于使用PLDA技术从文档中提取主题的示例处理器的框图。
图1B是示出示例PLDA+系统的框图。
图2是示出数据布置技术的示例主题分布模式的框图。
图3A和图3B是示出处理流水线技术的示例事件序列的图。
图4是示出PLDA+系统中的示例词捆绑(word bundling)技术的图。
图5A和图5B是示出PLDA+系统中的各个处理器处的数据布置的框图。
图6是示出示例PLDA+过程的流程图。
图7是示出用于执行基于流水线的吉布斯采样的示例过程的流程图。
图8是示出PLDA+的通信方案的框图。
图9是示出在PLDA+系统中将处理器指定为文档处理器或矩阵处理器的技术的框图。
各个图中的相似的附图标记和命名指示相似的元件。
具体实施方式
图1A是示出用于使用PLDA+技术从文档中提取主题的示例处理器的框图。在PLDA+中,利用多个处理器从文档中提取主题。处理器102是多个处理器中的代表处理器。
在主题提取操作中,主题被表示为一个或更多个词-主题矩阵。当利用多个处理器从文档中提取主题时,传统的PLDA技术通常具有两个特征。每个处理器保存整个词-主题矩阵。每个处理器向其他处理器发送整个词-主题矩阵并且从其他处理器处接收整个词-主题矩阵。相比之下,在PLDA+中,文档和词-主题矩阵分布在多个处理器处。在矩阵交换操作中,所分布的矩阵在处理器之间同步。PLDA+中的主题提取操作和矩阵交换操作并行执行,从而相比于这些操作串行执行的常规PLDA技术,提高了计算和通信效率。
处理器102被配置成从D个文档中提取主题,其中D表示任意数字。D个文档在P个处理器之间分配。作为P个处理器之一的处理器102保存大约D/P个文档。D个文档对应于文档中的词的词汇表。词汇表包括W个词。处理器102存储矩阵104,矩阵104表示D/P个文档与W个词之间的对应关系。矩阵104是(D/P)×W矩阵。
处理器102也存储词-主题矩阵106。词-主题矩阵106是表示K个主题与W个词的词汇表之间的对应关系的矩阵。词-主题矩阵106是K×W矩阵,其中主题作为一个维度,词作为另一维度。词-主题矩阵106中的每个元素可以表示相应主题中的词的计数。可以通过对于D/P个文档的吉布斯采样的多次迭代来构造词-主题矩阵106。
在吉布斯采样的每次迭代之后,本地词-主题矩阵被全局同步。本地词-主题矩阵包括在处理器102处本地存储的词-主题矩阵106。当词-主题矩阵106与存储在其他处理器上的矩阵同步时,词-主题矩阵106被全局同步。
图1B是示出示例PLDA+系统110的框图。在PLDA+系统110中,利用数据布置和处理流水线技术相比于传统的PLDA增强了分布式处理的性能。
从高等级来看,PLDA+系统110分部分地保存被分发给各个处理器的多个矩阵,以用于从文档中提取主题。多个矩阵包括词-主题矩阵和文档-主题矩阵。词-主题矩阵(也称为词-主题计数矩阵)被表示为Cword。词-主题矩阵是具有如下多个元素的数据结构:其中,每个元素Cwk是被分配给主题k的词w的数量。文档-主题矩阵(也称为文档-主题计数矩阵)被表示为Cdoc。文档-主题矩阵是如下具有多个元素的数据结构:其中,每个元素Ckj是被分配给文档dj的主题k的数量。另外,PLDA+系统110保存主题计数向量Ctopic,在向量Ctopic中,每个元素Ck是文档集合(collection)中的主题k分配的数量。给定除了一个变量zij之外的所有变量的当前状态,其中zij表示词xij的主题分配(xij是文档dj中的第i个词),则zij的条件概率为:
其中,-ij表示相应词在计数中被排除;α和β各自是狄利克雷先验。每当zij被分配以从公式(2)中得到的新的主题时,Cword、Cdoc和Ctopic便被更新。在用于训练马尔科夫链的足够的采样迭代之后,θ和φ被如下估计:
其中,θkj表示给定文档j的主题k的概率,并且φwk表示给定主题k的词w的概率。
PLDA+系统110包括两种类型的处理器:文档处理器(Pd处理器)和矩阵处理器(Pw处理器)。文档处理器是能够执行任务的处理器,该任务包括保存文档、执行吉布斯采样操作和通信操作。D个文档在|Pd|个文档处理器间分配。文档处理器112是|Pd|个处理器之一。文档处理器112保存大约D/|Pd|个文档。文档处理器112保存词-文档矩阵116。词-文档矩阵116是表示文档处理器112的D/|Pd|个文档与D个文档的W个词的词汇表之间的对应关系的矩阵。词-文档矩阵116是(D/|Pd|)×W矩阵。
矩阵处理器是如下处理器:其中每个处理器能够执行任务,该任务包括保存W×K词-主题矩阵的一部分。W×K词-主题矩阵在|Pw|个矩阵处理器间分配。每个矩阵处理器被分配W个词的词汇表的子集。矩阵处理器114存储部分词-主题矩阵118。部分词-主题矩阵118包括与被分配给矩阵处理器114的词汇表的子集相对应的W×K词-主题矩阵的一部分。部分词-主题矩阵118的词维度对应于词汇表的子集。词维度的大小由W和|Pw|的值以及矩阵处理器的数量来确定。部分词-主题矩阵118的主题维度对应于K个主题。从而,部分词-主题矩阵118是(W/|Pw|)×K矩阵。
文档处理器112迭代地执行吉布斯采样。在吉布斯采样的每次迭代期间,文档处理器112在主题查找操作中给词分配新的主题,主题查找操作包括三个阶段:(1)文档处理器112从矩阵处理器114获取词的主题分布;(2)文档处理器112执行吉布斯采样并且给该词分配新的主题;以及(3)文档处理器112对保存该词的矩阵处理器(矩阵处理器114或其他矩阵处理器)进行更新。
图2是示出数据布置技术的示例主题分布模式的框图。文档处理器202(Pd0)给一个或更多个词中的每个词分配一个或更多个主题。文档处理器202与矩阵处理器204通信以同步由矩阵处理器204保存的部分词-主题矩阵。矩阵处理器204使用由文档处理器202分配给词的子集(该词的子集被分配给矩阵处理器204)中的词的主题来更新由矩阵处理器204保存的部分词-主题矩阵。
文档处理器206、208和210通过获取操作来与矩阵处理器204通信。文档处理器206、208和210中的每个获取在矩阵处理器204处存储的部分词-主题矩阵,而非整个K×W词-主题矩阵。从而,更新后的部分词-主题矩阵被传播至文档处理器206、208和210。
图3A和图3B是示出处理流水线技术的示例事件序列的图。如所示,在PLDA+系统中,多个操作并行执行,由此相比于常规的PLDA系统增强了整体性能。图3A和图3B中的每个表示四个词w1、w2、w3和w4的吉布斯采样的事件序列。在图3A和图3B中,标记有字母“F”的方框表示获取操作;标记有字母“U”的方框表示更新操作;标记有字母“S”的方框表示吉布斯采样操作。
图3A示出了采样时间Ts大于或等于获取时间Tf与更新时间Tu之和(Ts≥Tf+Tu)的示例情况。采样时间Ts是处理器执行作为计算绑定任务的吉布斯采样任务所花费的时间。获取时间Tf是处理器获取主题分布所花费的时间。更新时间Tu是处理器更新主题分布所花费的时间。获取主题分布和更新主题分布是通信绑定任务。
在示出的示例中,PLDA+系统从第一获取操作302开始,在第一获取操作302中,文档处理器从矩阵处理器获取词w1的主题分布。随后,文档处理器对词w1执行第一吉布斯采样操作304。与第一吉布斯采样操作304并行地,文档处理器执行第二获取操作306,在第二获取操作306中,文档处理器获取词w2的主题分布。
在文档处理器完成对词w1的第一吉布斯采样操作304之后,文档处理器执行第一更新操作308,在第一更新操作308中,文档处理器更新矩阵处理器上的w1的主题分布。更新主题分布w1包括向矩阵处理器发送更新请求。更新请求可以包括第一吉布斯采样操作304的结果。
在文档处理器完成第一吉布斯采样操作304之后,文档处理器对词w2执行第二吉布斯采样操作310;第二操作310与更新w1的主题分布并行执行。如果执行一个操作的时间在一定程度上与执行另一操作的时间重叠,则两个操作将被描述为并行发生。在文档处理器完成第一更新操作308之后,文档处理器执行第三获取操作312以获取词w3的主题分布。文档处理器与第二吉布斯采样操作314并行地执行第三获取操作312。文档处理器以类似的方式对第三词w3执行第三吉布斯采样操作316,执行第四获取操作318、第三更新操作320、第四吉布斯采样操作322和第四更新操作324。当Ts≥Tf+Tu时,PLDA+系统处理W个词的总时间为W*Ts+Tf+Tu。
图3B示出了采样时间Ts小于获取时间Tf与更新时间Tu之和(Ts<Tf +Tu)的示例情况。在示出的示例中,PLDA+系统从第一获取操作332开始,在第一获取操作332中,文档处理器获取词w1的主题分布。随后,文档处理器对词w1执行第一吉布斯采样操作334。与第一吉布斯采样操作334并行地,文档处理器执行第二获取操作336,在第二获取操作336中,文档处理器获取词w2的主题分布。
在文档处理器完成对词w1的第一吉布斯采样操作334之后,文档处理器执行第一更新操作338,在第一更新操作338中,文档处理器更新w1的主题分布。并行地,紧接在文档处理器完成第一吉布斯采样操作334之后,文档处理器对词w2执行第二吉布斯采样操作340。
当Ts<Tf+Tu时,文档处理器在完成第二吉布斯采样操作340之后执行第二更新操作342。随后,文档处理器执行第三获取操作346,在第三获取操作346中,文档处理器获取词w3的主题分布。然后,文档处理器执行第三吉布斯采样操作348,并且并行地执行第四获取操作350,在第四获取操作350中,文档处理器获取词w4的主题分布。在完成第三吉布斯采样操作348之后,文档处理器执行第三更新操作352和第四吉布斯采样操作354。最后,文档处理器执行第四更新操作356。当Ts<Tf+Tu时,PLDA+系统处理W个词的总时间大于W*Ts+Tf+Tu。
在一些实现中,吉布斯采样操作、获取操作和更新操作被调度以尽可能地使得Ts≥Tf+Tu。该调度利用词捆绑技术和低延迟通信调度技术以尽可能地确保Ts≥Tf+Tu。通过使用词捆绑,对词的组执行吉布斯采样操作以确保Ts充分长。在低延迟通信调度下,通信绑定任务以如下方式被调度,该方式使得计算绑定任务最小地被通信绑定任务延迟。下面进一步详细地描述词捆绑技术和低延迟通信调度。
图4是示出PLDA+系统中的示例词捆绑技术的图。为了方便,参照四个文档处理器Pd0至Pd3描述词捆绑技术。
文档处理器Pd0至Pd3可以按照词顺序402a至402d执行吉布斯采样。循环地处理在文档处理器的文档中出现若干次的词。而且,将不频繁出现的词与频繁出现的词捆绑以确保Ts充分长。当Tf+Tu的值已知时,可以确定每个吉布斯采样束中待处理的词出现的计数。词被捆绑使得Tf+Tu短于Ts以使在完成最后一个吉布斯采样任务时获取被完成的概率最大化,从而避免增加等待时间。
文档处理器Pd0至Pd3中的每个为被分发给文档处理器的文档建立词索引。索引中的词被组织成循环队列410。文档处理器Pd0至Pd3通过在循环队列410中巡回来执行吉布斯采样操作。为了避免多个文档处理器对同一词的同时访问,文档处理器中的每个被调度以在不同于其他文档处理器的起始位置的起始位置开始。例如,在包括词w0至w7的循环队列410中,文档处理器Pd0可以从词w0开始第一词;文档处理器Pd1可以从词w2开始第一词;文档处理器Pd2可以从词w4开始第一词;以及文档处理器Pd3可以从词w6开始第一词。
除了调度不同的文档处理器以在循环队列410中的不同位置处开始之外,部分词-主题矩阵以循环的方式分布在矩阵处理器上。部分词-主题矩阵的循环分布确保了:当在文档处理器处执行通信任务时,通信任务可以由相应的矩阵处理器而非多个矩阵处理器来服务。
图5A和图5B是示出PLDA+系统中的各个处理器处的数据布置的框图。图5A示出了矩阵处理器上的词布置。矩阵处理器506被配置成对来自文档处理器的获取请求和更新请求做出响应。W×K词-主题矩阵502根据词而被分发给多个矩阵处理器。在分发之后,每个矩阵处理器保存具有词的主题分布的大约W/|Pw|个词。矩阵处理器506可以将具有词的主题分布的W/|Pw|个词存储为(W/|Pw|)×K矩阵504。
可以利用词分布来实现空间负荷均衡。矩阵处理器506和其他矩阵处理器各自可以用于在吉布斯采样的迭代中处理相同数量的请求。
为了将W×K词-主题矩阵502分发给多个矩阵处理器,PLDA+系统保存两种数据结构:词权重数据结构和工作负荷(workload)数据结构。词权重数据结构是存储词权重的数据结构。词Wi驻留在其上的文档处理器的数量(其也是词的权重)被表示为mi。对于W个词,PLDA+系统保存向量工作负荷数据结构是包括关于矩阵处理器506上以及每个其他矩阵处理器上的工作负荷的信息的数据结构。矩阵处理器506的工作负荷被定义为矩阵处理器506上所有词的权重之和。矩阵处理器Pwi的工作负荷被表示为li。工作负荷数据结构包括表示为的向量。
在一些实现中,词独立并且一致地随机分布在矩阵处理器上。在一些实现中,可以使用加权轮询词布置。在加权轮询词布置中,通过词的权重以递增或递减顺序对词进行排序。当矩阵处理器506在多个矩阵处理器中具有最小工作负荷时,W个词的词汇表中的具有最大权重的词(例如,词Wi)被布置在矩阵处理器506上。然后,更新矩阵处理器506的工作负荷。重复选择操作、布置操作和更新操作,直到已经布置了所有的词。
在PLDA+系统将具有词主题分布的词布置在矩阵处理器506上之后,矩阵处理器506通过从文档处理器接收初始词-主题计数来建立其负责的词-主题计数矩阵然后,矩阵处理器506开始处理来自文档处理器的请求。来自文档处理器的请求可以具有三种类型:
-获取(pw,pd):请求由pd获取矩阵处理器pw上的总体主题计数。矩阵处理器pw会将pw上所有词的主题分布相加作为向量一旦由pd从每个矩阵处理器获取到所有的他们将被相加并且在用于吉布斯采样的公式(2)中用作
下面的表1中示出了用于在矩阵处理器506(在该算法中称为pw)处处理来自文档处理器的请求的示例算法。
表1. 在矩阵处理器处处理来自文档处理器的请求
在一些实现中,用于在文档处理器的吉布斯采样期间从所有矩阵处理器获取总的主题计数的最大间隔intermax的值被设置成等于词汇表中的词的数量。
矩阵处理器506处理与矩阵处理器506负责保存的词有关的所有请求。为了确保以及时的方式服务这些请求,PLDA+系统采用以下优先级方案:其中,按照请求期限来对请求进行排序。根据优先级方案中的本地词处理顺序,文档处理器可以设置从文档处理器发送的获取请求的通信完成期限。通信完成期限是时间限制,超过该时间限制请求会被忽略。通信完成期限可以被表示为各种时间单位。当文档处理器向矩阵处理器发送其请求时,期限被设置在请求报头中。矩阵处理器506基于等待的请求的期限来服务等待的请求。
图5B示出了文档处理器上的文档布置。词-文档矩阵510用于表示词与文档之间的映射。词-文档矩阵510是可以用于根据一个词标识一个或更多个文档的反向索引。
词-文档矩阵510可以分部分地在多个文档处理器间分配。词-文档矩阵510的一部分512可以包括W/|Pd|个文档和W个词。文档处理器516可以存储部分文档-词矩阵514,部分文档-词矩阵514对应于部分512。部分文档-词矩阵514是(W/|Pd|)×W矩阵。
图6是示出示例PLDA+过程600的流程图。PLDA+系统在一个或更多个文档处理器间分配(602)D个文档。PLDA+系统以均衡的方式将文档分配给文档处理器。这通过采用随机文档分配来实现。每个文档处理器被分配大约W/|Pd|个文档。这个分配阶段的时间复杂度为O(D)。
PLDA+系统为每个文档处理器的文档构造(603)反向索引。反向索引是基于词的索引。每个词w的索引结构是:
w→{(d1,z1),(d1,z2),(d2,z1)...} (4)
当词w在文档d1中出现n次时,存在n个条目。在一些实现中,PLDA+系统将d1中词w的所有出现记录为一个条目(d1,{z1,z2})。
PLDA+系统将词汇表中的词分组(604)成词束以用于吉布斯采样。将词分组成词束可以确保吉布斯采样操作的持续时间充分长以屏蔽通信操作。当通信任务可以在吉布斯采样操作的持续时间内完成时,吉布斯采样操作的持续时间充分长以屏蔽通信操作。如果词在文档处理器上仅出现一次,则与获取和更新该词的主题分布所需要的时间相比,对该词执行吉布斯采样花费较短的时间,从而不存在屏蔽。
为了确保屏蔽,PLDA+系统将多个词组合成词束,使得通信时间可以被更长的吉布斯采样时间屏蔽。词束中的所有词被布置在同一矩阵处理器上,使得一个请求可以获取词束中的所有词的主题分布。
对于文档处理器,PLDA+系统根据词的矩阵处理器来捆绑词。PLDA+系统基于词出现的次数以递减的顺序对布置在同一矩阵处理器上的词进行排序。然后,PLDA+系统建立经排序的词列表。然后,PLDA+系统迭代地从词列表的头部选择高频词并且从词列表的尾部选择一个或更多个低频词。PLDA+系统将所选择的高频词和所选择的一个或更多个低频词分组成词束。从而构造词束,矩阵处理器将响应于获取主题分布的请求来返回词束中的所有词。
PLDA+系统调度(606)词束以使通信瓶颈最小化。在一些实现中,PLDA+系统根据随机调度方案来调度词束。在随机调度方案中,将词汇表中的词存储为循环队列。在吉布斯采样期间,以顺时针或逆时针顺序从该队列中选择词。每个文档处理器从循环队列中的不同偏移开始,以避免同时访问同一矩阵处理器。当多个请求同时到达时,在一些矩阵处理器处可能会形成瓶颈。从而,一些文档处理器会需要在吉布斯采样能够开始之前等待响应。为了减少等待,如参照图4A所描述的,PLDA+系统在每个请求中注册期限。矩阵处理器根据请求的期限来处理请求。如果已经错过请求的期限,那么矩阵处理器可以放弃该请求。由于吉布斯采样的随机性质,偶尔丢失一轮吉布斯采样不影响总体性能。
PLDA+系统迭代地执行(608)基于流水线的吉布斯采样直到满足终止条件。使用阶段603中建立的反向索引,每当文档处理器已经从矩阵处理器获取了词w的主题分布之后,文档处理器执行该文档处理器上w的所有实例的吉布斯采样。在吉布斯采样之后,文档处理器将经更新的信息发送回相应矩阵处理器。
对于词在文档处理器上的多次出现,执行两个通信任务:一个是获取,一个是更新。如公式(2)中所示,为了给文档dj中的给定词xij=w计算和分配新的主题,PLDA+系统获得词w的词-主题分布主题计数向量Ctopic、以及文档dj的文档-主题分布文档处理器保存文档主题分布矩阵处理器保存最新的词-主题分布PLDA+系统采集所有矩阵处理器中的全局主题计数向量Ctopic。在为文档中的w分配新的主题之前,文档处理器从矩阵处理器中请求和Ctopic。在获取和Ctopic之后,文档处理器执行吉布斯采样,并且为w的出现分配新的主题。然后,文档处理器将词w的经更新的主题分布返回至负责的矩阵处理器。
文档处理器可以具有不同的处理速度。在PLDA+系统中,快速文档处理器可以在不必等待慢的文档处理器的情况下开始新一轮的基于流水线的吉布斯采样。下面参照图7描述基于流水线的吉布斯采样的进一步的细节。
图7是示出用于执行基于流水线的吉布斯采样的示例过程的流程图。文档处理器pd获取(702)用于吉布斯采样的总体主题计数。文档处理器pd获取总体主题分布Ctopic。在阶段702中,文档处理器pd向每个矩阵处理器提交一个或更多个获取请求fetch(pw,pd)。文档处理器pd接收来自矩阵处理器的包括全部的主题计数pw∈{0,...,|pw|-1}的响应。文档处理器pd通过使用下面的公式对来自每个矩阵处理器的总体主题计数求和来获得Ctopic:
文档处理器pd选择(704)F个词束并且将F个词束放入线程池中以获取词的主题分布。文档处理器向矩阵处理器提交一个或更多个获取请求。F个词束中的每个对应于获取请求。文档处理器pd接收来自矩阵处理器的对该请求的响应。响应包括主题分布。响应中的主题分布被存储在等待队列中。线程池可以并行地发送请求并且处理返回的响应。可以同时发送多个请求。同时发送的请求可以被分配相同的期限。
文档处理器pd从等待队列中选择(706)词的主题分布以执行吉布斯采样。一旦从矩阵处理器返回了对获取请求的响应,文档处理器pd可以立即开始吉布斯采样。在一些实现中,预获取请求的数量等于F。F的值被配置成使等待队列Qpd总是已经返回了等待吉布斯采样的词的主题分布的概率最大化。在一些实现中,F被配置成大于线程池中线程的数量。
文档处理器pd将更新后的文档分布放入(708)文档处理器pd的线程池中。文档处理器pd的线程池向矩阵处理器发送一个或更多个更新请求。文档处理器pd选择(710)新词束并且将新词束放入线程池中。文档处理器确定(712)是否满足更新条件。当不满足更新条件时,文档处理器pd进入阶段706以开始另一词的吉布斯采样。如果满足更新条件,则文档处理器获取(714)新的总体主题计数。
图8是示出PLDA+的通信方案的框图。文档处理器802包括请求子系统802。请求子系统804被配置成生成一个或更多个获取请求806。获取请求806中的每个包括词束,词束包括多个词w1、w2、…wn。获取请求806被放入线程池808中。线程池808将获取请求806发送给矩阵处理器810a、810b和810c。矩阵处理器810a、810b和810c返回词束中的词的主题分布812。
线程池808可以用于防止被一些繁忙的矩阵处理器阻塞。表示线程池808中允许保持的线程的最大数量的线程上限(cap)值R限定可以被发送至矩阵处理器810a、810b和810c的并行请求的数量的上限。R的值可以由网络环境确定。可以在吉布斯采样期间根据经验调整R的值的设置。当迭代期间的等待时间较长时,可以在下一迭代中增大R的值。在一些实现中,如参照图7所描述的,词束的数量F被设置成与R的值成比例。例如,在一些实现中,F被设置为R的值的两倍。
文档处理器802包括主题分布子系统814。主题分布子系统814将主题分布812放入等待队列中。主题分布子系统814从等待队列的头部取回主题分布以用于吉布斯采样。
文档处理器802包括吉布斯采样子系统816。吉布斯采样子系统816被配置成执行吉布斯采样并更新主题分布812,并且产生经更新的主题分布818。经更新的主题分布818被放入一个或更多个更新请求中,并且被提交给线程池808。线程池808将更新请求发送给矩阵处理器810a、810b和810c。
图9是示出在PLDA+系统中将处理器指定为文档处理器或矩阵处理器的技术的框图。PLDA+系统包括多个处理器902。处理器902中的一个或更多个被指定为文档处理器904。处理器902中的其余处理器被指定为矩阵处理器906。可以基于吉布斯采样的平均时间以及词-主题矩阵的通信的平均时间来计算矩阵处理器906与文档处理器902的数量比γ=|Pw|/|Pd|。当整个数据集的吉布斯采样的总时间为Ts时,从一个处理器向另一处理器传输所有词的主题分布的通信时间为Tt。对于文档处理器904,采样时间将是Ts/|Pd|。词的主题分布被同时传输至矩阵处理器906。传输时间为Ts/|Pw|。在下面的情况下,吉布斯采样操作屏蔽获取操作和更新操作:
本说明书中所描述的主题和操作的实施方式可以用数字电子电路,或者用包括本说明书中所公开的结构及其结构等同物的计算机软件、固件或硬件,或用其中的一个或更多个的组合来实现。本说明书中所描述的主题的实施方式可以实现为一个或更多个计算机程序,即,计算机程序指令的一个或更多个模块,该计算机程序指令被编码在计算机存储介质上以用于由数据处理设备来执行或控制数据处理设备的操作。替代地或附加地,程序指令可以被编码在人工生成的传播信号例如机器生成的电信号、光信号或电磁信号上,生成传播信号以对信息进行编码以传输至合适的接收器设备来由数据处理设备执行。计算机存储介质可以是或被包含于:计算机可读存储装置、计算机可读存储衬底(substrate)、随机或串行存取存储器阵列或装置、或其中的一个或更多个的组合。此外,尽管计算机存储介质不是传播信号,但是计算机存储介质可以是被编码在人工生成的传播信号中的计算机程序指令的源或目的地。计算机存储介质也可以是或被包含于:一个或更多个单独的物理部件或介质(例如,多个CD、磁盘、或其他存储装置)。
本说明书中所描述的操作可以实现为由数据处理设备对存储在一个或更多个计算机可读存储装置上的数据或从其他源接收的数据执行的操作。
术语“数据处理设备”包括用于处理数据的所有类型的设备、装置和机器,包括例如可编程处理单元、计算机、片上系统、个人计算机系统、台式计算机、手提电脑、笔记本、笔记本电脑、大型计算机系统、掌上电脑、工作站、网络计算机、应用服务器、存储装置、如摄像机、摄录相机、机顶盒、移动装置、视频游戏机、手持视频游戏装置等的消费电子装置、如交换机、调制解调器、路由器等的外围设备、或一般来说任何类型的计算或电子装置、或前述中的多个或组合。设备可以包括专用逻辑电路系统,例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)。除了硬件之外,设备还可以包括为所讨论的计算机程序创建执行环境的代码,例如构成处理器固件、协议堆栈、数据库管理系统、操作系统、跨平台运行时环境、虚拟机、或其中的一个或更多个的组合的代码。设备和执行环境可以实现各种不同的计算模型基础设施,如web服务、分布式计算基础设施和网格计算基础设施。
计算机程序(也称为程序、软件、软件应用、脚本或代码)可以以任何形式的编程语言编写,包括汇编语言或解释性语言、说明性语言或过程语言,并且可以以任何形式来部署,包括作为独立程序或作为模块、部件、子例程、对象或适合用于计算环境中的其他单元。计算机程序可以但不一定对应于文件系统中的文件。程序可以存储在以下中:保存其他程序或数据(例如,存储在标记语言文档中的一个或更多个脚本)的文件的一部分、专用于所讨论的程序的单个文件、或多个协同文件(例如,存储一个或更多个模块、子程序或代码的部分的文件)。计算机程序可以被部署成在一个计算机或在多个计算机上执行,该多个计算机位于一个地点处或分布在多个地点并且由通信网络互连。
本说明书中所描述的处理和逻辑流可以由一个或更多个可编程处理单元来执行,该一个或更多个可编程处理单元执行一个或更多个计算机程序以通过操作输入数据和生成输出来执行动作。过程和逻辑流也可以由专用逻辑电路系统来执行,并且设备也可以被实现为专用逻辑电路系统,例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)。
适合于执行计算机程序的处理单元包括例如通用微处理器和专用微处理器、以及任何类型的数字计算机的任何一个或更多个处理单元。通常,处理单元将接收来自只读存储器或随机存取存储器或其两者的指令和数据。计算机的主要元件是用于根据指令执行动作的处理单元以及用于存储指令和数据的一个或更多个存储器装置。通常,计算机也可以包括以下装置或操作耦合以接收来自以下装置的数据或向以下装置发送数据或接收数据和发送数据:用于存储数据的一个或更多个海量存储装置,例如磁盘、磁光盘或光盘。然而,计算机不必具有这样的装置。此外,可以将计算机嵌入另一装置中,仅列举一些示例,例如移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏机、全球定位系统(GPS)接收器、网络路由装置或便携式存储装置(例如,通用串行总线(USB)闪存驱动器)。适合于存储计算机程序指令和数据的装置包括所有形式的非易失性存储器、介质和存储器装置,例如包括半导体存储器装置,例如EPROM、EEPROM和闪存存储器装置;磁盘,例如内部硬盘或可移除盘;磁光盘;以及CD-ROM盘和DVD-ROM盘。处理单元和存储器可以由专用逻辑电路补充或者可以合并到专用逻辑电路中。
为了提供与用户的交互,本说明书中所描述的主题的实施方式可以在这样的计算机上来实现,该计算机具有用于向用户显示信息的显示装置例如CRT(阴极射线管)或LCD(液晶显示器)监视器、以及用户可以通过其向计算机提供输入的键盘和定点装置例如鼠标或跟踪球。其他类型的装置也可以用于提供与用户的交互;例如,提供至用户的反馈可以是任何形式的感官反馈,例如视觉反馈、听觉反馈或触觉反馈;并且可以以任何形式接收来自用户的输入,包括声音、语音或触觉输入。另外,计算机可以通过向由用户使用的装置发送文档并且从其接收文档来与用户交互;例如,通过响应于从web浏览器接收的请求向用户的客户端装置上的web浏览器发送网页。
本说明书中所描述的主题的实施方式可以在这样的计算系统中实现,该计算系统包括后端部件例如数据服务器、或包括中间件部件例如应用服务器、或包括前端部件例如具有用户通过其可以与本说明书中所描述的主题的实现进行交互的图形用户界面或web浏览器的客户端计算机、或路由装置例如网络路由器或一个或更多个这种后端部件、中间件部件或前端部件的任何组合。系统的部件可以通过数字数据通信例如通信网络的任何形式或介质互连。通信网络的示例包括局域网(“LAN”)和广域网(“WAN”)、互连网络(例如,因特网)或对等网络(例如,自组织(adhoc)对等网络)。
计算系统可以包括客户端和服务器。客户端和服务器通常彼此远离,并且一般通过通信网络交互。由于在相应计算机上执行的并且彼此具有客户端-服务器关系的计算机程序,产生了客户端与服务器的关系。在一些实施方式中,服务器向客户端装置发送数据(例如,HTML页面)(例如,为了向与客户端装置交互的用户显示数据以及从其接收用户输入)。可以在服务器处从客户端装置接收在客户端装置处生成的数据(例如,用户交互的结果)。
电子文档(为了简洁将其称为文档)可以但不一定对应于文件。文档可以被存储在保存其他文档的文件的一部分中、专用于所讨论的文档的单个文件中或多个同位文件中。
尽管本说明书包含很多具体的实现细节,但这些细节不应当被理解为对任何发明或可以被要求保护的内容的范围的限制,而是应当被理解为针对特定发明的特定实施方式的特征的描述。在本说明书中的不同实施方式的上下文中所描述的某些特征也可以在单个实施方式中以组合的方式来实现。相反,在单个实施方式的上下文中所描述的各种特征也可以在多个实施方式中单独地或以任何合适的子组合的方式来实现。此外,尽管上面可以将特征描述为以某些组合甚至如初始地要求保护的那样来执行,但是在某些情况下,所要求保护的组合的一个或更多个特征可以从该组合中去除,并且所要求保护的组合可以指向子组合或子组合的变型。
类似地,虽然在附图中以特定顺序描绘了操作,但这不应当被理解为要求以示出的特定顺序或按先后顺序执行这样的操作或执行所有示出的操作,以达到所期望的结果。在某些情况下,多任务和并行处理会是有利的。此外,上述实施方式中的各种系统部件的分离不应当被理解为在所有的实施方式中要求这样的分离,而应当理解的是,所描述的程序部件和系统通常可以一起被集成在单个软件产品或被打包成多个软件产品。
从而,已经描述了主题的特定实施方式。其他实施方式在下面的权利要求的范围内。在一些情况下,权利要求中所叙述的动作可以以不同的顺序来执行并且仍然达到所期望的结果。另外,附图中所描述的过程不一定要求示出的特定顺序或先后顺序以达到所期望的结果。在某些实现中,多任务和并行处理会是有利的。
Claims (33)
1.一种方法,包括:
使用一个或更多个文档处理器以及多个矩阵处理器从一个或更多个文档的集合提取词-主题矩阵,所述词-主题矩阵包括所述一个或更多个文档的集合的多个主题,其中:
至少部分地由词集中的一个或更多个词来定义所述主题中的每个主题,所述一个或更多个词中的每个词与相应概率相关联,所述词集包括来自所述一个或更多个文档的集合的词索引的词;
至少部分地由与所述一个或更多个主题相对应的第一维度以及与所述词集相对应的第二维度来定义所述词-主题矩阵;
所述矩阵处理器包括:
第一矩阵处理器,被编程成存储和处理所述词-主题矩阵的与所述词集的第一子集相对应的第一部分;以及
第二矩阵处理器,被编程成存储和处理所述词-主题矩阵的与所述词集的第二子集相对应的第二部分,所述词集的所述第二子集不同于所述第一子集;并且
所述一个或更多个文档处理器中的每个文档处理器被编程成与矩阵交换操作并行地执行主题提取操作,其中:
所述主题提取操作包括使用所述词-主题矩阵的被存储在所述第一矩阵处理器处的所述第一部分来针对一个或更多个第一主题对所述一个或更多个文档的集合进行采样;并且
所述矩阵交换操作包括以下操作中的至少之一:
从所述第二矩阵处理器获取要在针对一个或更多个第二主题对所述一个或更多个文档的集合进行采样时使用的所述词-主题矩阵的所述第二部分;或者
当提取到至少一个第二主题时,请求所述第二矩阵处理器使用所提取的第二主题更新所述词-主题矩阵的所述第二部分,其中所提取的第二主题对应于所述第二子集中的词。
2.根据权利要求1所述的方法,其中,
所述一个或更多个文档处理器包括多个处理器;并且
所述方法还包括:
将所述词集中的词组织为循环队列;
将所述多个文档处理器中的第一文档处理器配置成使用所述循环队列的第一位置处的词开始执行主题提取操作;以及
将所述多个文档处理器中的第二文档处理器配置成使用所述循环队列的第二位置处的词开始执行主题提取操作,其中所述第一位置不同于所述第二位置。
3.根据权利要求1所述的方法,还包括:
根据加权轮询调度将所述词集中的词分配给所述多个矩阵处理器。
4.根据权利要求3所述的方法,其中,根据所述加权轮询调度分配所述词包括:
确定所述词集中的每个词的权重;
确定所述多个矩阵处理器中的每个矩阵处理器的负荷;
根据所述词的权重对所述词集中的所述词进行排序;以及
迭代地将具有最大权重的词分配给具有最小负荷的矩阵处理器。
5.根据权利要求4所述的方法,其中,确定所述词集中的每个词的权重包括确定驻留有所述词的文档处理器的数量。
6.根据权利要求5所述的方法,其中,确定所述多个矩阵处理器中的所述每个矩阵处理器的负荷包括确定所述矩阵处理器上词的权重之和。
7.根据权利要求1所述的方法,还包括:
将所述一个或更多个文档处理器中的每个文档处理器配置成基于第一词束和第二词束执行主题提取操作,所述第一词束对应于所述词集的所述第一子集,所述第二词束对应于所述词集的所述第二子集。
8.根据权利要求1所述的方法,其中,针对一个或更多个第一主题对所述一个或更多个文档的集合进行采样包括对所述一个或更多个文档的集合执行吉布斯采样。
9.一种系统,包括:
一个或更多个文档处理器以及多个矩阵处理器,所述系统被配置成执行包括以下操作的操作:
使用所述一个或更多个文档处理器以及所述多个矩阵处理器从一个或更多个文档的集合提取词-主题矩阵,所述词-主题矩阵包括所述一个或更多个文档的集合的多个主题,其中:
至少部分地由词集中的一个或更多个词来定义所述主题中的每个主题,所述一个或更多个词中的每个词与概率相关联,所述词集包括来自所述一个或更多个文档的集合的词索引的词;
至少部分地由与所述一个或更多个主题相对应的第一维度以及与所述词集相对应的第二维度来定义所述词-主题矩阵;
所述矩阵处理器包括:
第一矩阵处理器,被编程成存储和处理所述词-主题矩阵的与所述词集的第一子集相对应的第一部分;以及
第二矩阵处理器,被编程成存储和处理所述词-主题矩阵的与所述词集的第二子集相对应的第二部分;并且
所述一个或更多个文档处理器中的每个文档处理器被编程成执行主题提取操作和矩阵交换操作,所述主题提取操作与所述矩阵交换操作并行执行,其中:
所述主题提取操作包括使用所述词-主题矩阵的被存储在所述第一矩阵处理器处的所述第一部分来针对一个或更多个第一主题对所述一个或更多个文档的集合进行采样;并且
所述矩阵交换操作包括以下操作中的至少之一:
从所述第二矩阵处理器获取要在针对一个或更多个第二主题对所述一个或更多个文档的集合进行采样时使用的所述词-主题矩阵的所述第二部分;或者
当提取到至少一个第二主题时,请求所述第二矩阵处理器使用所提取的第二主题更新所述词-主题矩阵的所述第二部分,其中所提取的第二主题对应于所述第二子集中的词。
10.根据权利要求9所述的系统,其中,
所述一个或更多个文档处理器包括多个处理器;并且
所述方法还包括:
将所述词集中的词组织为循环队列;
将所述多个文档处理器中的第一文档处理器配置成使用所述循环队列的第一位置处的词开始执行主题提取操作;以及
将所述多个文档处理器中的第二文档处理器配置成使用所述循环队列的第二位置处的词开始执行主题提取操作,其中所述第一位置不同于所述第二位置。
11.根据权利要求9所述的系统,所述方法还包括根据加权轮询调度将所述词集中的词分配给所述多个矩阵处理器。
12.根据权利要求11所述的系统,其中根据所述加权轮询调度分配所述词包括:
确定所述词集中的每个词的权重;
确定所述多个矩阵处理器中的每个矩阵处理器的负荷;
根据所述词的权重对所述词集中的所述词进行排序;以及
迭代地将具有最大权重的词分配给具有最小负荷的矩阵处理器。
13.根据权利要求12所述的系统,其中,确定所述词集中的每个词的权重包括确定驻留有所述词的文档处理器的数量。
14.根据权利要求13所述的系统,其中,确定所述多个矩阵处理器中的每个矩阵处理器的负荷包括确定所述矩阵处理器上词的权重之和。
15.一种计算机程序产品,其被编码在计算机可读存储装置上,并且可操作以使得一个或更多个文档处理器以及多个矩阵处理器执行包括以下操作的操作:
从一个或更多个文档的集合提取词-主题矩阵,所述词-主题矩阵包括所述一个或更多个文档的集合的多个主题,其中:
至少部分地由词集中的一个或更多个词来定义所述主题中的每个主题,所述一个或更多个词中的每个词与概率相关联,所述词集是根据所述一个或更多个文档的集合的词索引来创建的;
至少部分地由与所述一个或更多个主题相对应的第一维度以及与所述词集相对应的第二维度来定义所述词-主题矩阵;
所述矩阵处理器包括:
第一矩阵处理器,被编程成存储和处理所述词-主题矩阵的与所述词集的第一子集相对应的第一部分;以及
第二矩阵处理器,被编程成存储和处理所述词-主题矩阵的与所述词集的第二子集相对应的第二部分;并且
所述一个或更多个文档处理器中的每个文档处理器被编程成执行主题提取操作和矩阵交换操作,所述主题提取操作与所述矩阵交换操作并行执行,其中:
所述主题提取操作包括使用所述词-主题矩阵的被存储在所述第一矩阵处理器处的所述第一部分来针对一个或更多个第一主题对所述一个或更多个文档的集合进行采样;并且
所述矩阵交换操作包括以下操作中的至少之一:
从所述第二矩阵处理器获取要在针对一个或更多个第二主题对所述一个或更多个文档的集合进行采样时使用的所述词-主题矩阵的所述第二部分;或者
当提取到至少一个第二主题时,请求所述第二矩阵处理器使用所提取的第二主题更新所述词-主题矩阵的所述第二部分,其中所提取的第二主题对应于所述第二子集中的词。
16.根据权利要求15所述的产品,其中,
所述一个或更多个文档处理器包括多个处理器;并且
所述方法还包括:
将所述词集中的词组织为循环队列;
将所述多个文档处理器中的第一文档处理器配置成使用所述循环队列的第一位置处的词开始执行主题提取操作;以及
将所述多个文档处理器中的第二文档处理器配置成使用所述循环队列的第二位置处的词开始执行主题提取操作,其中所述第一位置不同于所述第二位置。
17.根据权利要求15所述的产品,所述操作还包括根据加权轮询调度将所述词集中的词分配给所述多个矩阵处理器。
18.根据权利要求17所述的产品,其中,根据所述加权轮询调度分配所述词包括:
确定所述词集中的每个词的权重;
确定所述多个矩阵处理器中的每个矩阵处理器的负荷;
根据所述词的权重对所述词集中的所述词进行排序;以及
迭代地将具有最大权重的词分配给具有最小负荷的矩阵处理器。
19.根据权利要求18所述的产品,其中,确定所述词集中的每个词的权重包括确定驻留有所述词的文档处理器的数量。
20.根据权利要求19所述的产品,其中,确定所述多个矩阵处理器中的每个矩阵处理器的负荷包括确定所述矩阵处理器上词的权重之和。
21.根据权利要求15所述的产品,所述操作还包括将所述一个或更多个文档处理器中的每个文档处理器配置成基于第一词束和第二词束执行主题提取操作,所述第一词束对应于所述词集的所述第一子集,所述第二词束对应于所述词集的所述第二子集。
22.根据权利要求15所述的产品,其中,针对一个或更多个第一主题对所述一个或更多个文档的集合进行采样包括对所述一个或更多个文档的集合执行吉布斯采样。
23.一种由一个或更多个计算机执行的方法,包括:
将词-主题矩阵的第一部分分配给第一矩阵处理器,所述词-主题矩阵包括一个或更多个文档的集合的多个主题,每个主题包括词集中的一个或更多个词,所述一个或更多个词中的每个词与相应概率相关联,所述词集包括来自所述一个或更多个文档的集合的词索引的词;
将所述词-主题矩阵的第二部分分配给第二矩阵处理器,所述词-主题矩阵的所述第二部分不同于所述词-主题矩阵的所述第一部分;
在文档处理器上执行主题提取操作,所述文档提取操作包括使用所述词-主题矩阵的被存储在所述第一矩阵处理器处的所述第一部分来针对一个或更多个第一主题对所述一个或更多个文档的集合进行采样;以及
在所述文档处理器上与执行所述主题提取操作并行地执行矩阵交换操作,所述矩阵交换操作包括以下操作中的至少之一:
从所述第二矩阵处理器获取要在针对一个或更多个第二主题对所述一个或更多个文档的集合进行采样时使用的所述词-主题矩阵的所述第二部分;或者
当提取到至少一个第二主题时,请求所述第二矩阵处理器使用所提取的第二主题更新所述词-主题矩阵的所述第二部分,其中所提取的第二主题对应于所述第二子集中的词。
24.根据权利要求23所述的方法,还包括:
根据加权轮询调度将所述词集中的词分配给所述多个矩阵处理器。
25.根据权利要求24所述的方法,其中,根据所述加权轮询调度分配所述词包括:
确定所述词集中的每个词的权重;
确定所述第一矩阵处理器的负荷以及所述第二矩阵处理器的负荷;
根据所述词的权重对所述词集中的所述词进行排序;以及
迭代地将具有最大权重的词分配给具有最小负荷的矩阵处理器。
26.根据权利要求25所述的方法,其中,确定所述词集中的每个词的权重包括确定驻留有所述词的文档处理器的数量。
27.根据权利要求23所述的方法,还包括:
在所述文档处理器处基于第一词束和第二词束执行主题提取操作,所述第一词束对应于所述词集的所述第一子集,所述第二词束对应于所述词集的所述第二子集。
28.根据权利要求23所述的方法,其中,针对一个或更多个第一主题对所述一个或更多个文档的集合进行采样包括对所述一个或更多个文档的集合执行吉布斯采样。
29.一种计算机程序产品,其被存储在非暂态计算机可读存储装置上,并且可操作以使得一个或更多个计算机执行包括以下操作的操作:
将词-主题矩阵的第一部分分配给第一矩阵处理器,所述词-主题矩阵包括一个或更多个文档的集合的多个主题,每个主题包括词集中的一个或更多个词,所述一个或更多个词中的每个词与相应概率相关联,所述词集包括来自所述一个或更多个文档的集合的词索引的词;
将所述词-主题矩阵的第二部分分配给第二矩阵处理器,所述词-主题矩阵的所述第二部分不同于所述词-主题矩阵的所述第一部分;
在文档处理器上执行主题提取操作,所述文档提取操作包括使用所述词-主题矩阵的被存储在所述第一矩阵处理器处的所述第一部分来针对一个或更多个第一主题对一个或更多个文档的集合进行采样;以及
在所述文档处理器上并且与执行所述主题提取操作并行地执行矩阵交换操作,所述矩阵交换操作包括以下操作中的至少之一:
从所述第二矩阵处理器获取要在针对一个或更多个第二主题对所述一个或更多个文档的集合进行采样时使用的所述词-主题矩阵的所述第二部分;或者
当提取到至少一个第二主题时,请求所述第二矩阵处理器使用所提取的第二主题更新所述词-主题矩阵的所述第二部分,其中所提取的第二主题对应于所述第二子集中的词。
30.根据权利要求29所述的产品,所述操作还包括:
根据加权轮询调度将所述词集中的词分配给所述多个矩阵处理器。
31.根据权利要求30所述的产品,其中,根据所述加权轮询调度分配所述词包括:
确定所述词集中的每个词的权重;
确定所述第一矩阵处理器的负荷以及所述第二矩阵处理器的负荷;
根据所述词的权重对所述词集中的所述词进行排序;以及
迭代地将具有最大权重的词分配给具有最小负荷的矩阵处理器。
32.根据权利要求31所述的产品,其中,确定所述词集中的每个词的权重包括确定驻留有所述词的文档处理器的数量。
33.根据权利要求29所述的产品,还包括:
在所述文档处理器处基于第一词束和第二词束执行主题提取操作,所述第一词束对应于所述词集的所述第一子集,所述第二词束对应于所述词集的所述第二子集。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2011/000825 WO2012151716A1 (en) | 2011-05-11 | 2011-05-11 | Parallel generation of topics from documents |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103765415A true CN103765415A (zh) | 2014-04-30 |
Family
ID=47138636
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201180071588.4A Pending CN103765415A (zh) | 2011-05-11 | 2011-05-11 | 文档主题的并行生成 |
Country Status (6)
Country | Link |
---|---|
US (1) | US8898172B2 (zh) |
EP (1) | EP2707814A4 (zh) |
JP (1) | JP5615991B2 (zh) |
KR (1) | KR101468201B1 (zh) |
CN (1) | CN103765415A (zh) |
WO (1) | WO2012151716A1 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105095275A (zh) * | 2014-05-13 | 2015-11-25 | 中国科学院自动化研究所 | 文档聚类的方法及装置 |
CN105955807A (zh) * | 2016-04-20 | 2016-09-21 | 上海瀚银信息技术有限公司 | 一种任务处理系统及方法 |
CN107239438A (zh) * | 2016-03-28 | 2017-10-10 | 阿里巴巴集团控股有限公司 | 一种文档分析方法及装置 |
CN108351809A (zh) * | 2015-11-12 | 2018-07-31 | 标致雪铁龙汽车股份有限公司 | 多核微处理器的控制方法 |
CN109189933A (zh) * | 2018-09-14 | 2019-01-11 | 腾讯科技(深圳)有限公司 | 一种文本信息分类的方法及服务器 |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8650143B2 (en) * | 2011-08-30 | 2014-02-11 | Accenture Global Services Limited | Determination of document credibility |
KR101536520B1 (ko) | 2014-04-28 | 2015-07-14 | 숭실대학교산학협력단 | 토픽을 추출하고, 추출된 토픽의 적합성을 평가하는 방법 및 서버 |
CN105469784B (zh) * | 2014-09-10 | 2019-01-08 | 中国科学院声学研究所 | 一种基于概率线性鉴别分析模型的说话人聚类方法及系统 |
JP2016162163A (ja) * | 2015-03-02 | 2016-09-05 | 富士ゼロックス株式会社 | 情報処理装置及び情報処理プログラム |
US11537262B1 (en) | 2015-07-21 | 2022-12-27 | Monotype Imaging Inc. | Using attributes for font recommendations |
US10445650B2 (en) * | 2015-11-23 | 2019-10-15 | Microsoft Technology Licensing, Llc | Training and operating multi-layer computational models |
CN105677769B (zh) * | 2015-12-29 | 2018-01-05 | 广州神马移动信息科技有限公司 | 一种基于潜在狄利克雷分配(lda)模型的关键词推荐方法和系统 |
US10642889B2 (en) * | 2017-02-20 | 2020-05-05 | Gong I.O Ltd. | Unsupervised automated topic detection, segmentation and labeling of conversations |
US11334750B2 (en) * | 2017-09-07 | 2022-05-17 | Monotype Imaging Inc. | Using attributes for predicting imagery performance |
US11657602B2 (en) | 2017-10-30 | 2023-05-23 | Monotype Imaging Inc. | Font identification from imagery |
US11276407B2 (en) | 2018-04-17 | 2022-03-15 | Gong.Io Ltd. | Metadata-based diarization of teleconferences |
JP7259997B2 (ja) * | 2019-02-05 | 2023-04-18 | 日本電気株式会社 | サンプリングデバイス |
CN111176800A (zh) * | 2019-07-05 | 2020-05-19 | 腾讯科技(深圳)有限公司 | 文档主题生成模型的训练方法和装置 |
US20230222011A1 (en) * | 2022-01-11 | 2023-07-13 | Hiredscore Inc. | System and method for mapping data from one organization's computer application to another organization's computer application |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1560762A (zh) * | 2004-02-26 | 2005-01-05 | 上海交通大学 | 基于字同现频率的主题抽取方法 |
CN101359333A (zh) * | 2008-05-23 | 2009-02-04 | 中国科学院软件研究所 | 一种基于隐含狄利克雷分配模型的并行数据处理方法 |
US20100005080A1 (en) * | 2004-06-18 | 2010-01-07 | Pike Robert C | System and method for analyzing data records |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7369984B2 (en) * | 2002-02-01 | 2008-05-06 | John Fairweather | Platform-independent real-time interface translation by token mapping without modification of application code |
US7895210B2 (en) * | 2006-09-29 | 2011-02-22 | Battelle Memorial Institute | Methods and apparatuses for information analysis on shared and distributed computing systems |
US8255889B2 (en) * | 2007-02-14 | 2012-08-28 | The Mathworks, Inc. | Method of using parallel processing constructs and dynamically allocating program portions |
US8239844B2 (en) * | 2007-02-14 | 2012-08-07 | The Mathworks, Inc. | Method of using parallel processing constructs and dynamically allocating program portions |
US10198431B2 (en) * | 2010-09-28 | 2019-02-05 | Siemens Corporation | Information relation generation |
US8868470B2 (en) * | 2010-11-09 | 2014-10-21 | Microsoft Corporation | Parallel processing of data sets |
US8533195B2 (en) * | 2011-06-27 | 2013-09-10 | Microsoft Corporation | Regularized latent semantic indexing for topic modeling |
-
2011
- 2011-05-11 US US13/263,984 patent/US8898172B2/en active Active
- 2011-05-11 JP JP2014509579A patent/JP5615991B2/ja active Active
- 2011-05-11 KR KR1020137032228A patent/KR101468201B1/ko active IP Right Grant
- 2011-05-11 WO PCT/CN2011/000825 patent/WO2012151716A1/en active Application Filing
- 2011-05-11 CN CN201180071588.4A patent/CN103765415A/zh active Pending
- 2011-05-11 EP EP20110865326 patent/EP2707814A4/en not_active Withdrawn
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1560762A (zh) * | 2004-02-26 | 2005-01-05 | 上海交通大学 | 基于字同现频率的主题抽取方法 |
US20100005080A1 (en) * | 2004-06-18 | 2010-01-07 | Pike Robert C | System and method for analyzing data records |
CN101359333A (zh) * | 2008-05-23 | 2009-02-04 | 中国科学院软件研究所 | 一种基于隐含狄利克雷分配模型的并行数据处理方法 |
Non-Patent Citations (2)
Title |
---|
DAVIA NEWMAN: "Distributed Inference for Latent Dirichlet Allocation", 《CONFERENCE ON NEURAL INFORMATION PROCESSING SYSTEMS》 * |
ZHIYUAN LIU 等: "PLDA+:Parallel Latent Dirichlet Allocation with Data Placement and Pipeline Processing", 《ACM TRANSACTIONS ON INTELLIGENT SYSTEMS AND TECHNOLOGY(TIST)》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105095275A (zh) * | 2014-05-13 | 2015-11-25 | 中国科学院自动化研究所 | 文档聚类的方法及装置 |
CN105095275B (zh) * | 2014-05-13 | 2019-04-05 | 中国科学院自动化研究所 | 文档聚类的方法及装置 |
CN108351809A (zh) * | 2015-11-12 | 2018-07-31 | 标致雪铁龙汽车股份有限公司 | 多核微处理器的控制方法 |
CN107239438A (zh) * | 2016-03-28 | 2017-10-10 | 阿里巴巴集团控股有限公司 | 一种文档分析方法及装置 |
CN105955807A (zh) * | 2016-04-20 | 2016-09-21 | 上海瀚银信息技术有限公司 | 一种任务处理系统及方法 |
CN105955807B (zh) * | 2016-04-20 | 2023-10-31 | 上海瀚银信息技术有限公司 | 一种任务处理系统及方法 |
CN109189933A (zh) * | 2018-09-14 | 2019-01-11 | 腾讯科技(深圳)有限公司 | 一种文本信息分类的方法及服务器 |
Also Published As
Publication number | Publication date |
---|---|
US20140059054A1 (en) | 2014-02-27 |
EP2707814A4 (en) | 2015-04-29 |
JP5615991B2 (ja) | 2014-10-29 |
KR20140007004A (ko) | 2014-01-16 |
US8898172B2 (en) | 2014-11-25 |
EP2707814A1 (en) | 2014-03-19 |
KR101468201B1 (ko) | 2014-12-10 |
JP2014519645A (ja) | 2014-08-14 |
WO2012151716A1 (en) | 2012-11-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103765415A (zh) | 文档主题的并行生成 | |
US20220027202A1 (en) | Stream-based accelerator processing of computational graphs | |
CN108885571B (zh) | 分批处理机器学习模型的输入 | |
EP3705994B1 (en) | Processing computational graphs | |
Sheikhalishahi et al. | A multi-dimensional job scheduling | |
CN108268386A (zh) | 加速硬件中的存储器排序 | |
CN109992404A (zh) | 集群计算资源调度方法、装置、设备及介质 | |
Mohammadzadeh et al. | Scientific workflow scheduling in multi-cloud computing using a hybrid multi-objective optimization algorithm | |
CN110262887B (zh) | 基于特征识别的cpu-fpga任务调度方法及装置 | |
Hong et al. | DFX: A low-latency multi-FPGA appliance for accelerating transformer-based text generation | |
Rauchecker et al. | Using high performance computing for unrelated parallel machine scheduling with sequence-dependent setup times: Development and computational evaluation of a parallel branch-and-price algorithm | |
CN103885767A (zh) | 用于地理区域相关网站的系统和方法 | |
Benini et al. | Optimal resource allocation and scheduling for the CELL BE platform | |
Miao et al. | Efficient flow-based scheduling for geo-distributed simulation tasks in collaborative edge and cloud environments | |
CN115543577B (zh) | 基于协变量的Kubernetes资源调度优化方法、存储介质及设备 | |
CN106294395B (zh) | 一种任务处理的方法及装置 | |
Chen et al. | Efficient resource constrained scheduling using parallel structure-aware pruning techniques | |
Savadi et al. | Multi-DaC programming model: A variant of multi-BSP model for divide-and-conquer algorithms | |
CN110442612B (zh) | 一种数据查询方法、电子设备及计算机可读存储介质 | |
Supriyanto et al. | Design and Implementation Plagiarism Checker Application with DetectGPT using Scheduler Algorithm | |
Kousalya et al. | Task severance and task parceling based ant algorithm for grid scheduling | |
Vasudevan | Static Task Partitioning Techniques for Parallel Applications on Heterogeneous Processors | |
CN115543448A (zh) | 数据流架构上的指令动态调度方法、数据流架构 | |
Hazenberg | Task Scheduling Feasibility with Linear Programming | |
Grąbczewski et al. | Task management in advanced computational intelligence system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20140430 |