CN105224557B - 数据处理的方法及计算设备 - Google Patents
数据处理的方法及计算设备 Download PDFInfo
- Publication number
- CN105224557B CN105224557B CN201410264449.9A CN201410264449A CN105224557B CN 105224557 B CN105224557 B CN 105224557B CN 201410264449 A CN201410264449 A CN 201410264449A CN 105224557 B CN105224557 B CN 105224557B
- Authority
- CN
- China
- Prior art keywords
- word
- matrix
- theme
- packet
- memory
- 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.)
- Active
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例提供了一种数据处理的方法,外部存储器中的大规模词包矩阵能分割成A个词包矩阵,其中第s个词包矩阵为Xs Ws×Ds,A和s为正整数,s=1,2,…,A,该方法包括:将外部存储器中第s=1个词包矩阵读取至内存;根据第s=1个词包矩阵随机初始化消息矩阵;采用EM算法确定单词‑主题矩阵;释放内存中由第s=1个词包矩阵、消息矩阵和EM算法产生的文档‑主题矩阵占用的空间,保留单词‑主题矩阵并缓存在内存中;依次地对s>1的第s个词包矩阵Xs Ws×Ds,更新单词‑主题矩阵。本发明实施例中,大规模词包矩阵能够分割成A个词包矩阵,针对其中每一个词包矩阵,采用EM算法,确定对应的单词‑主题矩阵,并且及时释放EM算法的参数所占用的内存空间,该方法对内存资源的要求较低。
Description
技术领域
本发明实施例涉及信息处理领域,并且更具体地,涉及一种数据处理以进行主题挖掘的方法及计算设备。
背景技术
从海量文档集合中挖掘具有语义相关的单词聚类(clustering)称之为主题挖掘。其中一种常用的模型是2003年由D.M.Blei等人提出的潜在狄利克雷分布(LatentDirichlet Allocation,LDA)模型。LDA模型是将实际可观测的“文档-单词”高维稀疏空间,通过快速的学习算法降低到低维空间,从而实现对文档的分类等。通常情况下,实际可观测的“文档-单词”文档集合使用词包矩阵的形式表示,并将词包矩阵输入到主题挖掘模块LDA中,通过自动的推理方法,估计并输出“文档-主题”分布和“单词-主题”分布两个矩阵。
具体地,输入的词包矩阵为XW×D,词包矩阵的元素可表示为xw,d,其中行表示单词表索引1≤w≤W,列表示文档索引1≤d≤D,每个非零元素值xw,d≠0表示第w个单词在第d个文档中出现的次数。输出的文档-主题矩阵为θK×D,文档-主题矩阵的元素可表示为θk,d,其中行表示主题索引1≤k≤K,列表示文档索引,每一列表示每个文档在K个主题上分别占有的比例。输出的单词-主题矩阵为单词-主题矩阵的元素可表示为其中行代表主题索引,列表示单词表索引,每一行表示每个主题中含有的单词的概率。这里,W为单词表中的单词数,D为文档数,K为主题数。
一般的主题挖掘的方法需要多次扫描,并多次计算整个词包矩阵非零元素的主题可能性直至收敛到稳定状态。对于海量文档(例如PUBMED文档集合含有820万文档和14万单词表单词,非零元素数目高达5亿之多),多次扫描并计算的时间成本高昂。同时,传统主题挖掘方法需要将所有数据以及LDA的参数矩阵即文档-主题矩阵和单词-主题矩阵放到内存中计算,这对于内存资源是非常巨大的消耗。在大规模的主题挖掘任务中,例如对PUBMED文档集提取K=10,000个主题,需要消耗的内存高达36TB。
发明内容
本发明实施例提供一种数据处理的方法,针对数据进行主题挖掘的方法,能够减小在数据处理过程中对计算系统中内存的需求。
第一方面,提供了一种数据处理的方法,外部存储器中的大规模词包矩阵能够分割成A个词包矩阵,所述A个词包矩阵中的第s个词包矩阵表示为Xs Ws×Ds,A和s为正整数,s=1,2,…,A,所述词包矩阵的行表示单词表索引,列表示文档索引,所述方法包括:处理器将所述外部存储器中的第s=1个词包矩阵Xs Ws×Ds读取至内存;根据所述第s=1个词包矩阵Xs Ws×Ds,随机初始化第一消息矩阵;根据所述随机初始化的第一消息矩阵,采用期望最大化EM算法,确定第一单词-主题矩阵;释放所述内存中由所述第s=1个词包矩阵Xs Ws×Ds、第一消息矩阵和EM算法产生的第一文档-主题矩阵占用的空间,保留所述第一单词-主题矩阵并缓存在所述内存中;依次地对s>1的第s个词包矩阵Xs Ws×Ds,更新所述第一单词-主题矩阵;其中,Ws为所述第s个词包矩阵Xs Ws×Ds的单词表中的单词数,Ds为所述第s个词包矩阵的文档数。
结合第一方面,在第一方面的第一种可能的实现方式中,所述对s>1的第s个词包矩阵Xs Ws×Ds,更新所述第一单词-主题矩阵,包括:将所述外部存储器中的第s个词包矩阵Xs Ws×Ds读取至所述内存;基于第s-1个词包矩阵所确定的第一单词-主题矩阵,获取与所述第s个词包矩阵Xs Ws×Ds对应的第二单词-主题矩阵,所述第二单词-主题矩阵中的单词与所述第s个词包矩阵Xs Ws×Ds的单词表中的单词一致;根据所述第s个词包矩阵Xs Ws×Ds,随机初始化第二文档-主题矩阵;根据所述随机初始化的第二文档-主题矩阵和所述第二单词-主题矩阵,采用EM算法,确定更新后的第一单词-主题矩阵;释放所述内存中由所述第s个词包矩阵Xs Ws×Ds、第二文档-主题矩阵和EM算法产生的第二消息矩阵占用的空间,保留所述更新后的第一单词-主题矩阵并缓存在所述内存中。
结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述基于第s-1个词包矩阵所确定的第一单词-主题矩阵,获取与所述第s个词包矩阵Xs Ws×Ds对应的第二单词-主题矩阵,包括:根据所述第s个词包矩阵Xs Ws×Ds的单词表中的单词的索引,从所述第s-1个词包矩阵所确定的所述内存中缓存的第一单词-主题矩阵中,获取与所述单词的索引对应的所述第二单词-主题矩阵。
结合第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,所述基于第s-1个词包矩阵所确定的第一单词-主题矩阵,获取与所述第s个词包矩阵Xs Ws×Ds对应的第二单词-主题矩阵,还包括:当所述内存中缓存的第一单词-主题矩阵的单词表中不包括所述第s个词包矩阵Xs Ws×Ds的单词表中的第一单词时,从所述外部存储器中的单词-主题矩阵XK×W中,获取与所述第一单词的索引对应的元素,并将所述与所述第一单词的索引对应的元素作为所述第二单词-主题矩阵中的对应元素;其中,W为所述大规模词包矩阵的单词表中的单词数,K为主题数。
结合第一方面或者上述第一方面的任一种可能的实现方式,在第一方面的第四种可能的实现方式中,在对s>1的第s个词包矩阵Xs Ws×Ds,更新所述第一单词-主题矩阵之后,当所述内存中缓存的第一单词-主题矩阵的大小大于第一阈值时,所述方法还包括:根据所述内存中缓存的第一单词-主题矩阵,更新所述外部存储器中的单词-主题矩阵XW×D;删除所述内存中缓存的第一单词-主题矩阵中的部分单词。
结合第一方面或者上述第一方面的任一种可能的实现方式,在第一方面的第五种可能的实现方式中,在对s>1的第s=P个词包矩阵Xs Ws×Ds,更新所述第一单词-主题矩阵之后,所述方法还包括:根据所述内存中缓存的第一单词-主题矩阵,更新所述外部存储器中的单词-主题矩阵XW×D;其中,P为第二阈值的整数倍或者P=A,所述第二阈值为预设置的小于A的正整数。
结合第一方面或者上述第一方面的任一种可能的实现方式,在第一方面的第六种可能的实现方式中,所述对s>1的第s个词包矩阵Xs Ws×Ds,更新所述第一单词-主题矩阵,包括:以所述第s个词包矩阵Xs Ws×Ds的单词表中的单词的顺序,更新所述第一单词-主题矩阵。
第二方面,提供了一种计算设备,所述计算设备与外部存储器通信,所述外部存储器中的大规模词包矩阵能够分割成A个词包矩阵,所述A个词包矩阵中的第s个词包矩阵表示为Xs Ws×Ds,A和s为正整数,s=1,2,…,A,所述词包矩阵的行表示单词表索引,列表示文档索引,所述计算设备包括处理器和内存,所述处理器,用于将所述外部存储器中的第s=1个词包矩阵Xs Ws×Ds读取至内存;根据所述第s=1个词包矩阵Xs Ws×Ds,随机初始化第一消息矩阵;根据所述随机初始化的第一消息矩阵,采用期望最大化EM算法,确定第一单词-主题矩阵;释放所述内存中由所述第s=1个词包矩阵Xs Ws×Ds、第一消息矩阵和EM算法产生的第一文档-主题矩阵占用的空间,保留所述第一单词-主题矩阵并缓存在所述内存中;依次地对s>1的第s个词包矩阵Xs Ws×Ds,更新所述第一单词-主题矩阵;所述内存,用于缓存所述第一单词-主题矩阵;其中,Ws为所述第s个词包矩阵Xs Ws×Ds的单词表中的单词数,Ds为所述第s个词包矩阵的文档数。
结合第二方面,在第二方面的第一种可能的实现方式中,所述处理器对s>1的第s个词包矩阵Xs Ws×Ds,更新所述第一单词-主题矩阵,包括:将所述外部存储器中的第s个词包矩阵Xs Ws×Ds读取至所述内存;基于第s-1个词包矩阵所确定的第一单词-主题矩阵,获取与所述第s个词包矩阵Xs Ws×Ds对应的第二单词-主题矩阵,所述第二单词-主题矩阵中的单词与所述第s个词包矩阵Xs Ws×Ds的单词表中的单词一致;根据所述第s个词包矩阵Xs Ws×Ds,随机初始化第二文档-主题矩阵;根据所述随机初始化的第二文档-主题矩阵和所述第二单词-主题矩阵,采用EM算法,确定更新后的第一单词-主题矩阵;释放所述内存中由所述第s个词包矩阵Xs Ws×Ds、第二文档-主题矩阵和EM算法产生的第二消息矩阵占用的空间,保留所述更新后的第一单词-主题矩阵并缓存在所述内存中。
结合第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,所述处理器基于第s-1个词包矩阵所确定的第一单词-主题矩阵,获取与所述第s个词包矩阵Xs Ws×Ds对应的第二单词-主题矩阵,包括:根据所述第s个词包矩阵Xs Ws×Ds的单词表中的单词的索引,从所述第s-1个词包矩阵所确定的所述内存中缓存的第一单词-主题矩阵中,获取与所述单词的索引对应的所述第二单词-主题矩阵。
结合第二方面的第二种可能的实现方式,在第二方面的第三种可能的实现方式中,所述处理器基于第s-1个词包矩阵所确定的第一单词-主题矩阵,获取与所述第s个词包矩阵Xs Ws×Ds对应的第二单词-主题矩阵,还包括:当所述内存中缓存的第一单词-主题矩阵的单词表中不包括所述第s个词包矩阵Xs Ws×Ds的单词表中的第一单词时,从所述外部存储器中的单词-主题矩阵XK×W中,获取与所述第一单词的索引对应的元素,并将所述与所述第一单词的索引对应的元素作为所述第二单词-主题矩阵中的对应元素;其中,W为所述大规模词包矩阵的单词表中的单词数,K为主题数。
结合第二方面或者上述第二方面的任一种可能的实现方式,在第二方面的第四种可能的实现方式中,所述处理器,还用于:在对s>1的第s个词包矩阵Xs Ws×Ds,更新所述第一单词-主题矩阵之后,当所述内存中缓存的第一单词-主题矩阵的大小大于第一阈值时,根据所述内存中缓存的第一单词-主题矩阵,更新所述外部存储器中的单词-主题矩阵XW×D;
删除所述内存中缓存的第一单词-主题矩阵中的部分单词。
结合第二方面或者上述第二方面的任一种可能的实现方式,在第二方面的第五种可能的实现方式中,所述处理器,还用于:在对s>1的第s=P个词包矩阵Xs Ws×Ds,更新所述第一单词-主题矩阵之后,
根据所述内存中缓存的第一单词-主题矩阵,更新所述外部存储器中的单词-主题矩阵XW×D;
其中,P为第二阈值的整数倍或者P=A,所述第二阈值为预设置的小于A的正整数。
结合第二方面或者上述第二方面的任一种可能的实现方式,在第二方面的第六种可能的实现方式中,所述处理器,以所述第s个词包矩阵Xs Ws×Ds的单词表中的单词的顺序,更新所述第一单词-主题矩阵。
本发明实施例中,大规模词包矩阵能够分割成A个词包矩阵,针对A个词包矩阵中的每一个词包矩阵,采用EM算法,确定对应的单词-主题矩阵,并且及时释放EM算法的参数消息矩阵、文档-主题矩阵所占用的内存空间。这样,在计算系统进行主题挖掘的过程中,对计算系统中内存硬件的资源要求较低。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是潜在狄利克雷分布模型的概率图。
图2是本发明一个实施例的数据处理的方法的流程图。
图3是本发明实施例的计算设备的框图。
图4是本发明实施例的计算设备与外部存储器的关系的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本说明书中使用的术语“部件”、“模块”、“系统”等用于表示计算机相关的实体、硬件、固件、硬件和软件的组合、软件、或执行中的软件。例如,部件可以是但不限于,在处理器上运行的进程、处理器、对象、可执行文件、执行线程、程序或计算机。通过图示,在计算设备上运行的应用和计算设备都可以是部件。一个或多个部件可驻留在进程或执行线程中,部件可位于一个计算机上或分布在两个或更多个计算机之间。此外,这些部件可从在上面存储有各种数据结构的各种计算机可读介质执行。部件可例如根据具有一个或多个数据分组(例如来自与本地系统、分布式系统或网络间的另一部件交互的二个部件的数据,例如通过信号与其它系统交互的互联网)的信号通过本地或远程进程来通信。
此外,本发明的各个方面或特征可以实现成方法、装置或使用标准编程或工程技术的制品。本申请中使用的术语“制品”涵盖可从任何计算机可读器件、载体或介质访问的计算机程序。例如,计算机可读介质可以包括,但不限于:磁盘存储器件(例如,硬盘、软盘或磁带等),光盘(例如,CD(Compact Disk,压缩盘)、DVD(Digital Versatile Disk,数字通用盘)等),智能卡和闪存器件(例如,EPROM(Erasable Programmable Read-Only Memory,可擦写可编程只读存储器)、卡、棒或钥匙驱动器等)。
另外,本文描述的各种存储介质可代表用于存储信息的一个或多个设备或其它机器可读介质。术语“机器可读介质”可包括但不限于,无线信道和能够存储、包含或承载指令或数据的各种其它介质。
随着大数据的在工程、信息、教育和通信等领域的应用,对海量的文档进行归类、挖掘或者单词聚类成为要解决的重要技术问题。而在接入互联网的时候,实际中可以变成无穷的数据流(例如直接从网上下载文档),因此在数据处理过程中对计算机或者服务器等计算系统的内存要求越来越高。本发明实施例提出的数据处理,特别是针对主题挖掘的处理能够降低对计算系统中内存的要求。
图1是潜在狄利克雷分布模型的概率图。
图1中的阴影圆圈表示可观测变量wn,非阴影圆圈表示潜在变量,箭头表示两个变量之间的条件依赖性,方框表示重复抽样,方框右下角的字母表示重复的次数。其中,N表示每篇文档平均包含的单词数,D表示文档的总数目,K表示主题的总数目。
LDA模型是一个三级层次贝叶斯(Bayes)模型。
其中,wn和zn是单词层变量,分别代表单词和主题。其中,wn是可观测变量,并且wn的取值是1至W的正整数。zn=k是隐藏主题变量,并且zn的取值是1至K的正整数。W表示单词表中的单词数。
其中,θd和是文档层变量,分别表示指定文档所对应的主题分布和指定主题所对应的单词概率分布。
其中,α和β是语料库层的超级参数,分别用于控制文档层θd和变量。通常,超级参数α和β被固定为α=0.01,β=0.01。当然,α和β也可以是用户定义的其他的值。本发明对此不作限定。
如前所述,LDA模块中,输入词包矩阵XW×D,通过自动推理算法,输出文档-主题矩阵θK×D和单词-主题矩阵为例如,期望最大化(Expectation-Maximization,EM)算法是一种自动推理算法。
EM算法包括以下两个重要步骤:计算期望的E步骤和最大化的M步骤。
E步骤:基于文档-主题矩阵和单词-主题矩阵,对词包矩阵中的每个非零元素计算消息向量。消息向量用线段来表示,线段的长度与单词在该主题的可能性成正比。
M步骤:根据消息向量的值更新文档-主题矩阵和单词-主题矩阵。
EM算法中,E步骤和M步骤需反复循环迭代,直到达到稳定的收敛状态。稳定的收敛状态是指文档-主题矩阵、单词-主题矩阵和消息向量都达到收敛。
在达到稳定的收敛状态时的文档-主题矩阵和单词-主题矩阵,即可作为输出的文档-主题矩阵和单词-主题矩阵。
EM算法需要将所有数据以及LDA的参数矩阵即文档-主题矩阵和单词-主题矩阵放到内存中计算,这对于内存资源是非常巨大的消耗。
图2是本发明一个实施例的数据处理的方法的流程图,可以在个人计算机(Personal Computer,PC)或者具有计算功能的服务器上完成。外部存储器中的大规模词包矩阵能够分割成A个词包矩阵,所述A个词包矩阵中的第s个词包矩阵表示为Xs Ws×Ds,A和s为正整数,s=1,2,…,A,词包矩阵的行表示单词表索引,列表示文档索引,图2所示的方法包括:
201,处理器将所述外部存储器中的第s=1个词包矩阵Xs Ws×Ds读取至内存。
202,根据所述第s=1个词包矩阵Xs Ws×Ds,随机初始化第一消息矩阵。
203,根据所述随机初始化的第一消息矩阵,采用EM算法,确定第一单词-主题矩阵。
204,释放所述内存中由所述第s=1个词包矩阵Xs Ws×Ds、第一消息矩阵和EM算法产生的第一文档-主题矩阵占用的空间,保留所述第一单词-主题矩阵并缓存在所述内存中。
205,依次地对s>1的第s个词包矩阵Xs Ws×Ds,更新所述第一单词-主题矩阵。
其中,Ws为所述第s个词包矩阵Xs Ws×Ds的单词表中的单词数,Ds为所述第s个词包矩阵的文档数。
本发明实施例中,大规模词包矩阵能够分割成A个词包矩阵,针对A个词包矩阵中的每一个词包矩阵,采用EM算法,确定对应的单词-主题矩阵,并且及时释放EM算法的参数消息矩阵、文档-主题矩阵所占用的内存空间。这样,在计算系统进行主题挖掘的过程中,对计算系统中内存硬件的资源要求较低。
应注意,本发明实施例中的外部存储器,所谓的外部是相对于处理过程中的内存来言,可以是硬盘、磁碟或者光盘等,或者也可以是其他类型的外部存储器,本发明对此不作限定。其中,硬盘可以是本地硬盘,或者可以是移动硬盘,或者也可以是网络硬盘。当硬盘是网络硬盘时,可理解本方法的内存中的数据是从网上下载获取的。
本发明实施例中,外部存储器中的大规模词包矩阵包含的文档数为D,单词表的单词数为W。可认为大规模词包矩阵为XW×D。用户可预设置主题数K,并可初始化外部存储器中的单词-主题矩阵例如,可以初始化外部存储器中的单词-主题矩阵
具体地,图2所示的方法可以是在将外部存储器中的大规模词包矩阵分割成A个词包矩阵之后,再执行的。例如,可以是首先对外部存储器中的大规模词包矩阵进行分割,确定A=10000。进一步针对s从1至10000执行图2所示的方法。
或者,也可以是在对外部存储器中的大规模词包矩阵进行分割的过程中,执行图2所示的方法。例如,只要已经分割出第1个词包矩阵,便可依次进行图2中的步骤201至204。可理解,在执行图2所示的方法时,A的大小还未确定。这样,在步骤205中,是对s顺次加1进行主题挖掘的。也就是说,对外部存储器中的大规模词包矩阵分割的过程,与图2所示的方法是同时进行的,只要分割出了第s个词包矩阵,即可对该第s个词包矩阵执行图2中的步骤205。
可理解,本方法是将大规模词包矩阵分割成A个词包矩阵,A个词包矩阵是以数据流的形式被依次读取至内存的。
应注意,本发明实施例中,A个词包矩阵中的每一个词包矩阵的元素可以是离散值,也可以是连续值。例如,第s个词包矩阵的元素可以是正整数,也可以是非整数的正数。也就是说,本发明实施例也可以处理含连续值的大规模词包矩阵,例如TF-IDF等。
应注意,本发明实施例中,Ds的大小是由用户预设置的,对于不同的s的取值,Ds可以互不相等,也可以互相相等,本发明对此不作限定。例如,可以对不同的s,都预设置Ds=1000。一般来说,不同的s的取值,Ws的大小一般都互不相同。
具体地,在201中,从外部存储器将第1个词包矩阵X1 W1×D1读取至内存中。其中,该第1个词包矩阵X1 W1×D1的单词表中的单词数为W1,该第1个词包矩阵X1 W1×D1的文档数为D1,并且该第1个词包矩阵X1 W1×D1的非零元素的个数为NNZ1。相应地,在202中,随机初始化的第一消息矩阵为μK×NNZ1。
具体地,在203中,首先根据所述随机初始化的第一消息矩阵,确定初始的第一文档-主题矩阵和初始的第一单词-主题矩阵。该初始的第一文档-主题矩阵和初始的第一单词-主题矩阵用于作为EM算法的输入参数。
可选地,假设随机初始化的第一消息矩阵μK×NNZ1的元素表示为μs=1 w,d(k),那么初始的第一单词-主题矩阵的元素可以用公式(1)表示:
其中,为第1的词包矩阵的元素。可理解,上式中k的取值是1至K的正整数,w的取值是第1个词包矩阵X1 W1×D1的单词表中的单词的索引,d的取值是第1个词包矩阵X1 W1×D1的文档的索引。固定k和w可确定第一单词-主题矩阵的一个元素。
其中,初始的第一文档-主题矩阵θK×D1可以是根据第1个词包矩阵随机初始化得到的。
随后可将初始的第一文档-主题矩阵和初始的第一单词-主题矩阵作为输入参数,执行EM算法。
所述EM算法的E步骤为:根据第一文档-主题矩阵θK×D1和第一单词-主题矩阵更新第一消息矩阵μK×NNZ1。
所述EM算法的M步骤为:根据第一消息矩阵μK×NNZ1,更新第一文档-主题矩阵θK×D1和第一单词-主题矩阵
循环执行所述E步骤和所述M步骤,直到满足收敛条件。
具体地,收敛条件也可以是指第一消息矩阵μK×NNZ1、第一文档-主题矩阵θK×D1和第一单词-主题矩阵都达到收敛。
或者,收敛条件可以是指第一消息矩阵μK×NNZ1达到收敛。这样,能够减少循环次数,较快地达到收敛。进而能够提高效率。
收敛是指当前循环的结果与前一循环的结果之差的模小于第三阈值。例如,第三阈值可以是10-6。
例如,在循环执行E步骤和M步骤的过程中,若第B次循环得到的第一消息矩阵μK×NNZ1(B)与第B-1次循环得到的第一消息矩阵μK×NNZ1(B-1)满足|μK×NNZ1(B)-μK×NNZ1(B-1)|<10-6,则认为第一消息矩阵μK×NNZ1在B次循环后达到收敛。
可理解,步骤203中所确定的第一单词-主题矩阵是满足收敛条件时的第一单词-主题矩阵。
例如,在循环执行E步骤和M步骤的过程中,若第一消息矩阵μK×NNZ1在B次循环后达到收敛,则可将第B次循环所确定的第一单词-主题矩阵作为步骤203中所确定的第一单词-主题矩阵。
应注意,上述第一文档-主题矩阵θK×D1中的文档的索引与所述第1个词包矩阵中的文档的索引一致。在203中的第一单词-主题矩阵的单词表中的单词的索引与所述第1个词包矩阵的单词表中的单词的索引一致。
可理解,在204中,释放所述内存中由所述第s=1个词包矩阵Xs Ws×Ds、第一消息矩阵和EM算法产生的第一文档-主题矩阵占用的空间,是指删除内存中的以下数据:第一消息矩阵μK×NNZ1、第一文档-主题矩阵θK×D1和第1个词包矩阵X1 W1×D1。
本发明实施例中,在204中,保留所述第一单词-主题矩阵并缓存在所述内存中。例如,该缓存在内存中的第一单词-主题矩阵,可以是保存在内存的缓存(buffer)中的。具体地,可将内存的一部分空间设置为内存的缓存。举例来说,可将大小为4G的内存中的2G设置为该内存的缓存。
进一步地,在205中,从外部存储器将第s=2个词包矩阵读取至内存,并更新缓存在内存中的第一单词-主题矩阵。然后,s的值增加1,从外部存储器将第s=3个词包矩阵读取至内存,并进一步更新缓存在内存中的第一单词-主题矩阵。依次类推,直至s的值增加至A。
具体地,在205中,针对s>1的第s个词包矩阵Xs Ws×Ds,更新所述第一单词-主题矩阵,是指依次执行如下的步骤205.1至205.5:
205.1,将所述外部存储器中的第s个词包矩阵Xs Ws×Ds读取至所述内存。
205.2,基于第s-1个词包矩阵所确定的第一单词-主题矩阵,获取与所述第s个词包矩阵Xs Ws×Ds对应的第二单词-主题矩阵,所述第二单词-主题矩阵中的单词与所述第s个词包矩阵Xs Ws×Ds的单词表中的单词一致。
205.3,根据所述第s个词包矩阵Xs Ws×Ds,随机初始化第二文档-主题矩阵。
205.4,根据所述随机初始化的第二文档-主题矩阵和所述第二单词-主题矩阵,采用EM算法,确定更新后的第一单词-主题矩阵。
205.5,释放所述内存中由所述第s个词包矩阵Xs Ws×Ds、第二文档-主题矩阵和EM算法产生的第二消息矩阵占用的空间,保留所述更新后的第一单词-主题矩阵并缓存在所述内存中。
在205.2中,第二单词-主题矩阵为并且该第二单词-主题矩阵为中的单词与所述第s个词包矩阵Xs Ws×Ds的单词表中的单词一致。具体地,根据所述第s个词包矩阵Xs Ws×Ds的单词表中的单词的索引,从所述第s-1个词包矩阵所确定的所述内存中缓存的第一单词-主题矩阵中,获取与所述单词的索引对应的所述第二单词-主题矩阵。其中,所述第二单词-主题矩阵的单词表中的单词的索引,与所述第s个词包矩阵Xs Ws×Ds的单词表中的单词的索引一致。
例如,若第s个词包矩阵Xs Ws×Ds的单词表中的单词的索引为1、3、5和7。第s-1个词包矩阵所确定的所述内存中缓存的第一单词-主题矩阵的单词表中的单词的索引为1、2、3、4、5和7。则,从该内存中缓存的第一单词-主题矩阵中,将与单词的索引1、3、5和7对应的元素作为第二单词-主题矩阵的对应元素。
可选地,当所述内存中缓存的第一单词-主题矩阵的单词表中不包括所述第s个词包矩阵Xs Ws×Ds的单词表中的第一单词时,从所述外部存储器中的单词-主题矩阵XK×W中,获取与所述第一单词的索引对应的元素,并将所述与所述第一单词的索引对应的元素作为所述第二单词-主题矩阵中的对应元素。
例如,若第s个词包矩阵Xs Ws×Ds的单词表中的单词的索引为1、3、5和7。第s-1个词包矩阵所确定的所述内存中缓存的第一单词-主题矩阵的单词表中的单词的索引为1、2、3、4和5。则,从该内存中缓存的第一单词-主题矩阵中,将与单词的索引1、3和5对应的元素作为第二单词-主题矩阵的对应元素。进一步,从外部存储器中的单词-主题矩阵中,将该外部存储器中的单词-主题矩阵中与单词的索引7对应的元素作为第二单词-主题矩阵中与单词的索引7对应的对应元素。这样,便获取到了与第s个词包矩阵Xs Ws×Ds对应的第二单词-主题矩阵。
可理解,本发明实施例中,在对数据流进行处理的过程的,缓存在内存中的第一文档-主题矩阵是作为参数流,是每两个词包矩阵之间的关系的衔接。
具体地,在205.3中,随机初始化的第二文档-主题矩阵中的文档的索引与所述第s个词包矩阵Xs Ws×Ds的文档的索引一致。该随机初始化的第二文档-主题矩阵可表示为θK×Ds。
可选地,在205.4中,可将205.3中随机初始化的第二文档-主题矩阵确定为初始的第二文档-主题矩阵θK×Ds,将205.2中获取的第二单词-主题矩阵确定为初始的第二单词-主题矩阵其中,初始的第二文档-主题矩阵θK×Ds和初始的第二单词-主题矩阵用于作为EM算法的输入参数。
或者,可选地,在205.4中,可首先根据第s个词包矩阵随机初始化第二消息矩阵μK×NNZs。再根据该随机初始化的第二消息矩阵μK×NNZs和205.2中获取的第二单词-主题矩阵确定初始的第二单词-主题矩阵并将205.3中随机初始化的第二文档-主题矩阵确定为初始的第二文档-主题矩阵θK×Ds。其中,初始的第二文档-主题矩阵θK×Ds和初始的第二单词-主题矩阵用于作为EM算法的输入参数。其中,NNZs是第s个词包矩阵Xs Ws×Ds的非零元素个数。
假设该随机初始化的第二消息矩阵μK×NNZs的元素表示为μs w,d(k),那么初始的第二单词-主题矩阵的元素可以用公式(2)表示:
其中,为205.2中获取的第二单词-主题矩阵的元素。为第s个词包矩阵的元素。可理解,上式中k的取值是1至K的正整数,w的取值是第s个词包矩阵Xs Ws×Ds的单词表中的单词的索引,d的取值是第s个词包矩阵Xs Ws×Ds的文档的索引。固定k和w可确定第二单词-主题矩阵的一个元素。
随后可将初始的第二文档-主题矩阵θK×Ds和初始的第二单词-主题矩阵作为输入参数,执行EM算法。
EM算法包括E步骤和M步骤:
E步骤:根据第二文档-主题矩阵θK×Ds和第二单词-主题矩阵更新第二消息矩阵μK×NNZs。
M步骤:根据第二消息矩阵μK×NNZs,更新第二文档-主题矩阵θK×Ds和第二单词-主题矩阵
循环执行所述E步骤和所述M步骤,直到满足收敛条件。
具体地,收敛条件也可以是指第二消息矩阵μK×NNZs、第二文档-主题矩阵θK×Ds和第二单词-主题矩阵都达到收敛。
或者,收敛条件可以是指第二消息矩阵μK×NNZs达到收敛。这样,能够减少循环次数,较快地达到收敛。进而能够提高效率。
收敛是指当前循环的结果与前一循环的结果之差的模小于第三阈值。例如,第三阈值可以是10-6。
例如,在循环执行E步骤和M步骤的过程中,若第B次循环得到的第二消息矩阵μK×NNZs(B)与第B-1次循环得到的第二消息矩阵μK×NNZs(B-1)满足|μK×NNZs(B)-μK×NNZs(B-1)|<10-6,则认为第二消息矩阵μK×NNZs在B次循环后达到收敛。
应注意,由于第二单词-主题矩阵是在205.2中,基于第s-1个词包矩阵所确定的第一单词-主题矩阵所获取的,那么在205.4中,采用EM算法能够减少循环次数。也就是说,在205.4中,能够较快地达到收敛,进而能够节省时间。
本发明实施例中,可将达到收敛时的第二单词-主题矩阵标记为
进一步地,在205.4中,确定更新后的第一单词-主题矩阵。具体地,将达到收敛时的第二单词-主题矩阵中的对应元素,替换第一单词-主题矩阵中具有相同单词的索引的元素,从而得到更新后的第一单词-主题矩阵。
应注意,缓存在内存中的第一单词-主题矩阵的维数不是固定的。例如,若第s个词包矩阵Xs Ws×Ds的单词表中的单词的索引为1、3、5和7。第s-1个词包矩阵所确定的所述内存中缓存的第一单词-主题矩阵的单词表中的单词的索引为1、2、3、4和5。那么,更新的第一单词-主题矩阵的单词表中的单词的索引为1、2、3、4、5和7。并且,第s个词包矩阵所确定的所述内存中缓存的第一单词-主题矩阵为该更新的第一单词-主题矩阵。
可选地,步骤205.1-205.5可以按照文档的顺序进行。具体地,针对第s个词包矩阵Xs Ws×Ds中的Ds个文档,先将Ds个文档中的第1个文档的全部单词更新,再将Ds个文档中的第2个文档的全部单词更新,…,依次类推,直到将Ds个文档中的第Ds个文档的全部单词更新。
例如,假设有两个文档:第一文档和第二文档。假设有一个主题。词包矩阵如表一所示,
表一
第一文档 | 第二文档 | |
第一单词 | 2 | 0 |
第二单词 | 3 | 5 |
该词包矩阵的单词表中包括两个单词:第一单词和第二单词。其中,第一单词在第一文档出现的次数为2次,第二单词在第一文档出现的次数为3次,第一单词在第二文档出现的次数为0次,第二单词在第二文档出现的次数为5次。
若按照文档的顺序进行:
对第一文档进行主题挖掘之后,所确定的单词-主题矩阵如表二所示,
表二
主题 | |
第一单词 | 40% |
第二单词 | 60% |
进一步再对第二文档进行主题挖掘,从而将表二中的单词-主题矩阵更新为表三的单词-主题矩阵:
表三
主题 | |
第一单词 | 20% |
第二单词 | 80% |
或者,可选地,步骤205.1-205.5可以按照单词的顺序进行。具体地,针对第s个词包矩阵Xs Ws×Ds中的Ws个单词,先将Ws个单词中的第1个单词的全部单词更新,再将Ws个单词中的第2个单词的全部单词更新,…,依次类推,直到将Ws个单词中的第Ws个单词的全部单词更新。这样,能够减少内存与外部存储器之间的I/O次数,进而能够提高效率。
例如,对表一所示的词包矩阵,若按照单词的顺序进行:
对第一单词进行主题挖掘之后,所确定的单词-主题矩阵如表二所示,
表四
主题 | |
第一单词 | 100% |
第二单词 | 0 |
进一步再对第二单词进行主题挖掘,从而将表四中的单词-主题矩阵更新为表三的单词-主题矩阵。
举例来说,假设第s个词包矩阵的单词表中的一个单词为第三单词,而第s-1个词包矩阵所确定的缓存在内存中的第一单词-主题矩阵的单词表中不包括该第三单词。那么,在205.2中需根据外部存储器中的单词-主题矩阵来确定第二单词-主题矩阵,也就是说需有内存与外部存储器之间的I/O。
假设第s个词包矩阵中的Ds个文档的其中有100个文档都包括该第三单词,也就是说,第s个词包矩阵中的第三单词对应的非零元素的个数是100。
可理解,若按照文档的顺序执行,那么针对该第三单词更新第一单词-主题矩阵时,内存与外部存储器之间的I/O的次数需是100次。
可理解,按照单词的顺序执行,那么针对该第三单词更新第一单词-主题矩阵时,内存与外部存储器之间的I/O的次数只有一次。
因此,步骤205.1-205.5按照单词的顺序进行,能够减少内存与外部存储器之间的I/O次数,进而能够提高效率。
可选地,作为一个实施例,在对s>1的第s个词包矩阵Xs Ws×Ds,更新所述第一单词-主题矩阵之后,当所述内存中缓存的第一单词-主题矩阵的大小大于第一阈值时,所述方法还包括:根据所述内存中缓存的第一单词-主题矩阵,更新所述外部存储器中的单词-主题矩阵XW×D;删除所述内存中缓存的第一单词-主题矩阵中的部分单词。其中,第一阈值可以是用于预设置的。例如,可对大小为4G的内存设置第一阈值为1.5G。
具体地,根据所述内存中缓存的第一单词-主题矩阵,更新所述外部存储器中的单词-主题矩阵XW×D,是指:将内存中缓存的第一单词-主题矩阵中的对应元素,替换外部存储器中的单词-主题矩阵XW×D中具有相同单词的索引的元素,从而更新所述外部存储器中的单词-主题矩阵XW×D。
具体地,删除所述内存中缓存的第一单词-主题矩阵中的部分单词,可以是指删除该第一单词-主题矩阵每个主题所包括的单词中概率最小的一个或几个单词。也就是说,部分单词可以是每个主题所包括的单词中概率最小的一个或几个单词。
例如,若主题一包括3个单词单词:数据(data)、数字(number)和计算(compute)。其中,data在主题一出现的概率为60%,number在主题一出现的概率为35%,compute在主题一出现的概率为5%。那么,可以将主题一中的单词compute删除,只保留60%的data和35%的number。
这样,当所述内存中缓存的第一单词-主题矩阵的大小大于第一阈值时,再更新外部存储器中的单词-主题矩阵XW×D,能够减少内存与外部存储器之间的输入/输出(I/O),进而能够提高效率。
可选地,作为另一个实施例,在对s>1的第s=P个词包矩阵Xs Ws×Ds,更新所述第一单词-主题矩阵之后,所述方法还包括:根据所述内存中缓存的第一单词-主题矩阵,更新所述外部存储器中的单词-主题矩阵XW×D。其中,P为第二阈值的整数倍或者P=A,所述第二阈值为预设置的小于A的正整数。
具体地,第二阈值可以是用户预设置的小于A的正整数。这样,在对第s=第二阈值的整数倍个词包矩阵Xs Ws×Ds,更新所述第一单词-主题矩阵之后,再更新外部存储器中的单词-主题矩阵XW×D,能够提高该方法的容错性。进而能够减少处理时间,提高效率。
例如,在出现断电等异常状况时,可以根据更新外部存储器中的单词-主题矩阵XW×D的时刻,从中间的某个词包矩阵继续执行步骤205。这样,能够较少处理时间,提高处理的效率。
具体地,P=A,表示该方法对大规模词包矩阵的主题挖掘过程已经结束,此时更新外部存储器中的单词-主题矩阵XW×D,以便作为对大规模词包矩阵进行主题挖掘的输出矩阵:单词-主题矩阵XW×D。
本发明实施例对外部存储器硬盘中的大规模词包矩阵进行主题挖掘以确定相应的文档-主题矩阵。首先针对第s=1个词包矩阵执行步骤201至步骤204;然后针对第s=2个词包矩阵执行步骤205,也就是步骤205.1至步骤205.5;然后针对第s=3个词包矩阵执行步骤205,也就是步骤205.1至步骤205.5;…以此类推,完成对每一个词包矩阵的主题挖掘过程。其中,处理每一个词包矩阵之后,均及时地释放内存中由文档-主题矩阵和消息矩阵占用的空间。
可理解,本发明实施例所示的方法是一种在线学习的方法,也可以称为在线EM(Online Expectation-Maximization,OEM)算法。
这样,在本发明所示的方法的过程中,对内存的需求只与第s个词包矩阵的大小有关,该过程对内存的需求较低。实际上,该方法可以在个人电脑上执行。
另外,当缓存在内存中的第一单词-主题矩阵的大小大于第一阈值时,再更新外部存储器中的单词-主题矩阵,能够减少内存与外部存储器之间的I/O次数,进而能够提高效率。
并且,在对每一个词包矩阵的处理过程中,可以按照单词的顺序进行,能够减少硬盘与内存之间的I/O次数,进而能够提高效率。
例如,PUBMED文档集合包括820万文档和12万单词。传统消息传递(BeliefPropagation,BP)算法针对该PUBMED文档集合的主题挖掘需要的内存大小为36T。本发明实施例的方法可以在个人电脑上完成。该个人电脑的内存大小为4G,硬盘大小为100G。具体地,可设置Ds=1024,K=10000,内存的缓存大小为2G。也就是说,本发明实施例的方法能够节省99.9%的内存。
图3是本发明实施例的计算设备的框图。图3所示的计算设备300包括处理器301和内存302。计算设备300与外部存储器通信,能够从外部存储器获取数据。
外部存储器中的大规模词包矩阵能够分割成A个词包矩阵,所述A个词包矩阵中的第s个词包矩阵表示为Xs Ws×Ds,A和s为正整数,s=1,2,…,A。词包矩阵的行表示单词表索引,列表示文档索引。
处理器301用于将所述外部存储器中的第s=1个词包矩阵Xs Ws×Ds读取至内存302;根据所述第s=1个词包矩阵Xs Ws×Ds,随机初始化第一消息矩阵;根据所述随机初始化的第一消息矩阵,采用期望最大化EM算法,确定第一单词-主题矩阵;释放所述内存中由所述第s=1个词包矩阵Xs Ws×Ds、第一消息矩阵和EM算法产生的第一文档-主题矩阵占用的空间,保留所述第一单词-主题矩阵并缓存在所述内存302中;依次地对s>1的第s个词包矩阵Xs Ws×Ds,更新所述第一单词-主题矩阵;所述内存302,用于缓存所述第一单词-主题矩阵;其中,Ws为所述第s个词包矩阵Xs Ws×Ds的单词表中的单词数,Ds为所述第s个词包矩阵的文档数。
本发明实施例中,大规模词包矩阵能够分割成A个词包矩阵,针对A个词包矩阵中的每一个词包矩阵,采用EM算法,确定对应的单词-主题矩阵,并且及时释放EM算法的参数消息矩阵、文档-主题矩阵所占用的内存空间。这样,在计算系统进行主题挖掘的过程中,对计算系统中内存硬件的资源要求较低。
计算设备300中的各个组件通过总线系统耦合在一起,其中总线系统除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。
上述本发明实施例揭示的方法可以应用于处理器301中,或者由处理器301实现。处理器301可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器301中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器301可以是通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(FieldProgrammable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。-用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存取存储器(Random Access Memory,RAM)、闪存、只读存储器(Read-Only Memory,ROM)、可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器302,处理器301读取存储器302中的信息,结合其硬件完成上述方法的步骤。
如图4所示,为该计算设备300与外部存储器400的连接关系示意图。具体地,计算设备300与外部存储器400之间可通过物理接口进行连接,本发明对此不作限定。
可选地,作为一个实施例,处理器301,对s>1的第s个词包矩阵Xs Ws×Ds,更新所述第一单词-主题矩阵,包括:将外部存储器400中的第s个词包矩阵Xs Ws×Ds读取至所述内存;基于第s-1个词包矩阵所确定的第一单词-主题矩阵,获取与所述第s个词包矩阵Xs Ws×Ds对应的第二单词-主题矩阵,所述第二单词-主题矩阵中的单词与所述第s个词包矩阵Xs Ws×Ds的单词表中的单词一致;根据所述第s个词包矩阵Xs Ws×Ds,随机初始化第二文档-主题矩阵;根据所述随机初始化的第二文档-主题矩阵和所述第二单词-主题矩阵,采用EM算法,确定更新后的第一单词-主题矩阵;释放所述内存中由所述第s个词包矩阵Xs Ws×Ds、第二文档-主题矩阵和EM算法产生的第二消息矩阵占用的空间,保留所述更新后的第一单词-主题矩阵并缓存在所述内存中。
可选地,作为另一个实施例,处理器301,基于第s-1个词包矩阵所确定的第一单词-主题矩阵,获取与所述第s个词包矩阵Xs Ws×Ds对应的第二单词-主题矩阵,包括:根据所述第s个词包矩阵Xs Ws×Ds的单词表中的单词的索引,从所述第s-1个词包矩阵所确定的所述内存中缓存的第一单词-主题矩阵中,获取与所述单词的索引对应的所述第二单词-主题矩阵,其中,所述第二单词-主题矩阵的单词表中的单词的索引,与所述第s个词包矩阵Xs Ws×Ds的单词表中的单词的索引一致。
可选地,作为另一个实施例,处理器301,基于第s-1个词包矩阵所确定的第一单词-主题矩阵,获取与所述第s个词包矩阵Xs Ws×Ds对应的第二单词-主题矩阵,还包括:当所述内存中缓存的第一单词-主题矩阵的单词表中不包括所述第s个词包矩阵Xs Ws×Ds的单词表中的第一单词时,从所述外部存储器中的单词-主题矩阵XK×W中,获取与所述第一单词的索引对应的元素,并将所述与所述第一单词的索引对应的元素作为所述第二单词-主题矩阵中的对应元素;其中,W为所述大规模词包矩阵的单词表中的单词数,K为主题数。
可选地,作为另一个实施例,处理器301,还用于:在对s>1的第s个词包矩阵Xs Ws×Ds,更新所述第一单词-主题矩阵之后,当所述内存中缓存的第一单词-主题矩阵的大小大于第一阈值时,根据所述内存中缓存的第一单词-主题矩阵,更新所述外部存储器中的单词-主题矩阵XW×D;删除所述内存中缓存的第一单词-主题矩阵中的部分单词。
可选地,作为另一个实施例,处理器301,还用于:在对s>1的第s=P个词包矩阵Xs Ws×Ds,更新所述第一单词-主题矩阵之后,根据所述内存中缓存的第一单词-主题矩阵,更新所述外部存储器中的单词-主题矩阵XW×D;其中,P为第二阈值的整数倍或者P=A,所述第二阈值为预设置的小于A的正整数。
可选地,作为另一个实施例,处理器301,以所述第s个词包矩阵Xs Ws×Ds的单词表中的单词的顺序,更新所述第一单词-主题矩阵。
计算设备300能够实现图2的实施例中的各个过程,为避免重复,这里不再赘述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (14)
1.一种数据处理的方法,其特征在于,外部存储器中的大规模词包矩阵能够分割成A个词包矩阵,所述A个词包矩阵中的第s个词包矩阵表示为Xs Ws×Ds,A和s为正整数,s=1,2,…,A,所述词包矩阵的行表示单词表索引,列表示文档索引,所述方法包括:
处理器将所述外部存储器中的第s=1个词包矩阵X1 W1×D1读取至内存;
根据所述第s=1个词包矩阵X1 W1×D1,随机初始化第一消息矩阵;
根据所述随机初始化的第一消息矩阵,采用期望最大化EM算法,确定第一单词-主题矩阵;
释放所述内存中由所述第s=1个词包矩阵X1 W1×D1、第一消息矩阵和EM算法产生的第一文档-主题矩阵占用的空间,保留所述第一单词-主题矩阵并缓存在所述内存中;
依次地对s>1的第s个词包矩阵Xs Ws×Ds,更新所述第一单词-主题矩阵;
其中,Ws为所述第s个词包矩阵Xs Ws×Ds的单词表中的单词数,Ds为所述第s个词包矩阵的文档数。
2.根据权利要求1所述的方法,其特征在于,所述对s>1的第s个词包矩阵Xs Ws×Ds,更新所述第一单词-主题矩阵,包括:
将所述外部存储器中的第s个词包矩阵Xs Ws×Ds读取至所述内存;
基于第s-1个词包矩阵所确定的第一单词-主题矩阵,获取与所述第s个词包矩阵Xs Ws×Ds对应的第二单词-主题矩阵,所述第二单词-主题矩阵中的单词与所述第s个词包矩阵Xs Ws×Ds的单词表中的单词一致;
根据所述第s个词包矩阵Xs Ws×Ds,随机初始化第二文档-主题矩阵;
根据所述随机初始化的第二文档-主题矩阵和所述第二单词-主题矩阵,采用EM算法,确定更新后的第一单词-主题矩阵;
释放所述内存中由所述第s个词包矩阵Xs Ws×Ds、第二文档-主题矩阵和EM算法产生的第二消息矩阵占用的空间,保留所述更新后的第一单词-主题矩阵并缓存在所述内存中。
3.根据权利要求2所述的方法,其特征在于,所述基于第s-1个词包矩阵所确定的第一单词-主题矩阵,获取与所述第s个词包矩阵Xs Ws×Ds对应的第二单词-主题矩阵,包括:
根据所述第s个词包矩阵Xs Ws×Ds的单词表中的单词的索引,从所述第s-1个词包矩阵所确定的所述内存中缓存的第一单词-主题矩阵中,获取与所述单词的索引对应的所述第二单词-主题矩阵。
4.根据权利要求3所述的方法,其特征在于,所述基于第s-1个词包矩阵所确定的第一单词-主题矩阵,获取与所述第s个词包矩阵Xs Ws×Ds对应的第二单词-主题矩阵,还包括:
当所述内存中缓存的第一单词-主题矩阵的单词表中不包括所述第s个词包矩阵Xs Ws×Ds的单词表中的第一单词时,从所述外部存储器中的单词-主题矩阵XK×W中,获取与所述第一单词的索引对应的元素,并将所述与所述第一单词的索引对应的元素作为所述第二单词-主题矩阵中的对应元素;
其中,W为所述大规模词包矩阵的单词表中的单词数,K为主题数。
5.根据权利要求1至4任一项所述的方法,其特征在于,在对s>1的第s个词包矩阵Xs Ws×Ds,更新所述第一单词-主题矩阵之后,当所述内存中缓存的第一单词-主题矩阵的大小大于第一阈值时,所述方法还包括:
根据所述内存中缓存的第一单词-主题矩阵,更新所述外部存储器中的单词-主题矩阵XW×D;
删除所述内存中缓存的第一单词-主题矩阵中的部分单词。
6.根据权利要求1至4任一项所述的方法,其特征在于,在对s>1的第s个词包矩阵Xs Ws×Ds,更新所述第一单词-主题矩阵之后,所述方法还包括:
根据所述内存中缓存的第一单词-主题矩阵,更新所述外部存储器中的单词-主题矩阵XW×D;
其中,s=P,P为第二阈值的整数倍或者P=A,所述第二阈值为预设置的小于A的正整数。
7.根据权利要求1至4任一项所述的方法,其特征在于,所述对s>1的第s个词包矩阵Xs Ws×Ds,更新所述第一单词-主题矩阵,包括:
以所述第s个词包矩阵Xs Ws×Ds的单词表中的单词的顺序,更新所述第一单词-主题矩阵。
8.一种计算设备,其特征在于,所述计算设备与外部存储器通信,所述外部存储器中的大规模词包矩阵能够分割成A个词包矩阵,所述A个词包矩阵中的第s个词包矩阵表示为Xs Ws×Ds,A和s为正整数,s=1,2,…,A,所述词包矩阵的行表示单词表索引,列表示文档索引,所述计算设备包括处理器和内存,
所述处理器,用于将所述外部存储器中的第s=1个词包矩阵X1 W1×D1读取至内存;根据所述第s=1个词包矩阵X1 W1×D1,随机初始化第一消息矩阵;根据所述随机初始化的第一消息矩阵,采用期望最大化EM算法,确定第一单词-主题矩阵;释放所述内存中由所述第s=1个词包矩阵X1 W1×D1、第一消息矩阵和EM算法产生的第一文档-主题矩阵占用的空间,保留所述第一单词-主题矩阵并缓存在所述内存中;依次地对s>1的第s个词包矩阵Xs Ws×Ds,更新所述第一单词-主题矩阵;
所述内存,用于缓存所述第一单词-主题矩阵;
其中,Ws为所述第s个词包矩阵Xs Ws×Ds的单词表中的单词数,Ds为所述第s个词包矩阵的文档数。
9.根据权利要求8所述的计算设备,其特征在于,所述处理器对s>1的第s个词包矩阵Xs Ws×Ds,更新所述第一单词-主题矩阵,包括:
将所述外部存储器中的第s个词包矩阵Xs Ws×Ds读取至所述内存;
基于第s-1个词包矩阵所确定的第一单词-主题矩阵,获取与所述第s个词包矩阵Xs Ws×Ds对应的第二单词-主题矩阵,所述第二单词-主题矩阵中的单词与所述第s个词包矩阵Xs Ws×Ds的单词表中的单词一致;
根据所述第s个词包矩阵Xs Ws×Ds,随机初始化第二文档-主题矩阵;
根据所述随机初始化的第二文档-主题矩阵和所述第二单词-主题矩阵,采用EM算法,确定更新后的第一单词-主题矩阵;
释放所述内存中由所述第s个词包矩阵Xs Ws×Ds、第二文档-主题矩阵和EM算法产生的第二消息矩阵占用的空间,保留所述更新后的第一单词-主题矩阵并缓存在所述内存中。
10.根据权利要求9所述的计算设备,其特征在于,所述处理器基于第s-1个词包矩阵所确定的第一单词-主题矩阵,获取与所述第s个词包矩阵Xs Ws×Ds对应的第二单词-主题矩阵,包括:
根据所述第s个词包矩阵Xs Ws×Ds的单词表中的单词的索引,从所述第s-1个词包矩阵所确定的所述内存中缓存的第一单词-主题矩阵中,获取与所述单词的索引对应的所述第二单词-主题矩阵。
11.根据权利要求10所述的计算设备,其特征在于,所述处理器基于第s-1个词包矩阵所确定的第一单词-主题矩阵,获取与所述第s个词包矩阵Xs Ws×Ds对应的第二单词-主题矩阵,还包括:
当所述内存中缓存的第一单词-主题矩阵的单词表中不包括所述第s个词包矩阵Xs Ws×Ds的单词表中的第一单词时,从所述外部存储器中的单词-主题矩阵XK×W中,获取与所述第一单词的索引对应的元素,并将所述与所述第一单词的索引对应的元素作为所述第二单词-主题矩阵中的对应元素;
其中,W为所述大规模词包矩阵的单词表中的单词数,K为主题数。
12.根据权利要求8至11任一项所述的计算设备,其特征在于,所述处理器,还用于:在对s>1的第s个词包矩阵Xs Ws×Ds,更新所述第一单词-主题矩阵之后,当所述内存中缓存的第一单词-主题矩阵的大小大于第一阈值时,
根据所述内存中缓存的第一单词-主题矩阵,更新所述外部存储器中的单词-主题矩阵XW×D;
删除所述内存中缓存的第一单词-主题矩阵中的部分单词。
13.根据权利要求8至11任一项所述的计算设备,其特征在于,所述处理器,还用于:在对s>1的第s个词包矩阵Xs Ws×Ds,更新所述第一单词-主题矩阵之后,
根据所述内存中缓存的第一单词-主题矩阵,更新所述外部存储器中的单词-主题矩阵XW×D;
其中,s=P,P为第二阈值的整数倍或者P=A,所述第二阈值为预设置的小于A的正整数。
14.根据权利要求8至11任一项所述的计算设备,其特征在于,所述处理器,以所述第s个词包矩阵Xs Ws×Ds的单词表中的单词的顺序,更新所述第一单词-主题矩阵。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410264449.9A CN105224557B (zh) | 2014-06-13 | 2014-06-13 | 数据处理的方法及计算设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410264449.9A CN105224557B (zh) | 2014-06-13 | 2014-06-13 | 数据处理的方法及计算设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105224557A CN105224557A (zh) | 2016-01-06 |
CN105224557B true CN105224557B (zh) | 2019-06-11 |
Family
ID=54993530
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410264449.9A Active CN105224557B (zh) | 2014-06-13 | 2014-06-13 | 数据处理的方法及计算设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105224557B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101587493A (zh) * | 2009-06-29 | 2009-11-25 | 中国科学技术大学 | 文本分类方法 |
CN102243625A (zh) * | 2011-07-19 | 2011-11-16 | 北京航空航天大学 | 一种基于N-gram增量主题模型的语义挖掘方法 |
CN102439597A (zh) * | 2011-07-13 | 2012-05-02 | 华为技术有限公司 | 基于潜在狄利克雷模型的参数推断方法、计算装置及系统 |
CN102662960A (zh) * | 2012-03-08 | 2012-09-12 | 浙江大学 | 在线监督式主题建模及其演变分析的方法 |
US8620963B2 (en) * | 2012-03-08 | 2013-12-31 | eBizprise Inc. | Large-scale data processing system, method, and non-transitory tangible machine-readable medium thereof |
-
2014
- 2014-06-13 CN CN201410264449.9A patent/CN105224557B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101587493A (zh) * | 2009-06-29 | 2009-11-25 | 中国科学技术大学 | 文本分类方法 |
CN102439597A (zh) * | 2011-07-13 | 2012-05-02 | 华为技术有限公司 | 基于潜在狄利克雷模型的参数推断方法、计算装置及系统 |
CN102243625A (zh) * | 2011-07-19 | 2011-11-16 | 北京航空航天大学 | 一种基于N-gram增量主题模型的语义挖掘方法 |
CN102662960A (zh) * | 2012-03-08 | 2012-09-12 | 浙江大学 | 在线监督式主题建模及其演变分析的方法 |
US8620963B2 (en) * | 2012-03-08 | 2013-12-31 | eBizprise Inc. | Large-scale data processing system, method, and non-transitory tangible machine-readable medium thereof |
Also Published As
Publication number | Publication date |
---|---|
CN105224557A (zh) | 2016-01-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110520857B (zh) | 使用虚拟化数据迭代器对神经网络进行数据处理性能增强 | |
Zhao et al. | Parallel k-means clustering based on mapreduce | |
CN104714893B (zh) | 用于缩放垃圾收集的方法和系统 | |
US8583589B2 (en) | Hybrid approach for equivalence reasoning | |
CN112561068B (zh) | 模拟方法、计算设备、经典设备、存储设备及产品 | |
US8676874B2 (en) | Data structure for tiling and packetizing a sparse matrix | |
CN104813310A (zh) | 多级别内联数据去重 | |
US20200019881A1 (en) | Feature processing method and feature processing system for machine learning | |
CN112395293B (zh) | 分库分表方法、分库分表装置、分库分表设备及存储介质 | |
CN109766437A (zh) | 一种文本聚类方法、文本聚类装置及终端设备 | |
CN109983459B (zh) | 用于标识语料库中出现的n-gram的计数的方法和设备 | |
CN110737401B (zh) | 用于管理独立冗余磁盘阵列的方法、设备和计算机程序产品 | |
DE102022105725A1 (de) | Verfahren und einrichtungen zur durchführung von gewichtungs- und aktivierungskomprimierung und -dekomprimierung | |
JP2019091257A (ja) | 情報処理装置、情報処理方法及びプログラム | |
CN102880621A (zh) | 提取相似子时间序列的方法和装置 | |
CN112819157A (zh) | 神经网络训练的方法及装置、智能行驶控制的方法及装置 | |
CN114925840A (zh) | 模拟方法、设备及存储介质 | |
CN109412865B (zh) | 一种虚拟网络资源分配方法、系统及电子设备 | |
US10303655B1 (en) | Storage array compression based on the structure of the data being compressed | |
CN110019017B (zh) | 一种基于访问特征的高能物理文件存储方法 | |
CN111090397B (zh) | 一种数据重删方法、系统、设备及计算机可读存储介质 | |
CN106844690B (zh) | 一种数据分配方法、装置和计算设备 | |
CN105224557B (zh) | 数据处理的方法及计算设备 | |
CN109299725B (zh) | 一种张量链并行实现高阶主特征值分解的预测系统和装置 | |
CN113742332A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |