CN113139599B - 一种融合词向量扩充和主题模型的服务分布式聚类方法 - Google Patents
一种融合词向量扩充和主题模型的服务分布式聚类方法 Download PDFInfo
- Publication number
- CN113139599B CN113139599B CN202110434605.1A CN202110434605A CN113139599B CN 113139599 B CN113139599 B CN 113139599B CN 202110434605 A CN202110434605 A CN 202110434605A CN 113139599 B CN113139599 B CN 113139599B
- Authority
- CN
- China
- Prior art keywords
- service
- word
- clustering
- topic
- cluster
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/23—Clustering techniques
- G06F18/232—Non-hierarchical techniques
- G06F18/2321—Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions
- G06F18/23213—Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions with fixed number of clusters, e.g. K-means clustering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/213—Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods
- G06F18/2132—Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods based on discrimination criteria, e.g. discriminant analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
- G06F40/284—Lexical analysis, e.g. tokenisation or collocates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/30—Semantic analysis
-
- 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- General Engineering & Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Probability & Statistics with Applications (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种融合词向量扩充和主题模型的服务分布式聚类方法,包括:步骤1,提取服务描述文本中的服务特征词;步骤2,获取所述服务特征词的词向量,生成服务描述库;步骤3,根据服务特征词的词向量基于主题模型获取服务文档‑主题矩阵;步骤4,基于所述文档‑主题矩阵进行服务的分布式聚类,并对服务类簇进行语义建模。本发明通过词向量的扩充和BTM的应用,使得服务描述拥有语义特性,缓解了服务描述短文本特征稀疏的问题;本发明将k‑means算法与canopy算法相融合,降低了算法迭代次数;采用基于内存的Spark框架,避免大量磁盘I/O,提升了服务聚类效率;基于特征提取的服务类簇的语义建模方法,为优化服务组织和管理提供支撑。
Description
技术领域
本发明涉及服务计算领域,具体涉及服务组织管理,更具体涉及一种融合词向量扩充和主题模型的服务分布式聚类方法。
背景技术
软件行业中,传统的软件架构为单体架构,随着各种计算机技术在软件行业的迅速发展,单体模式越来越难以满足软件复用和资源集成等方面的复杂需求,在此背景下,服务计算得以迅速发展。
服务是一种低耦合、模块化、自描述、封装良好的分布式计算模型。服务最初是由Ariba、IBM和Microsoft等公司共同提出的,旨在为Internet上跨越不同地域、不同行业的应用提供更强大的互操作能力。服务提供者发布服务到互联网上后,服务消费者找到自己期望的服务进行绑定即可使用。服务消费者无需了解服务内部的实现逻辑、编程语言、操作系统,也即服务具有平台独立的特性。这意味着,用户不需要自己实现该模块的软件研发,直接调用该服务即可得到期望的执行结果,从而实现了软件复用,大大降低了研发成本。对于复杂的需求,用户可以通过服务组合,即调用多个不同服务来满足需求。
各领域的可用服务越来越多,海量服务之间的互联互通形成了服务互联网。在此背景下,服务计算也面临新的问题与挑战:服务数量呈指数级增长,造成信息过载,使得服务的组织管理和检索存在较大压力,海量的服务已经超过人工能接受与处理的有效范围。如果不对服务进行组织,服务消费者查找服务时只能进行全局搜索,空间和时间成本都很高。
研究人员将机器学习、知识图谱、本体等方面的技术研究,应用在服务组织和管理领域。服务组织管理技术包括服务社区、服务本体建模、服务分类、服务知识图谱、服务组合、服务网络、服务聚类等。其中,服务聚类是一种有效的服务组织管理方式。聚类是一种无监督的机器学习方法,服务聚类通常根据服务的功能属性进行聚类。服务描述文本富含服务的功能属性,因而常常被应用于服务聚类中。
服务聚类可以分为基于向量空间模型(Vector Space Model,VSM)的服务聚类方法,以及基于主题模型的服务聚类方法。
基于向量空间模型的服务聚类方法,从服务描述文本中提取服务特征词,对其构造向量空间,以达到文本计算转化为向量运算的目的。该方法假定服务特征词汇相互独立,缺乏考虑服务文本的语义影响。
与向量空间模型相比,基于主题模型的服务聚类方法能够依据“词共现”数据,揭示服务描述文本的潜在主题信息,挖掘服务与服务之间的潜在特征。然而,服务描述文本通常为短文本,特征稀疏,特征提取存在一定困扰。主题模型往往难以在特征稀疏的服务描述文本中表现良好的能力。
服务数量的急速增长,以及服务库“去中心化”的分布式存储方式给服务聚类带来压力。服务聚类算法大多需要频繁迭代,单机难以应对日益增长的服务总量。服务聚类面临着服务数据集维度大、服务聚类结果集大的现象。“单机瓶颈”问题致使服务存储能力受限,且服务聚类参数训练效率低下。
发明内容
为解决上述现有技术中存在的问题,提供一种融合词向量扩充和主题模型的服务分布式聚类方法,包括:
步骤1,提取服务描述文本中的服务特征词;
步骤2,获取所述服务特征词的词向量,生成服务描述库;
步骤3,根据服务特征词的词向量基于主题模型获取服务文档-主题矩阵;
步骤4,基于所述文档-主题矩阵进行服务的分布式聚类,并对服务类簇进行语义建模。
优选的,所述步骤2采用Word2vec的CBOW模型提取服务特征词的词向量。
优选的,所述步骤3的主题模型为BTM。
优选的,服务描述库的服务主题分布参数θz由以下公式计算得出,其中,nZ是主题的个数,α是θ的超参数,|B|是语料库中所有的词对个数,K是设定的主题数目。
优选的,服务主题下词项的分布参数由以下公式计算得出,
其中,b是服务词对,Z是服务主题,nb∣z表示服务主题Z下服务词对b出现的次数,M是服务描述库中所有词的总数,β是/>的超参数。
优选的,所述步骤4包括:
步骤C1,基于canopy聚类算法对所述服务文档-主题矩阵进行服务聚类,获得服务类簇个数以及服务类簇中心点的坐标;
步骤C2,采用k-means聚类算法进行服务聚类,其中,k-means聚类输入的初始中心点是步骤C1获得的服务类簇中心点,k-means聚类算法的k值是步骤C1获得的服务类簇中心点的个数。
优选的,所述步骤4包括:
步骤D1,将服务文档-主题矩阵分配到集群的多个节点,所述集群包括主节点和计算节点;
步骤D2,集群的每个计算节点分别执行canopy算法,并将得到的本地canopy聚类中心点发送到主节点;
步骤D3,主节点将汇总的聚类中心点广播到每个计算节点;
步骤D4,每个计算节点将汇总的聚类中心点设置为初始聚类中心点,执行局部K-Means聚类;
步骤D5,在局部K-Means聚类的基础上进行全局K-Means,直到算法收敛,得到K个聚类中心点及每个类簇所包含的服务。
优选的,所述步骤4包括:
步骤T1,根据每个服务类簇中每个服务的服务特征词的词向量与其他服务的服务特征词的词向量的相似度计算所述每个服务的得分,基于所述得分对每个服务类簇中的服务排序,选取前k个服务作为服务类簇的服务代表;
步骤T2,根据步骤T1所述的服务代表的服务特征词的TF-IDF值,选取服务类簇的服务特征词。
一种计算机可读存储介质,其上存储有计算机程序,其中,该程序被处理器执行时实现上述任一项方法的步骤。
一种计算机设备,包括存储器和处理器,在所述存储器上存储有能够在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现上述任一项方法的步骤。
本发明具有如下特点和有益效果:本发明的融合词向量扩充和主题模型的服务分布式聚类方法,通过词向量的扩充和BTM的应用,使得服务描述拥有语义特性,缓解了服务描述短文本特征稀疏的问题;本发明将k-means算法与canopy算法相融合,降低了算法迭代次数;采用基于内存的Spark框架,避免大量磁盘I/O,提升了服务聚类效率;基于特征提取的服务类簇的语义建模方法为优化服务组织和管理提供支撑。
附图说明
图1示出了根据本发明一个实施例的服务特征词提取流程图。
图2示出了根据本发明一个实施例的停用词表。
图3示出了现有技术的CBOW模型图。
图4示出了根据本发明一个实施例的融合词向量的BTM概率图模型。
图5示出了根据本发明一个实施例的基于Spark的聚类算法流程图。
图6示出了根据本发明一个实施例的各文本表示方法的F值对比。
图7示出了根据本发明一个实施例的各算法在Spark平台的加速比。
具体实施方式
下面结合附图和具体实施例对本发明加以说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
近年来,随着云计算、移动互联网、泛在计算技术在软件行业的飞速发展,“万物皆互联”与“万物皆服务”逐步成熟,各领域的可用服务越来越繁荣,海量服务之间的互联互通形成了服务互联网。
在此背景下,服务数量日渐增长,服务类型和服务描述呈现多样化,给服务的组织管理和检索效率带来较大挑战。服务聚类方法是一种有效的服务组织管理手段,它能够识别并聚合具有一定相似程度的服务,通过服务集合的划分与服务归类实现服务重组,从而缩小服务的搜索范围,提升检索效率。分布式聚类方法利用分布式计算框架对聚类算法进行优化设计,可以有效应对海量服务资源的挑战。当前,常用的服务聚类方法,通常以服务描述等文本为基础,通过判定文本相似度实现服务聚类。但是普遍存在下述问题:(1)目前的大多数服务描述文本通常为短文本,特征稀疏,对聚类结果的准确性影响较大,同时现有的服务聚类大都假定服务特征词汇相互独立,缺乏考虑服务文本的语义影响;(2)聚类通常需要反复迭代计算,大量磁盘的I/O会成为制约分布式聚类效率的瓶颈。此外,聚类结果不具有语义信息,难以基于聚类结果进一步实现服务的组织管理。
本发明的融合词向量扩充和主题模型的服务分布式聚类方法,概括来说包括:从服务描述文本中提取服务特征词;基于服务特征词建立服务主题;基于服务主题进行聚类获取服务类簇。
以下结合本发明的实施例对于本发明的方法进行描述。
首先,从服务描述文中提取服务特征词。
服务描述文本是服务提供者给定的一段文本,对于服务消费者来说,阅读服务描述文本可以大致了解该服务的功能。然而,服务提供者提供的服务描述文本往往篇幅短小,特征稀疏,并且服务描述文本是非结构化数据,无法直接应用于服务组织管理,必须先对其进行结构化处理,提取服务特征词。
以下描述根据本发明的一个实施例的服务特征词的提取过程,其流程如图1所示。
步骤F1,检查服务描述文本中是否包含服务名称,如果包含则去除服务名称。服务描述描述文本的第一句话往往以服务名称作为开头,然而服务名称不应该归类为服务特征词,例如一款名为“Rotten Tomatoes”的服务,中文翻译为“烂番茄”,仅通过服务名称无法知道该服务是隶属于电影资讯类。
步骤F2,将去除服务名称的服务描述文本切分成单个词汇。在NLP(NaturalLanguage Processing,自然语言处理)领域,词是最小的信息载体单位,单个的英文字母或者单个的汉字,往往没有明确的语义。根据本发明的一个实施,使用NLTK(NaturalLanguage Toolkit)中的tokenize包中的word_tokenize分词函数进行分词,NLTK是以Python编程语言编写的用于英语的符号和统计自然语言处理的库和程序。分词过程中如果遇到英文单词首字母大写,例如句子开头,则统一转换为小写。
步骤F3,删除停用词。停用词指在大量文本中都出现,但却具有较少意义的词。停用词不仅会增加文本表示的维度,浪费大量存储空间,还会对文本建模进行干扰,增加模型的复杂度和错误。删除停用词,首先需要构建停用词表,再根据停用词表对分词后的服务描述文本去除停用词。根据本发明的一个实施例,停用词表除了常见的停用词,即包含介词、连词、代词等,例如英文的中的“a”、“and”和“the”等,还针对服务描述文本的特性,加入了例如“service”、“system”、“api”、“method”等词汇,它们在服务描述文本中常常出现,却并非区分服务特性的词汇,属于服务领域的停用词。图2示出了根据本发明一个实施例的停用词表。
步骤F4,词性识别。词性标注(part-of-speech tagging)是一种重要的词汇分类手段。根据本发明的一个实施例,使用NLTK中tag包的StanfordPOSTagger类进行词性标注,训练集model取english-bidirectional-distsim.tagger。
步骤F5,词形还原。词汇通常拥有丰富的变形。词干提取(Stemming)和词形还原(Lemmatization)是对单词多重变形的标准化的两种方式,标准化的目的是将形态不同但意义相同的词统一起来,缩短词典的长度,以降低模型的训练时间。词干提取是指去除单词词缀得到词根的过程。例如单词“fishing”和“fisher”都具有同一个词根“fish”。词形还原是基于词典将单词的复杂形态转换成最基础的形态(原形)。复杂形态包括名词的复数、动词的过去分词、进行时、第三人称单数等。例如,“is”还原成“be”、“played”还原成“play”。词干还原侧重于细粒度的“变形”,而词干提取更侧重于粗粒度的“缩减”。由于服务描述文本通常较短,根据本发明的一个实施例,选用更精细的词形还原方法来标准化单词,使用NLTK的stem包中WordNetLemmatizer类进行词性还原。词形还原的重点是先给定词汇的词性,再根据词性进行词汇还原。
步骤F6,词汇去重,即对上述步骤生成的词汇进行去重,即可得到服务特征词集合。
以上结合实施例说明了从服务描述文中提取服务特征词的步骤。以下本发明的其他实施例说明基于服务特征词获取服务主题。
本发明在服务特征词的基础上建立服务的主题。
步骤T1,基于语义扩充获取服务特征词的词向量。
由于服务描述信息为短文本,从中提取的服务特征词较少,因而需要对服务特征词进行词向量的语义扩充,根据本发明的一个实施例,使用Word2vec技术对服务特征词进行词向量的语义扩充。
Word2vec包括CBOW和Skip-gram两种主要模型。其中,CBOW模型根据某个词前面的n个词和后面的n个词来计算该词的概率,n为窗口大小。Skip-gram模型与CBOW相反,是根据某个词计算它前后出现某几个词概率的模型。CBOW模型图如图3所示,包括三层神经网络结构,分别为输入层、投影层以及输出层。当窗口大小为2时,其中输入层为当前词的前后2个词的向量,投影层是输入层向量的累加求和向量。输出层为霍夫曼树结构,将训练语料中出现过的词作为叶子节点,每个词出现次数作为权重。
根据本发明的一个实施例,使用Word2vec的CBOW模型训练语料库,得到服务特征词对应的词向量,缓解服务描述通常为短文本特征稀疏的问题。根据本发明的一个实施例,使用Gensim工具中的gensim.models.Word2Vec包实现CBOW模型算法。根据本发明的一个实施例,使用word2vec的CBOW模型训练维基百科语料库的上下文预测中间词概率,由此获得服务特征词对应的词向量。
步骤T2,根据服务特征词的词向量基于主题模型获取文档-主题矩阵。
主题模型是一种无监督的机器学习算法,可以挖掘文本特征空间的内在特质,用于发现共同跨越大量文档的主题。主题模型包括潜在语义索引模型(Latent SemanticIndexing,LSI)、潜在狄利克雷分配模型(LatentDirichlet Allocation,LDA)、词对主题模型(Biterm Topic Model,BTM)等。
根据本发明的一个实施例,根据服务特征词的词向量使用BTM获取服务主题,在该模型中,所有服务描述文档使用同一个主题分布,用该方法解决服务描述短文本导致的特征匮乏问题,比LDA在服务描述处理领域更有优势。
BTM在LDA模型的基础上发展而来,LDA是依托带有潜在语义主题的服务描述文本生成过程进行建模,BTM则是依托带有潜在话题结构的“词对”(Biterm)的服务描述文本生成过程进行建模。每一个词对代表短文本中一对不相同的单词,但不记录其顺序。例如,服务描述文本为“wa wb wc wd”,假定wb,wc,wd为服务特征词,可构成{wb,wc},{wb,wd}和{wc,wd}三个词对。当文本有n个特征词时,BTM主题模型有n*(n-1)/2个词对。
BTM由服务词对-服务主题-服务词汇构成的三层结构组成,整个服务描述服从一个主题分布,假定每个服务词对中的两个服务特征词均为服务主题产生,则在全局的服务主题分布中产生了服务主题,其中,词对-主题服从狄利克雷(Dirichlet)分布,主题-词汇服从多项(Multinomial)分布。
在使用BTM为服务特征进行模型训练时,必须对全局参数θ和先验地依托参数α和β进行预测,根据本发明的一个实施例,采用马尔科夫链蒙特卡洛(MCMC)的统计方法——吉布斯采样(Gibbs Sampling)算法来对上述服务参数进行交替条件采样。所谓“交替”是指反复迭代中变量之间交相应用,所谓“条件”是指吉布斯采样中运用了贝叶斯理论。
根据本发明的一个实施例,由于BTM模型在词对抽取的过程中,忽略了词汇之间的语义关系,本发明利用CBOW模型训练服务特征词的词向量,在吉布斯采样过程中对词对特征进行语义扩展,根据语义距离决定扩展程度。
融合词向量的BTM概率图模型如图4所示,其中,最外层矩形代表整个服务描述库L;内部的矩形代表重复过程,其方框右下角的字母代表重复的次数;圆形代表变量;箭头代表变量间的条件依赖关系。图4中各个符号或参数的含义如下表所示。
表1融合词向量的BTM符号及参数含义
融合词向量的BTM生成过程如下:
步骤P1,根据CBOW模型训练结果,计算每一个词对b=(bi,bj)的语义距离d;根据本发明的一个实施例,距离d取余弦距离,d的取值范围为[0,1],值越大代表词bi与词bj语义空间距离越近。根据距离d扩充吉布斯采样次数,根据本发明的一个实施例,扩充次数为d放大十倍后向下取整,即词语义距离越近则采样次数越多。
步骤P2,通过狄利克雷分布,从中采样出每个服务主题Z下的词项分布根据本发明的一个实施例,β=0.01;
步骤P3,对于服务描述库L,采样出词对-主题的分布θz~Dir(α),根据本发明的一个实施例,α=50/K,K为主题个数;
步骤P4,对于服务描述库L中所有词对|B|的每一个词对b=(bi,bj),首先采样出一个服务主题Z,使其符合z~Mult(θ),然后从服务主题Z中采样出词对bi,bj,使其符合且根据词对语义距离d决定采样次数和主题更新方式。
以上过程可以计算出词对b=(bi,bj)的联合概率分布,如以下公式所示:
其中,P(b)指词对b的联合概率分布;bi,bj分别是词对对应b的两个特征词;求和符号是对所有的主题Z进行求和;P(Z)是服务描述库L下每个主题满足迪利克雷分布θZ;P(bi|Z)是特征词bi在主题Z下服从的多项分布是特征词bj在主题Z下服从的多项分布/>
因此,服务描述库L中所有词对的概率可以表示为下式:
其中,求积符号的作用范围是服务描述库L的所有词对。
为了使用吉布斯采样进行交叉采样,根据本发明的一个实施例,随机指定一个马尔科夫链的开始状况,然后计算每个服务特征词对b=(bi,bj)对应的条件概率P(Zb|Z-b,B,α,β),Zb指词对b的主题,Z-b指除了词对b之外其他所有词对的主题,B指所有词对,α和β分别是θ和φ的超参数。该条件概率可以通过将马尔科夫链的规则应用到整个数据的联合概率来获得,如下公式所示:
其中,nz是主题的个数,M是服务描述库中所有词的总数,是服务主题Z下服务特征词bi出现的次数,/>是服务主题z下服务特征词bj出现的次数,nb∣z表示词对b被分配到主题z的次数。如果一个服务词对b=(bi,bj)被分配给服务主题Z,则服务特征词bi,bj也分别隶属于主题Z。因此,计算每个服务主题中包含的词对个数,可以估计各个服务主题Z下词对b的分布参数/>和整个服务描述库的服务主题分布参数θz,分别如以下公式所示:
其中,b是服务词对,Z是服务主题,nb∣z表示词对b被分配到主题Z的次数,M是服务描述库中所有词的总数,β是的超参数。
其中,nZ是主题的个数,α是θ的超参数,|B|是语料库中所有的词对个数,K是主题的个数。
通过上述步骤,可以得到m行n列的文档-主题矩阵A,
其中,m表示服务描述文档的个数,n表示主题的个数,每行代表一个服务描述文档的主题向量。
以上说明了基于服务主题词获取服务主题的步骤。
以下结合本发明的一个实施例说明基于文档-主题矩阵获取服务类簇的步骤。
本发明提供一种服务聚类方法,将k-means算法与canopy算法融合,取其各自优势,互补各自的短板。
k-means算法必须事前指定服务类簇个数k,而k个服务初始类簇中心点是随机选定的,且服务类簇个数k和服务初始类簇中心点对算法的精准度来说极其依赖和敏感,非常容易深陷局部最优而非全局最优的僵局之中,服务资源数据输入顺序的不同也会产生不同的初始类簇。并且,虽然基于划分的理念,导致k-means天然地适合海量的服务资源,但是也会拖慢k-means算法的迭代收敛速度。
与k-means算法相反,canopy算法的迭代收敛速度快,也无需像k-means一样设置服务个数,但不免有精确度普遍较k-means低下的缺陷。
本发明的服务聚类方法,首先依托canopy算法对文档-主题矩阵执行粗略迅速的服务聚类,获得服务类簇个数k,以及k个服务类簇中心点的粗略坐标,随后采用k-means算法实现更为精细的服务聚类。在保证服务聚类精确度的基础上,每一步服务聚类迭代计算能够更加靠近实际的服务类簇中心,从而减少服务聚类的迭代次数。
根据本发明的一个实施例,提供一种基于文档-主题矩阵的服务分布式聚类方法。
由于服务聚类大多需要频繁迭代,单机瓶颈难以应对日益增长的服务总量。现有技术中,通常采用Hadoop的MapReduce计算模型,但是Hadoop的MapReduce计算模型在迭代过程中,需要反复读写磁盘,而Spark的RDD(Resilient Distributed Dataset,可伸缩的分布式数据集)模型使得迭代的中间结果可以保存在速度更快的内存上。因此,本发明将服务聚类算法在Spark平台上并行实现,以提升服务聚类效率。
Spark的MLlib算法库中已经有对K-Means算法的实现,然而,为了更好地选取服务聚类中心,减少迭代计算的次数,本发明并未采取现成的算法,而是自行设计并编码实现了服务聚类算法,并在Spark多节点上进行并行化执行。
本发明的服务分布式聚类方法,首先将服务资源数据分散到Spark集群的多个服务节点上,然后在每个服务节点上,并行地实行服务分布式聚类方法的迭代运算,并且将每一步的服务聚类中间结果变量,经由集群的master服务节点,实施全局范围内的信息更新,直到算法收敛。
canopy算法并不依托服务资源数据,就可以具有划分服务聚类区域的能力。canopy算法不需要指定聚类的数目,可以依据自身的迭代来主动聚簇成类,只需要设定聚类过程中的阈值T1和T2即可。本发明将canopy算法的输出作为k-means的输入,具体来说,是将canopy聚类输出的中心点列表作为k-means聚类输入的初始中心点列表,将类簇中心点的数目作为k-means聚类输入的k值,可以在一定程度上规避k-means算法中k值选取的主观性和初始类簇中心点选取的随机性,有效减少k-means聚类算法中的迭代次数,从而提高效率以及聚类的准确性。因此,本发明在canopy运算服务聚类区域的同时,实现k-means的服务聚类迭代,从而减少服务分布式聚类方法的运算时间,提升服务聚类的效率。本发明的服务分布聚类算法流程图如图5所示,具体包括以下步骤:
步骤S1,搭建Hadoop和Spark集群。
步骤S2,将文档-主题矩阵数据分散到Spark集群的多个节点上,通过map将数据缓存。
步骤S3,在步骤S2所得的每个节点上,分别执行canopy算法,得到本地canopy中心点。
步骤S4,主节点的Reduce汇总步骤S3的结果并广播。
步骤S5,各个节点收到步骤S3的中心点广播后,Map将数据分配到对应的canopy区域,并缓存。
步骤S6,各个节点将canopy中心点设置为初始聚类中心点,Map在RDD上执行局部K-Means聚类。
步骤S7,主节点的Reduce根据步骤S6的结果全局聚类,更新聚类中心点。
步骤S8,若步骤S7所得结果收敛,则聚类结束,否则重复步骤S6直到结果收敛。
根据本发明的一个实施例,服务聚类方法的伪代码如下:
基于上述的服务分布式聚类方法,可以得到代表服务类簇编号Pno和该服务类簇中包含的服务Pservice。但是,并不能得出每个服务类簇的意义。这使得服务聚类后,服务消费者仍然无法直接对每个类簇有一个整体的认知,必须要自行浏览完服务类簇中的大部分服务,才能判断该类簇的意义。传统服务类簇描述往往仅使用基于TF-IDF的关键词抽取方法,该方法面对短小的服务描述文本时,难以准确捕捉到服务特征。
为了解决上述问题,本发明提供一种基于特征提取的服务类簇的语义建模方法,整体分为两个阶段。第一阶段为通过基于PageRank思想对服务类簇中的服务进行排序,选取排名靠前的k个服务,作为服务类簇的服务代表Ptopk;第二阶段为从第一阶段选择出的k个服务代表Ptopk中计算词汇权重提取出类簇特征词Ptag。该方法的技术效果是:服务消费者通过浏览第一阶段所得的类簇服务代表Ptopk的服务描述文本可以清晰地了解该服务类簇中服务的大致功能。而第二阶段所得的服务特征词Ptag可以作为服务类簇的标识,起到类似于标签的作用。
以下结合一个实施例,具体说明基于特征提取的服务类簇的语义建模方法。定义Pservice表示某服务类簇中包含的全部服务,表示为Pservice={S1,S2,...,Sn},其中n代表该服务类簇中服务的个数,Si代表服务类簇中所包含的第i个服务。Si中包含了服务特征词集Sfeature,记Sfeature={w1,w2,...,wm},其中m是该服务特征词集中词的个数,wi代表服务特征中词集所包含的第i个特征词。
本发明基于PageRank算法对服务类簇进行服务代表的提取。PageRank算法通常用于网页排序领域,该算法基于一个这样的假设:一个网页的链入链接越多,说明该网页越重要,PageRank把这些链入链接认为是其他网页对该网页的重要性投票。本发明将PageRank的思想理念应用到服务类簇的服务代表抽取中,提出如下假设:如果某个服务类簇Pservice中,两个服务Si和Sj各自的服务特征词集Sfeature中存在相似的服务特征词,则认为两个服务之间互相认同对方在该服务类簇Pservice中的重要性,彼此进行了一次投票。在该假设的前提下,通过对服务类簇Pservice中全部特征词进行扫描,可以找到获得票数多的服务。由此通过反复迭代比较,最终结点得分收敛,获得服务类簇中服务重要性排序,即可从中选取k个服务作为类簇的服务代表Ptopk。
由于服务特征词较少,本发明在获得服务文本特征词的语义词向量的基础上,认为两个服务特征词的语义词向量相似,则说明两个服务特征词相似,进一步的,如果两个服务中存在相似的特征词,则两个服务认同其在服务类簇的重要性,且权重取特征词的相似度。
PageRank算法应用于网站排序时,存在一个网页链入到另一个网页的单向关系,然而类簇中服务进行排序时,比较的是两个服务之间是否存在相同的关键词,是双向关系,无法像网页链接一样直接获取单向箭头的指向,因此本发明结合服务描述文本的特点,采用以下连线箭头的指向原则:服务描述文本长度短的服务指向长度长的服务;如果两个服务文本长度相同,则入度小的服务指向入度大的服务;如果两个服务入度相同,距离类簇中心点较远的服务指向较近的服务。这样的设计的原因是,通常情况下,长文本比短文本包含更多的信息,因此箭头指向关系的首选是指向较长的服务描述文本。
使用上述方法对服务类簇中的服务进行正序排序后,选取前k个服务作为该服务类簇的服务代表Ptopk。然后从服务代表Ptopk中通过计算TF-IDF值选取最具有代表性的服务特征词Ptopk。
本发明搭建了主从(master/slave)结构的分布式集群,对本发明的方法进行了验证。本发明搭建了三个节点组成的集群,包括一个主节点,即名字节点(Name Node),主要负责实验资源的统一驱动和调度;两个从节点,即数据节点(Data Node),负责实验数据的并发执行与处理。每个节点的内存空间为4GB,处理器为Intel Core i5。集群节点配置如表2所示。
表2集群节点配置
在分布式集群上,本发明先搭建Hadoop框架再搭建Spark框架,二者通过资源管理框架YARN统一部署到机器上,共享底层存储HDFS。其中,聚类算法的训练使用Spark框架进行内存计算以提升效率,是核心大数据框架。Hadoop框架的搭建主要是为了使用其生态系统来实现文件存储(HDFS)和资源调度管理(YARN)等功能。具体的软件环境如表3所示。其中,操作系统为CentOS 8.1,Linux系统比起Windows更适宜大数据的开发。
表3软件环境
数据集包括2681个科技类服务和交通类服务,以及23798个从ProgrammableWeb上爬取的服务资源。
下面从服务聚类效果和服务聚类效率两个方面对本发明的效果进行评估。
服务聚类效果方面,由于训练的服务数据集中每个服务都有对应的类别,因此可以采取外部评价指标。本发明选取准确率(Pr),召回率(Re)和调和平均值(F)来评价服务聚类的效果,计算公式分别如下所示。
其中,TP(True Positive)指服务聚类后,被归类到实际服务类簇的服务资源数目,FP(False Positive)则指在服务聚类后,归类到错误的服务类簇的服务资源数目。TP与FP总数之和与服务库中服务资源总量一致。FN(False Negative)表示服务聚类后,未被归类到的实际服务数目。
而在聚类效率方面,理论上直接简单对比聚类算法结束(收敛)所需时间即可,但为了更加准确的测量并行算法的性能,选定加速比为评估指标。加速比是指同一个任务在串行计算和并行计算系统中运行消耗的时间比率。计算公式如以下公式所示。
其中,Sp是加速比,T1是使用单机所耗费的时间,Tp是Spark集群环境下算法所耗费的时间,其中p为节点个数。
本发明通过上述数据集进行验证,得到服务类簇52个。其中,编号为1的服务类簇中,包含236个服务,表4展示了该服务类簇的前三名的服务代表Ptopk。从Ptopk中可以提取得到该服务类簇的特征词Ptag为nutrition、food、diet、health。
表4编号为1的服务类簇的前三名的服务代表
本发明在BTM主题模型的基础上,融合了词向量以扩充文本,为验证其有效性,设置实验对比分别采用LDA主题模型、BTM主题模型、本发明的融合词向量的BTM主题模型(FWV-BTM)进行文本表示时调和平均值F的差别。为控制变量,先验参数均设置为α=50/K,β=0.01。本可以分别抽取主题数为从5到45等差数列,间隔为5,即5,10,15,20,25,30,35,40,45。各方法的F值随着主题数变化如图6所示,图6中横坐标为主题个数,纵坐标为F值,其中FWV-BTM指本发明的方法。可以明显看出,在同一主题下,LDA的聚类效果最差,本发明的方法优于没有融合词向量的BTM方法。同时,在主题为40左右时,各种方法的F值达到最优。结果表明,相比现有技术,本发明的服务聚类方法提升了聚类指标F值。
发明人还验证了本发明的方法在Spark平台的执行效率。在聚类效率的实验中,尽可能做到控制变量(包括聚类算法的类簇个数等),来对比传统K-Means算法、Spark MLlib算法库的K-Means算法和本发明的方法在Spark平台的执行时间表现情况。如图7所示,三种算法均随着Spark节点数的上升而加速比提高,从而验证了Spark相对于单机在计算时的显著优势。当Spark集群的节点数量提升时,由于单个节点待运算量的减少,从而降低了加速比公式中的分母,也即并行计算时间Tp,导致加速比增大。,当节点数相同的情况下,MLlib库的K-Means算法与传统的K-Means算法相比,加速比有所提升,这是由于MLlib库中的K-Means算法是基于K-Means++的优化。本发明的方法提升了计算效率,加速比优于MLlib库的K-Means算法。
应该注意到并理解,在不脱离后附的权利要求所要求的本发明的精神和范围的情况下,能够对上述详细描述的本发明做出各种修改和改进。因此,要求保护的技术方案的范围不受所给出的任何特定示范教导的限制。
Claims (7)
1.一种融合词向量扩充和主题模型的服务分布式聚类方法,包括:
步骤1,提取服务描述文本中的服务特征词;
步骤2,获取所述服务特征词的词向量,生成服务描述库;
步骤3,根据服务特征词的词向量基于主题模型获取服务文档-主题矩阵;
步骤4,基于所述文档-主题矩阵进行服务的分布式聚类,并对服务类簇进行语义建模,其中,所述步骤4包括聚类的步骤和语义建模的步骤:
所述聚类的步骤包括:
步骤C1,基于canopy聚类算法对所述服务文档-主题矩阵进行服务聚类,获得服务类簇个数以及服务类簇中心点的坐标;
步骤C2,采用k-means聚类算法进行服务聚类,其中,k-means聚类输入的初始中心点是步骤C1获得的服务类簇中心点,k-means聚类算法的k值是步骤C1获得的服务类簇中心点的个数;
其中,所述步骤C1包括:
步骤D1,将服务文档-主题矩阵分配到集群的多个节点,所述集群包括主节点和计算节点;
步骤D2,集群的每个计算节点分别执行canopy算法,并将得到的本地canopy聚类中心点发送到主节点;
步骤D3,主节点将汇总的聚类中心点广播到每个计算节点;
步骤D4,每个计算节点将汇总的聚类中心点设置为初始聚类中心点,执行局部K-Means聚类;
步骤D5,在局部K-Means聚类的基础上进行全局K-Means,直到算法收敛,得到K个聚类中心点及每个类簇所包含的服务;
所述语义建模的步骤包括:
步骤T1,根据每个服务类簇中每个服务的服务特征词的词向量与其他服务的服务特征词的词向量的相似度,计算所述每个服务的得分,基于所述得分对每个服务类簇中的服务排序,选取前k个服务作为服务类簇的服务代表;
步骤T2,根据步骤T1所述的服务代表的服务特征词的TF-IDF值,选取服务类簇的服务特征词。
2.根据权利要求1所述的方法,所述步骤2采用Word2vec的CBOW模型提取服务特征词的词向量。
3.根据权利要求1所述的方法,所述步骤3的主题模型为BTM。
4.根据权利要求3所述的方法,服务描述库的服务主题分布参数θz由以下公式计算得出,
其中,nZ是主题的个数,α是θ的超参数,|B|是语料库中所有的词对个数,K是设定的主题数目。
5.根据权利要求3所述的方法,服务主题下词项的分布参数由以下公式计算得出,
其中,b是服务词对,Z是服务主题,nb∣z表示服务主题Z下服务词对b出现的次数,M是服务描述库中所有词的总数,β是/>的超参数。
6.一种计算机可读存储介质,其上存储有计算机程序,其中,该程序被处理器执行时实现根据权利要求1-5任一项方法的步骤。
7.一种计算机设备,包括存储器和处理器,在所述存储器上存储有能够在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1-5任一项方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110434605.1A CN113139599B (zh) | 2021-04-22 | 2021-04-22 | 一种融合词向量扩充和主题模型的服务分布式聚类方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110434605.1A CN113139599B (zh) | 2021-04-22 | 2021-04-22 | 一种融合词向量扩充和主题模型的服务分布式聚类方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113139599A CN113139599A (zh) | 2021-07-20 |
CN113139599B true CN113139599B (zh) | 2023-08-08 |
Family
ID=76813278
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110434605.1A Active CN113139599B (zh) | 2021-04-22 | 2021-04-22 | 一种融合词向量扩充和主题模型的服务分布式聚类方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113139599B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113886588A (zh) * | 2021-10-20 | 2022-01-04 | 华南农业大学 | 一种基于招聘文本挖掘的专业主要就业方向识别方法 |
CN114066669B (zh) * | 2021-10-28 | 2024-05-03 | 华南理工大学 | 一种面向云制造的制造服务发现方法 |
CN116432639B (zh) * | 2023-05-31 | 2023-08-25 | 华东交通大学 | 一种基于改进的btm主题模型的新闻要素词的挖掘方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102855312A (zh) * | 2012-08-24 | 2013-01-02 | 武汉大学 | 一种面向领域主题的Web服务聚类方法 |
CN111368072A (zh) * | 2019-08-20 | 2020-07-03 | 河北工程大学 | 基于BTM和GloVe相似度线性融合的微博热点话题发现算法 |
CN111694958A (zh) * | 2020-06-05 | 2020-09-22 | 深兰人工智能芯片研究院(江苏)有限公司 | 基于词向量与single-pass融合的微博话题聚类方法 |
CN111832289A (zh) * | 2020-07-13 | 2020-10-27 | 重庆大学 | 一种基于聚类和高斯lda的服务发现方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11568266B2 (en) * | 2019-03-15 | 2023-01-31 | Baidu Usa Llc | Systems and methods for mutual learning for topic discovery and word embedding |
-
2021
- 2021-04-22 CN CN202110434605.1A patent/CN113139599B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102855312A (zh) * | 2012-08-24 | 2013-01-02 | 武汉大学 | 一种面向领域主题的Web服务聚类方法 |
CN111368072A (zh) * | 2019-08-20 | 2020-07-03 | 河北工程大学 | 基于BTM和GloVe相似度线性融合的微博热点话题发现算法 |
CN111694958A (zh) * | 2020-06-05 | 2020-09-22 | 深兰人工智能芯片研究院(江苏)有限公司 | 基于词向量与single-pass融合的微博话题聚类方法 |
CN111832289A (zh) * | 2020-07-13 | 2020-10-27 | 重庆大学 | 一种基于聚类和高斯lda的服务发现方法 |
Non-Patent Citations (1)
Title |
---|
Web Service Clustering Method Based on Word Vector and Biterm Topic Model;Dongju Yang等;《2021 IEEE 6th International Conference on Cloud Computing and Big Data Analytics》;299-304 * |
Also Published As
Publication number | Publication date |
---|---|
CN113139599A (zh) | 2021-07-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Zamani et al. | From neural re-ranking to neural ranking: Learning a sparse representation for inverted indexing | |
Vega-Oliveros et al. | A multi-centrality index for graph-based keyword extraction | |
Zhu et al. | Multi-label learning with global and local label correlation | |
CN113139599B (zh) | 一种融合词向量扩充和主题模型的服务分布式聚类方法 | |
Ibrahim et al. | Tools and approaches for topic detection from Twitter streams: survey | |
Zhang et al. | Improving short text classification by learning vector representations of both words and hidden topics | |
WO2021258491A1 (en) | Methods and systems for generating a reference data structure for anonymization of text data | |
Saeed et al. | Unstructured text documents summarization with multi-stage clustering | |
US11886515B2 (en) | Hierarchical clustering on graphs for taxonomy extraction and applications thereof | |
Yin et al. | A co-occurrence based approach of automatic keyword expansion using mass diffusion | |
Vidyadhari et al. | Particle grey wolf optimizer (pgwo) algorithm and semantic word processing for automatic text clustering | |
Sharma et al. | Shallow Neural Network and Ontology-Based Novel Semantic Document Indexing for Information Retrieval. | |
CN114239828A (zh) | 一种基于因果关系的供应链事理图谱构建方法 | |
Azzam et al. | A question routing technique using deep neural network for communities of question answering | |
Gialampoukidis et al. | Probabilistic density-based estimation of the number of clusters using the DBSCAN-martingale process | |
Parthasarathy et al. | Network clustering | |
Ganguli et al. | Nonparametric method of topic identification using granularity concept and graph-based modeling | |
Hirchoua et al. | Topic Modeling for Short Texts: A Novel Modeling Method | |
Pasarate et al. | Concept based document clustering using K prototype Algorithm | |
Saad et al. | Methodology of Ontology Extraction for Islamic Knowledge Text | |
Kokatnoor et al. | A Two-Stepped Feature Engineering Process for Topic Modeling Using Batchwise LDA with Stochastic Variational Inference Model. | |
Nishant et al. | Hierarchical clustering based intelligent information retrieval approach | |
Nazri et al. | A hybrid approach for learning concept hierarchy from Malay text using artificial immune network | |
Alsharman et al. | High-Performance Computing of Building The Dependency Trees and Calculating Tree Edit Distances For Text Similarity. | |
Gheni et al. | Suggesting new words to extract keywords from title and abstract |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |