胡強(qiáng),沈嘉吉,荊廣輝,杜軍威
(青島科技大學(xué)信息科學(xué)技術(shù)學(xué)院,山東 青島 266061)
隨著云計(jì)算、大數(shù)據(jù)以及物聯(lián)網(wǎng)、移動(dòng)互聯(lián)網(wǎng)等新一代信息技術(shù)的快速發(fā)展,面向服務(wù)架構(gòu)(SOA,service-oriented architecture)的業(yè)務(wù)系統(tǒng)開(kāi)發(fā)和部署得到廣泛應(yīng)用和推廣[1]。企業(yè)將自身業(yè)務(wù)功能或產(chǎn)品封裝為服務(wù),通過(guò)互聯(lián)網(wǎng)進(jìn)行發(fā)布;用戶(hù)可以通過(guò)云平臺(tái)查找和調(diào)用所需服務(wù),并與已有業(yè)務(wù)系統(tǒng)集成,快速構(gòu)建各類(lèi)復(fù)雜的增值應(yīng)用系統(tǒng),彌補(bǔ)自身業(yè)務(wù)能力的不足,進(jìn)而可降低企業(yè)運(yùn)營(yíng)成本,提高競(jìng)爭(zhēng)力[2]。
作為SOA 架構(gòu)下主流服務(wù)實(shí)現(xiàn)方式,Web 服務(wù)是一種采用規(guī)范化協(xié)議封裝的Web API,分為SOAP 和RESTful。截至2021 年3 月,在Programmable Web 注冊(cè)的服務(wù)已經(jīng)超過(guò)23 000 條,其中,絕大多數(shù)為RESTful 型Web API。不同于SOAP 類(lèi)型的服務(wù)采用Web 服務(wù)描述語(yǔ)言(WSDL,Web services description language)結(jié)構(gòu)化文檔進(jìn)行服務(wù)信息描述,RESTful 類(lèi)型Web 服務(wù)通常采用非結(jié)構(gòu)化的自然語(yǔ)言描述服務(wù)功能或使用方法,從而使服務(wù)查找與發(fā)現(xiàn)難度增大。此外,隨著SOA 架構(gòu)應(yīng)用的普及,大量企業(yè)不斷推出新的Web 服務(wù),使服務(wù)數(shù)量飛速增加,進(jìn)一步增大了服務(wù)發(fā)現(xiàn)難度[3]。
聚類(lèi)可以將功能相似的服務(wù)劃分為一個(gè)簇,有效地縮減服務(wù)查找空間,提高發(fā)現(xiàn)效率[4]。采用WSDL 文檔描述服務(wù)信息的Web 服務(wù)中,WSDL文檔顯式地設(shè)置了多種標(biāo)簽,易于提取服務(wù)描述的各類(lèi)特征信息。此類(lèi)服務(wù)在聚類(lèi)時(shí)通常提取若干能夠表示服務(wù)功能的關(guān)鍵詞,按照標(biāo)簽類(lèi)別分別計(jì)算這些關(guān)鍵詞的語(yǔ)義或詞頻相似度即可實(shí)現(xiàn)服務(wù)功能相似性的度量[5]。近年來(lái),隨著RESTful 類(lèi)型Web 服務(wù)數(shù)量的增加,越來(lái)越多的Web 服務(wù)采用短文本自然語(yǔ)言進(jìn)行服務(wù)描述,因此,如何為此類(lèi)服務(wù)實(shí)現(xiàn)高質(zhì)量的聚類(lèi)成為新的研究熱點(diǎn)[6]。
然而,采用自然語(yǔ)言刻畫(huà)的Web 服務(wù)描述信息中文本較短,特別是缺乏顯式標(biāo)簽對(duì)服務(wù)描述文本進(jìn)行語(yǔ)義信息的標(biāo)識(shí),使服務(wù)的各類(lèi)特征信息提取難度增大。為了有效地從服務(wù)描述信息文本中提取可以表達(dá)服務(wù)功能的關(guān)鍵特征信息,研究者將主題模型應(yīng)用于服務(wù)描述信息的建模和抽取[7]。
主題模型是一類(lèi)以非監(jiān)督學(xué)習(xí)的方式對(duì)文本的隱含語(yǔ)義結(jié)構(gòu)進(jìn)行聚類(lèi)的統(tǒng)計(jì)模型,以概率分布形式生成文本對(duì)應(yīng)的主題向量。利用主題模型可以為服務(wù)功能描述生成主題向量,該主題向量表達(dá)了服務(wù)在若干功能主題上的概率分布。通過(guò)計(jì)算不同服務(wù)表征向量之間的相似度可以實(shí)現(xiàn)服務(wù)功能相似度的判定。本文將采用主題模型為Web 服務(wù)生成的主題向量稱(chēng)為服務(wù)表征向量。
目前,常于生成服務(wù)表征向量的主題模型有LSA(latent Semantic analysis)[8-9]、LDA(latent Dirichlet alloation)[10-11]、BTM(biterm topic model)[12-13]、HDP(hierarchical Dirichlet process)[14]、GSDMM(Gibbs sampling for the Dirichlet multinomial mixture)[15-16]等,其中,LDA 模型應(yīng)用最廣泛。服務(wù)描述文本較短,且功能、操作以及QoS 描述詞語(yǔ)混合在一起[17],導(dǎo)致采用主題模型生成的服務(wù)表征向量中通常主題松散和稀疏。文獻(xiàn)[15]利用實(shí)驗(yàn)進(jìn)行多項(xiàng)指標(biāo)對(duì)比驗(yàn)證后指出,相比其他主題模型,GSDMM 為服務(wù)描述生成主題向量的質(zhì)量最高。然而,GSDMM 生成主題向量時(shí)強(qiáng)化關(guān)鍵主題概率,弱化次要主題概率,這種情形雖有利于短文本分類(lèi)、提高生成向量的主題區(qū)分度,但在一定程度上影響主題語(yǔ)義分布的均衡性。
針對(duì)上述問(wèn)題,為進(jìn)一步提升服務(wù)表征向量的生成質(zhì)量,改進(jìn)服務(wù)聚類(lèi)效果,本文提出了一種基于描述語(yǔ)境特征詞與改進(jìn)GSDMM 的服務(wù)聚類(lèi)方法,主要工作和貢獻(xiàn)如下。
1) 提出了一種基于語(yǔ)境權(quán)重的服務(wù)描述特征詞提取方法。該方法將服務(wù)描述文本中詞語(yǔ)的詞頻與語(yǔ)境相似度相結(jié)合,建立詞語(yǔ)的語(yǔ)境權(quán)重,篩選出一定數(shù)量可以代表服務(wù)描述功能的特征詞,去除噪聲詞語(yǔ),有效緩解服務(wù)描述文本中的主題松散問(wèn)題。
2) 構(gòu)建了一種基于帶有主題分布概率修正因子GSDMM 服務(wù)表征向量生成模型。該模型將通過(guò)修正GSDMM 模型生成的主題向量中非關(guān)鍵主題的概率分布,改善生成服務(wù)表征向量主題分布的語(yǔ)義均衡性,提高了服務(wù)表征向量的質(zhì)量。
3) 構(gòu)建了面向服務(wù)表征向量與K-means++算法的服務(wù)聚類(lèi)方法。以Programmable Web 上的真實(shí)數(shù)據(jù)開(kāi)展多輪次聚類(lèi)實(shí)驗(yàn),驗(yàn)證了所提出的服務(wù)描述特征詞提取方法、改進(jìn)的GSDMM 的服務(wù)表征向量生成模型以及聚類(lèi)算法的有效性與先進(jìn)性。
如何從WSDL 結(jié)構(gòu)化文檔中抽取Web 服務(wù)描述信息,并進(jìn)行服務(wù)相似度計(jì)算與聚類(lèi)是早期服務(wù)聚類(lèi)領(lǐng)域開(kāi)展的主要工作。例如,Liang 等[18]提出一種名為WCCluster 的聚類(lèi)方法,該方法以二分圖劃分的形式同時(shí)對(duì)WSDL 文檔及抽取出的關(guān)鍵詞進(jìn)行聚類(lèi)。Wu 等[19]基于標(biāo)簽共現(xiàn)、挖掘和語(yǔ)義相關(guān)性度量進(jìn)行服務(wù)標(biāo)簽推薦,進(jìn)而構(gòu)建了一種基于混合Web 服務(wù)標(biāo)簽的服務(wù)聚類(lèi)方法,相比其他WSDL 聚類(lèi)方法,該方法將聚類(lèi)精度提升約14%。Agarwal 等[6]提出一種基于長(zhǎng)度特征權(quán)重的方法LFW(length feature weight)對(duì)WSDL 文檔向量化,并使用K-means 聚類(lèi)算法完成聚類(lèi),其效果優(yōu)于使用TF-IDF(term frequency-inverse document frequency)方法生成WSDL表示向量的方法。上述方法通常是從WSDL 文檔中提取各類(lèi)標(biāo)簽描述的特征詞,然后通過(guò)計(jì)算特征詞的語(yǔ)義或者借助于詞頻轉(zhuǎn)化為向量,進(jìn)而計(jì)算服務(wù)相似度并實(shí)現(xiàn)聚類(lèi)。
隨著采用短文本自然語(yǔ)言進(jìn)行功能描述的Web服務(wù)數(shù)量的增加,已有從結(jié)構(gòu)化文檔中提取服務(wù)特征信息的方法不再適用于此類(lèi)服務(wù)[20]。研究者通常采用主題模型或者神經(jīng)網(wǎng)絡(luò)模型對(duì)服務(wù)描述進(jìn)行特征向量提取,通過(guò)計(jì)算特征向量的相似度完成服務(wù)發(fā)現(xiàn)或聚類(lèi)。
Cao 等[21]利用Mashup 服務(wù)之間的關(guān)系構(gòu)建了Mashup 服務(wù)網(wǎng),使用二級(jí)主題模型來(lái)挖掘潛在主題,并設(shè)計(jì)了一種基于協(xié)同過(guò)濾(CF,collaborative filtering)的Web API 推薦算法。文獻(xiàn)[11]提出了一種利用高斯LDA 模型處理文本詞嵌入的方法,在此基礎(chǔ)上。Lizarralde 等[22]將服務(wù)描述加入高斯LDA模型中以獲取服務(wù)描述表示,再通過(guò)用戶(hù)查詢(xún)與服務(wù)描述表示之間的相關(guān)性對(duì)服務(wù)進(jìn)行排名。Zhang等[23]使用LDA 主題模型將服務(wù)進(jìn)行分組聚類(lèi),然后基于服務(wù)集群進(jìn)行服務(wù)發(fā)現(xiàn),設(shè)計(jì)了推薦語(yǔ)義相關(guān)服務(wù)的機(jī)制幫助用戶(hù)優(yōu)化初始查詢(xún)。劉建勛等[24]提出一種基于主題模型的Mashup 標(biāo)簽推薦方法,通過(guò)聯(lián)合使用LDA 與RTM(relation topic model),使推薦精度顯著提高。石敏等[25]考慮多重Web 服務(wù)關(guān)系的概率構(gòu)建主題模型MR-LDA(multi-relational-LDA),對(duì)Web 服務(wù)之間的組合關(guān)系以及Web 服務(wù)之間共享標(biāo)簽的關(guān)系進(jìn)行建模,利用這些關(guān)系對(duì)主題分布矩陣進(jìn)行修正,并對(duì)其進(jìn)行高效服務(wù)聚類(lèi)。
Baskara 等[13]將Web 服務(wù)結(jié)構(gòu)建模為加權(quán)有向無(wú)環(huán)圖(WDAG,weighted directed acyclic graph),然后使用BTM 主題模型在已建模的WDAG 上挖掘主題,并通過(guò)計(jì)算主題相似度進(jìn)行服務(wù)發(fā)現(xiàn)。為了解決描述特征稀疏的問(wèn)題,Shi 等[26]提出了一種基于概率主題模型的句子擴(kuò)展方法以及基于深度學(xué)習(xí)LSTM 模型的服務(wù)推薦方法,效果優(yōu)于基礎(chǔ)LSTM 方法。Ye 等[27]提出一種WSC-GCN(Web services classification based on graph neural network)模型,將單詞-文檔關(guān)系與單詞-單詞關(guān)系作為邊、單詞與文檔作為點(diǎn)構(gòu)建出一張無(wú)向圖,并使用TF-IDF 值作為邊的權(quán)重,放入GCN 中獲得文檔向量進(jìn)行聚類(lèi)。
相比以LDA 為代表的上述主題模型,Yin 等[16]提出的GSDMM 更適合為短文本進(jìn)行主題建模。雖然GSDMM 模型生成的服務(wù)表征向量質(zhì)量?jī)?yōu)于其他主題模型,但在生成服務(wù)表征向量的概率分布完備性和均衡性層面還有一定的提升空間。此外,在服務(wù)表征向量生成時(shí),通過(guò)對(duì)服務(wù)描述信息中的特征詞進(jìn)行篩選,可以進(jìn)一步提高服務(wù)表征向量的質(zhì)量?;谏鲜隹紤],本文開(kāi)展了基于描述語(yǔ)境特征詞與改進(jìn)GSDMM 模型的服務(wù)表征向量生成與聚類(lèi)研究,本文的研究流程如圖1 所示。
圖1 研究流程
本文中參與聚類(lèi)的服務(wù)是采用短文本自然語(yǔ)言進(jìn)行功能描述的 Web 服務(wù)。該類(lèi)服務(wù)以Programmable Web 上的Web API 為典型代表,圖2給出一個(gè)具體的Web API 服務(wù)描述。
圖2 Programmable Web 服務(wù)示例
服務(wù)標(biāo)簽是該服務(wù)提供功能所隸屬的類(lèi)別標(biāo)志,服務(wù)描述文本則是以短文本自然語(yǔ)言的形式給出的有關(guān)服務(wù)功能、使用以及質(zhì)量評(píng)價(jià)方面的文字說(shuō)明。這兩類(lèi)文本中的詞語(yǔ)是服務(wù)聚類(lèi)時(shí)進(jìn)行功能相似度度量的主要依據(jù)。為了后文描述方便,首先給出服務(wù)的形式化定義。
定義1服務(wù)
服務(wù)定義為一個(gè)四元組,s=(Id,n,l,d),其中,Id 為服務(wù)的標(biāo)識(shí)ID 號(hào),n為服務(wù)的名稱(chēng),l為服務(wù)標(biāo)簽集合,d為服務(wù)描述信息。
定義2詞語(yǔ)的語(yǔ)義相似度
wi和wj為文本T中的2 個(gè)單詞,分別為詞語(yǔ)wi和wj對(duì)應(yīng)的詞向量,則wi和wj的語(yǔ)義相似度為
定義3詞語(yǔ)的語(yǔ)境相似度
Tim為一段包含m個(gè)詞語(yǔ)的文本,wij為文本Tim中的一個(gè)詞語(yǔ),wij在文本Tim中的語(yǔ)境相似度為
定義4詞語(yǔ)的TF-IDF
d為文檔集合D中的一個(gè)文檔,wi是d中的一個(gè)詞語(yǔ)。wi在d中的TF-IDF 定義為
定義5詞語(yǔ)的語(yǔ)境權(quán)重
Tim為語(yǔ)料庫(kù)T_Corpus 中一段包含m個(gè)詞語(yǔ)的文本,wij為文本Tim中的一個(gè)詞語(yǔ),wij在文本Tim中的語(yǔ)境權(quán)重定義為
由定義2 可知,詞語(yǔ)的語(yǔ)義相似度為詞語(yǔ)所對(duì)應(yīng)詞向量之間的余弦?jiàn)A角值,語(yǔ)境相似度是該詞語(yǔ)與其所在文本中的其他詞語(yǔ)的語(yǔ)義相似度的平均值。詞語(yǔ)的語(yǔ)境權(quán)重則需要基于詞語(yǔ)所在的文本以及語(yǔ)料庫(kù)計(jì)算出該詞語(yǔ)相對(duì)于所在文本的TF-IDF詞頻,再乘以該詞語(yǔ)的語(yǔ)境相似度。因此,語(yǔ)境權(quán)重綜合考慮了詞頻以及詞語(yǔ)之間的語(yǔ)義相似度,更好地反映了詞語(yǔ)的重要性。
現(xiàn)有采用主題模型進(jìn)行服務(wù)聚類(lèi)的方法中,通常是將服務(wù)描述刪除虛詞后的全部詞語(yǔ)均作為服務(wù)表征向量生成的語(yǔ)料,這種做法存在主題稀疏和分散的問(wèn)題。也有研究工作僅從服務(wù)描述中提取若干個(gè)關(guān)鍵詞,通過(guò)Word2Vec 等工具將這些詞語(yǔ)轉(zhuǎn)化為向量,用加權(quán)的方式生成表征服務(wù)的最終向量,這類(lèi)方法存在關(guān)鍵詞提取難度大的問(wèn)題,而且容易因加權(quán)操作造成語(yǔ)義信息丟失。
為此,本文提出一種基于語(yǔ)境權(quán)重的服務(wù)描述特征詞提取方法。該方法按照語(yǔ)境權(quán)重排名篩選出一定數(shù)量的詞語(yǔ)作為服務(wù)描述的特征詞。這種特征詞篩選的方式有效降低了噪聲詞語(yǔ)的數(shù)量,提高了服務(wù)表征向量生成文本的質(zhì)量。對(duì)于服務(wù)s,令S={si},1≤i≤n為待聚類(lèi)服務(wù)構(gòu)成的服務(wù)集合,算法1 給出了基于語(yǔ)境權(quán)重的服務(wù)描述特征詞提取方法。
算法1FeatureWord_Extract
算法1第1)~2)行初始化2個(gè)空集合,Corpus_w為語(yǔ)料庫(kù)集合,用于存儲(chǔ)服務(wù)集合S中所有服務(wù)的服務(wù)描述文本;FW_S為服務(wù)特征詞集合,存儲(chǔ)經(jīng)算法1 處理后得到的集合S中所有服務(wù)的特征詞。第3)~6)行將S中包含的所有服務(wù)的服務(wù)描述文本加入語(yǔ)料庫(kù)Corpus_w,然后利用Word2Vec 為語(yǔ)料庫(kù)中的每個(gè)詞語(yǔ)w訓(xùn)練一個(gè)向量V(w)。
在生成服務(wù)s的特征詞集合時(shí),針對(duì)服務(wù)描述s.d中的每個(gè)詞w,算法1 第9)~11)行計(jì)算w在s.d中對(duì)應(yīng)的語(yǔ)境權(quán)重;第12)行構(gòu)建了服務(wù)特征詞集合s.fw。服務(wù)標(biāo)簽是平臺(tái)服務(wù)分類(lèi)、存儲(chǔ)和查找的重要類(lèi)別依據(jù),文獻(xiàn)[24]指出不同服務(wù)共享標(biāo)簽的數(shù)量越多,它們同屬一個(gè)類(lèi)別的可能性越大,當(dāng)服務(wù)之間共享3 個(gè)以上標(biāo)簽時(shí),隸屬于同一個(gè)類(lèi)別的概率上升至50%,因此,服務(wù)標(biāo)簽是聚類(lèi)所需考慮的重要因素。在構(gòu)建s.fw 時(shí),首先將服務(wù)標(biāo)簽集合s.l中的所有單詞加入s.fw;然后對(duì)服務(wù)描述中詞語(yǔ)依照服務(wù)描述語(yǔ)境權(quán)重ContextWeight(w)進(jìn)行排序,分別取占比為前α的詞語(yǔ)加入s.fw。通過(guò)實(shí)驗(yàn)驗(yàn)證,當(dāng)α為75%~90%時(shí),所提取的特征詞生成服務(wù)表征向量質(zhì)量最佳。循環(huán)處理可得服務(wù)集合S中所有服務(wù)的特征詞集合FW_S。
本文提出一種面向主題分布概率修正的GSDMM 模型,引入概率分布修正因子,修正服務(wù)表征向量中主題對(duì)應(yīng)的概率分布值,提高服務(wù)表征向量對(duì)服務(wù)功能刻畫(huà)的完備性與均衡性。
GSDMM 模型是一種概率生成式無(wú)監(jiān)督模型,基于狄利克雷混合(DMM,Dirichlet multinomial mixtures)模型生成文檔,然后使用吉布斯采樣算法近似求解模型。在DMM 模型中,由主題k得到文檔d的概率為
為獲得描述中的單詞-主題分布,依據(jù)文獻(xiàn)[16],假設(shè)主題在單詞上是多項(xiàng)式分布,則有
其中,Φ為單詞-主題分布矩陣,刻畫(huà)了單詞w屬于第k個(gè)主題的概率;φk,w為單詞w在主題k上的概率分布,同一篇文檔中所有單詞的主題分布之和為1,即。
同樣地,每個(gè)主題的概率服從式(3)所示的多項(xiàng)式分布
其中,Θ為文檔-主題分布矩陣,刻畫(huà)了文檔d在主題k上的概率分布;θk,d為文檔d在主題k上的概率分布,在一篇文檔描述中遵循。
吉布斯采樣算法在所有主題上不斷采樣,最終得到文檔-主題矩陣Θ和單詞-主題矩陣Φ。吉布斯采樣中描述屬于某個(gè)主題的概率計(jì)算式為其中,K為初始主題個(gè)數(shù),α、β為狄利克雷先驗(yàn)參數(shù),D為語(yǔ)料庫(kù)中文檔總數(shù),為文檔的主題標(biāo)簽,為語(yǔ)料庫(kù)中的文檔,mz為主題z下的文檔數(shù),為主題z下的單詞數(shù),為主題z下的單詞w出現(xiàn)的次數(shù),為去除當(dāng)前文檔,V為詞語(yǔ)表中的詞語(yǔ)數(shù)量,Nd為文檔d中的單詞數(shù)量,為文檔d中單詞w出現(xiàn)的次數(shù)。
本文將服務(wù)表征向量中具有最大分布概率值的主題稱(chēng)為關(guān)鍵主題,其他主題稱(chēng)為次要(非關(guān)鍵)主題。在GSDMM 中引入主題分布概率修正因子δ,通過(guò)δ修正生成服務(wù)表征向量中的各個(gè)次要主題分布概率,有效地提高服務(wù)表征向量的完備性,改進(jìn)的GSDMM 模型如圖3 所示。
圖3 帶有主題概率分布修正因子的GSDMM 模型
修正因子為
其中,max(φk,w)為單詞w在所有主題k下的最大概率分布值,ContextWeight (w,d)為單詞w在文檔d中的語(yǔ)境權(quán)重,λ為調(diào)節(jié)修正因子影響力的超參數(shù)。算法2 給出面向主題概率分布修正GSDMM 的服務(wù)表征向量生成方法。
算法2SRV_RGSDMM
算法2 中,第1)行調(diào)用算法1,為服務(wù)s的服務(wù)描述文本中的每一個(gè)詞語(yǔ)w計(jì)算語(yǔ)境權(quán)重ContextWeight(w,s),并篩選出服務(wù)特征詞集合s_fw;第2)~5)行將服務(wù)集合中所有服務(wù)的特征詞集合依次輸入GSDMM 模型中,進(jìn)行10 輪訓(xùn)練后得到主題-詞語(yǔ)矩陣Φ和服務(wù)-主題矩陣Θ,以及每個(gè)服務(wù)s對(duì)應(yīng)的初始服務(wù)表征向量srv(s)。
算法2 第6)~14)行實(shí)現(xiàn)修正因子的計(jì)算,并完成對(duì)初始服務(wù)表征向量srv(s)的概率修正。首先,針對(duì)服務(wù)s的特征詞集合s_fw 中的每一個(gè)單詞w,在單詞-主題矩陣Φ找到w對(duì)應(yīng)的分布概率值最大的主題k-max-w。將單詞w的最大主題分布概率值max(φk,w)與其對(duì)應(yīng)的語(yǔ)境權(quán)重ContextWeight(w,s.d)相乘,并乘以超參數(shù)修正率λ=0.1,得到服務(wù)s表征主題中該單詞w對(duì)應(yīng)的修正因子δ(w,s.d)。算法2第10)~13)行判定單詞w對(duì)應(yīng)的最大概率分布主題k-max-w是否為服務(wù)s表征向量中的次要主題,如果是次要主題,則將修正因子δ(w,s.d)與表征向量中該主題已有分布概率值相乘,完成基于單詞w的主題概率分布修正。將服務(wù)s的所有特征詞集合中的單詞均完成修正后即可得到最終的服務(wù)表征向量。算法2 第17)行返回服務(wù)表征向量集合SRV。
本節(jié)基于K-means++與生成的服務(wù)表征向量,構(gòu)建服務(wù)聚類(lèi)算法,以算法2 生成的服務(wù)表征向量作為聚類(lèi)數(shù)據(jù),如算法3 所示。
算法3ServiceCluster_KM
算法3 首先隨機(jī)選擇一個(gè)服務(wù)表征向量作為初始聚類(lèi)中心點(diǎn)cp1。第2)~9)行確定k個(gè)初始化聚類(lèi)中心點(diǎn),其方法是計(jì)算每個(gè)服務(wù)表征向量與已經(jīng)產(chǎn)生的聚類(lèi)中心點(diǎn)之間的歐氏距離ED(srv,cp),將服務(wù)表征向量srv 與已產(chǎn)生中心點(diǎn)的最近距離定義為D(srv);然后通過(guò)第7)行中的P(srv)計(jì)算srv被選中為下一個(gè)聚類(lèi)中心點(diǎn)的概率;最后,通過(guò)輪盤(pán)法選出下一個(gè)聚類(lèi)中心點(diǎn)。
算法3 第10)~16)行實(shí)現(xiàn)服務(wù)聚類(lèi)。在聚類(lèi)過(guò)程中,通過(guò)計(jì)算待聚類(lèi)服務(wù)表征向量與聚類(lèi)中心點(diǎn)之間的歐氏距離,將待聚類(lèi)服務(wù)劃歸到具有最短歐氏距離的聚類(lèi)中心點(diǎn)所在的簇。完成一輪次聚類(lèi)后,重新計(jì)算每個(gè)服務(wù)簇的中心點(diǎn),實(shí)現(xiàn)新一輪次的聚類(lèi),直至各個(gè)服務(wù)簇的聚類(lèi)中心點(diǎn)不再變動(dòng),最終聚類(lèi)完成,輸出k個(gè)服務(wù)簇。
聚類(lèi)質(zhì)量評(píng)價(jià)指標(biāo)可分為外部和內(nèi)部評(píng)價(jià)指標(biāo)兩類(lèi)。外部評(píng)價(jià)指標(biāo)使用樣本標(biāo)簽來(lái)評(píng)價(jià)聚類(lèi)是否合理。內(nèi)部評(píng)價(jià)指標(biāo)是通過(guò)刻畫(huà)聚類(lèi)質(zhì)量的參數(shù)對(duì)聚類(lèi)效果進(jìn)行評(píng)價(jià)。本文選取以下常用指標(biāo)對(duì)聚類(lèi)質(zhì)量進(jìn)行。
6.1.1 內(nèi)部評(píng)價(jià)指標(biāo)
1) 輪廓系數(shù)(SC,silhouette coefficient)
對(duì)于單個(gè)樣本x,設(shè)a是與它同類(lèi)別中其他樣本的平均距離,b是與它距離最近不同類(lèi)別中樣本的平均距離,其輪廓系數(shù)為
SC 分?jǐn)?shù)的取值范圍是[-1,1],分?jǐn)?shù)越高代表聚類(lèi)效果越好。
2) 戴維森堡丁指數(shù)(DBI,Davies-Bouldin index)
DBI 表示為任意2 個(gè)類(lèi)別的類(lèi)內(nèi)平均距離之和除以2 個(gè)聚類(lèi)中心距離求最大值。該指標(biāo)計(jì)算式為
其中,xi和xj為2 個(gè)聚類(lèi),n為聚類(lèi)的類(lèi)別個(gè)數(shù),ic為第i個(gè)類(lèi)別中心,σi為i類(lèi)中所有的點(diǎn)到中心點(diǎn)的平均距離,d(ci,cj)為2 個(gè)聚類(lèi)中心點(diǎn)ci與cj之間的距離。類(lèi)內(nèi)距離越小、類(lèi)間距離越大,則DBI 越小,分類(lèi)效果越好。
6.1.2 外部評(píng)價(jià)指標(biāo)
1) 標(biāo)準(zhǔn)化互信息(NMI,normalized mutual information)
NMI 是互信息(MI)分?jǐn)?shù)的歸一化,其計(jì)算式為
其中,X={x1,x2,…,xK}為聚類(lèi)后的樣本劃分,Y={y1,y2,…,yK}為真實(shí)類(lèi)別劃分,MI 可計(jì)算出X與Y的相關(guān)程度,H(X)與H(Y)分別為X與Y的熵,F(xiàn)為歸一化函數(shù),本文選取算術(shù)平均的方法。NMI分?jǐn)?shù)區(qū)間為[0,1],值越大代表聚類(lèi)效果越好。
3) 調(diào)整互信息(AMI,adjusted mutual information)
AMI 在MI 基礎(chǔ)上對(duì)其進(jìn)行調(diào)整,已知聚類(lèi)標(biāo)簽與真實(shí)標(biāo)簽,MI 能夠度量?jī)烧咧g的相關(guān)性,并忽略標(biāo)簽的排序。該指標(biāo)的計(jì)算式為其中,E 為互信息 MI (X,Y)的期望。AMI 取值范圍是[-1,1],值越大代表聚類(lèi)結(jié)果與真實(shí)情況越吻合。
3) 調(diào)整蘭德系數(shù)(ARI,adjusted Rand index)
ARI 計(jì)算式為
RI 的作用是確定正確決策的占比,其計(jì)算式為
ARI 取值范圍是[-1,1],反映了真實(shí)標(biāo)簽與聚類(lèi)結(jié)果之間的吻合程度,ARI 越大表示聚類(lèi)結(jié)果與真實(shí)情況吻合度越高。
爬取Programmable Web 網(wǎng)站上的Web API 服務(wù)作為實(shí)驗(yàn)對(duì)象。刪除描述文本過(guò)短、重復(fù)注冊(cè)的服務(wù),保留18 439 條有效服務(wù),利用Python 工具包對(duì)實(shí)驗(yàn)數(shù)據(jù)進(jìn)行以下處理。
1) 文本分詞,將服務(wù)描述中單詞按空格分開(kāi)。
2) 大小寫(xiě)轉(zhuǎn)化,將服務(wù)描述中存在的大寫(xiě)字母單詞全部轉(zhuǎn)化為小寫(xiě)字母單詞。3) 去停用詞,刪除a、an、the、of 等無(wú)效詞語(yǔ)。4) 詞性還原,服務(wù)描述中單詞存在時(shí)態(tài)、語(yǔ)態(tài)的變化,還原為最初的詞態(tài)。
為了更好地進(jìn)行聚類(lèi)效果的內(nèi)部評(píng)價(jià)指標(biāo)和外部評(píng)價(jià)指標(biāo)的對(duì)比,本文劃分了6 個(gè)數(shù)據(jù)集,即DS1~DS6。其中,DS1~DS3用于內(nèi)部評(píng)價(jià)指標(biāo)的對(duì)比,采取增量式構(gòu)建,包含的服務(wù)類(lèi)別如表1 所示。DS4~DS6用于外部評(píng)價(jià)指標(biāo)對(duì)比,采取無(wú)交叉式構(gòu)建,包含的服務(wù)類(lèi)別如表2 所示。
表1 內(nèi)部評(píng)價(jià)數(shù)據(jù)集
表2 外部評(píng)價(jià)數(shù)據(jù)集
實(shí)驗(yàn)機(jī)器配置為 i7-8750h,16 GB 內(nèi)存,Windows10 操作系統(tǒng),采用Python3.6+Java 編寫(xiě)程序。外部指標(biāo)對(duì)比時(shí),簇粒度分別設(shè)置為40、60、80、100、200、400,內(nèi)部指標(biāo)評(píng)價(jià)則采用服務(wù)標(biāo)簽作為聚類(lèi)的類(lèi)別標(biāo)記,DS4、DS5、DS6的聚類(lèi)數(shù)目分別設(shè)置為10、10、14。服務(wù)表征向量主題個(gè)數(shù)依次設(shè)置為20、40、60、80、100、150 和200。所有實(shí)驗(yàn)數(shù)據(jù)均為不同主題、簇粒度數(shù)目下的數(shù)據(jù)均值。
6.3.1 服務(wù)表征向量生成質(zhì)量驗(yàn)證實(shí)驗(yàn)
實(shí)驗(yàn)采用聚類(lèi)算法為K-means++,將本文所提出的帶有主題分布概率修正因子的GSDMM 模型命名為R_GSDMM。服務(wù)表征向量生成質(zhì)量實(shí)驗(yàn)對(duì)比數(shù)據(jù)如表3~表6 所示。
1) 內(nèi)部評(píng)價(jià)指標(biāo)比對(duì)
數(shù)據(jù)集DS1~DS3對(duì)應(yīng)的內(nèi)部指標(biāo)評(píng)價(jià)數(shù)據(jù)如表3 所示。表3 中,行數(shù)據(jù)表示不同主題模型在各數(shù)據(jù)集中生成的服務(wù)表征向量所構(gòu)建服務(wù)聚類(lèi)對(duì)應(yīng)的SC 和DBI。表3 中每一列SC 和DBI 均由兩部分值組成,其中SC1和SC2分別表示未采用與采用本文基于描述語(yǔ)境權(quán)重特征詞提取的情況下生成服務(wù)表征向量聚類(lèi)得到的SC 指標(biāo)值。DBI列各數(shù)據(jù)值的含義與SCl 列設(shè)置情況類(lèi)似。
表3 服務(wù)表征向量質(zhì)量驗(yàn)證實(shí)驗(yàn)數(shù)據(jù)
從SC1與SC2以及DBI1與DBI2的對(duì)比值可以看出,參與實(shí)驗(yàn)的7 種主題模型中,除了HDP 模型外,其他 6 種模型均滿(mǎn)足 SC2>SC1和DBI2 從表3 中各個(gè)模型的SC 與DBI 對(duì)比數(shù)據(jù)可知,GSDMM 模型的指標(biāo)值優(yōu)于 LDA、LSA、LDA_W2V、BTM、HDP 等模型,而本文所提R_GSDMM 模型的指標(biāo)值優(yōu)于GSDMM 模型。這說(shuō)明在相同服務(wù)表征向量生成語(yǔ)料情況下,R_GSDMM 模型生成服務(wù)表征向量質(zhì)量最高,即本文所提帶有主題概率分布修正因子的GSDMM 模型有效提升了服務(wù)表征向量的生成質(zhì)量。 通過(guò) 3 個(gè)數(shù)據(jù)集的平均值數(shù)據(jù)項(xiàng),計(jì)算R_GSDMM 對(duì)比GSDMM 模型的性能提升,結(jié)果如圖4 所示。在圖4 中,SC_WM、DBI_WM 分別表示采用本文方法以及帶有主題概率分布修正因子的GSDMM 模型的性能提升值。相比傳統(tǒng)GSDMM 模型,在3 個(gè)數(shù)據(jù)集上,本文方法將SC和DBI 指標(biāo)平均提升了約6.9%和30.6%。 圖4 本文方法對(duì)SC 與DBI 指標(biāo)提升對(duì)比 2) 外部評(píng)價(jià)指標(biāo)對(duì)比 數(shù)據(jù)集DS4~DS6中進(jìn)行的外部指標(biāo)評(píng)價(jià)對(duì)比數(shù)據(jù)如表4~表6 所示。其中,AMI1、NMI1、ARI1和AMI2、NMI2、ARI2分別表示未采用和采用本文所提基于語(yǔ)境權(quán)重特征詞提取方法的聚類(lèi)質(zhì)量評(píng)價(jià)數(shù)據(jù)。 表4 服務(wù)表征向量質(zhì)量驗(yàn)證DS4 實(shí)驗(yàn)數(shù)據(jù) 表5 服務(wù)表征向量質(zhì)量驗(yàn)證DS5 實(shí)驗(yàn)數(shù)據(jù) 從表4~表6 可知,7 個(gè)主題模型生成的服務(wù)表征向量所構(gòu)建的服務(wù)聚類(lèi),均滿(mǎn)足AMI2>AMI1、NMI2>NMI1和ARI2>ARI1。這表明,采用本文所提方法構(gòu)建的服務(wù)聚類(lèi)質(zhì)量比未采用此方法顯著提高。因此,證明本文的特征詞提取方法是有效的。此外,所有的模型在采用本文方法后,外部評(píng)價(jià)指標(biāo)AMI、NIMI 和ARI 均得到提高,因此從外部評(píng)價(jià)指標(biāo)看,本文的特征詞提取方法適用于主題模型范圍非常廣泛。 表6 服務(wù)表征向量質(zhì)量驗(yàn)證DS6 實(shí)驗(yàn)數(shù)據(jù) 縱向?qū)Ρ缺?~表6 中各個(gè)主題模型的AMI、NMI 以及ARI 數(shù)據(jù)可以看出,不論是否采用本文所提特征詞提取方法,R_GSDMM 模型所對(duì)應(yīng)的服務(wù)聚類(lèi)指標(biāo)均優(yōu)于GSDMM 以及其他主題模型。綜合數(shù)據(jù)集DS4~DS6中的指標(biāo)數(shù)據(jù),采用GSDMM 模型、引入本文特征詞提取后的GSDMM 模型(用GSDMM_W 表示)、同時(shí)引入本文特征詞提取方法與帶有主題概率分布修正因子的GSDMM 模型(用R_GSDMM_W 表示)所對(duì)應(yīng)的AMI、NMI 以及ARI 指標(biāo)平均值如圖5 所示。相比傳統(tǒng)GSDMM 模型,在同一服務(wù)描述文本語(yǔ)料前提下,本文方法將生成聚類(lèi)的AMI、NMI 以及ARI 平均值分別提升21.7%、21.1%以及23.9%。 圖5 不同模型外部評(píng)價(jià)指標(biāo)平均值對(duì)比 6.3.2 聚類(lèi)算法效果對(duì)比實(shí)驗(yàn) 實(shí)驗(yàn)選取K-means++、AGNES、BIRCH 以及GMM 這4 種常用算法,采用本文方法構(gòu)建的服務(wù)表征向量,各聚類(lèi)算法生成的聚類(lèi)質(zhì)量評(píng)價(jià)指標(biāo)如表7~表9 所示。 1) 內(nèi)部評(píng)價(jià)指標(biāo)對(duì)比 數(shù)據(jù)集DS1~DS3中,K-means++、AGNES、BIRCH 以及GMM 這4 種聚類(lèi)算法的SC 與DBI得分平均值如表7 所示。從表7 可知,K-means++算法生成的服務(wù)聚類(lèi)質(zhì)量在SC 與DBI 評(píng)價(jià)指標(biāo)的占優(yōu)數(shù)量上顯著高于其他算法。 表7 聚類(lèi)效果質(zhì)量驗(yàn)證實(shí)驗(yàn)數(shù)據(jù) 數(shù)據(jù)集DS1~DS3對(duì)應(yīng)不同聚類(lèi)算法的SC 和DBI 得分平均值如圖6 所示。從圖6 可以看出,K-means++算法的SC 得分平均值略?xún)?yōu)于其他算法,DBI 得分平均值則顯著優(yōu)于其他算法。 圖6 不同聚類(lèi)算法內(nèi)部評(píng)價(jià)指標(biāo)平均值對(duì)比 綜上,在SC 和DBI 平均值占優(yōu)數(shù)量和平均值大小2 個(gè)層面,K-means++算法均優(yōu)于其他算法。 2) 外部評(píng)價(jià)指標(biāo)對(duì)比 數(shù)據(jù)集DS4~DS6中,K-means++、AGNES、BIRCH 以及GMM 這4 種聚類(lèi)算法的AMI、NMI 與ARI 評(píng)分值如表8 所示。從表8 可以看出,K-means++在數(shù)據(jù)集DS5和DS6上的評(píng)分具有領(lǐng)先優(yōu)勢(shì)。 表8 聚類(lèi)效果質(zhì)量驗(yàn)證實(shí)驗(yàn)數(shù)據(jù) 4 種算法在數(shù)據(jù)集DS4~DS6中外部指標(biāo)AMI、NMI 與ARI 評(píng)分平均值如圖7 所示,K-means++在3項(xiàng)外部指標(biāo)的平均得分中均領(lǐng)先于其他3種算法。因此,不論是從外部指標(biāo)AMI、NMI 與ARI 評(píng)分平均值的領(lǐng)先數(shù)量還是平均值大小,K-means++算法均優(yōu)于其他算法。 圖7 不同聚類(lèi)算法外部評(píng)價(jià)指標(biāo)平均值對(duì)比 本節(jié)實(shí)驗(yàn)中,內(nèi)部指標(biāo)與外部指標(biāo)最優(yōu)值次數(shù)進(jìn)行了分類(lèi)匯總?cè)绫? 所示。在共計(jì)39 輪次的指標(biāo)統(tǒng)計(jì)中,K-means++獲得30 次最優(yōu)值,其中包含一次K-means++與AGNES 并列最優(yōu)值。因此,本文選用K-means++算法作為最終的服務(wù)聚類(lèi)算法是合理和有效的。 表9 聚類(lèi)算法最優(yōu)指標(biāo)值統(tǒng)計(jì)結(jié)果 相比傳統(tǒng)GSDMM 生成服務(wù)表征向量,本文方法因引入Word2Vec 生成詞向量而略增加耗時(shí)。由于Word2Vec 詞向量生成耗時(shí)顯著低于GSDMM 詞向量生成,且在提取特征詞后,語(yǔ)料詞語(yǔ)數(shù)量減少和詞頻相對(duì)集中進(jìn)一步降低GSDMM 生成向量的時(shí)間,因此,本文方法總體計(jì)算復(fù)雜度未明顯升高。 為了提高采用短文本自然語(yǔ)言進(jìn)行服務(wù)功能描述的Web 服務(wù)聚類(lèi)效果,本文構(gòu)建了一種高質(zhì)量的服務(wù)表征向量生成以及聚類(lèi)方法,采用適于短文本聚類(lèi)的GSDMM 模型作為生成服務(wù)表征向量的主題模型,從詞匯語(yǔ)料和主題概率分布2 個(gè)維度對(duì)服務(wù)表征質(zhì)量生成方法進(jìn)行了改進(jìn);建立的特征詞提取算法有效去除服務(wù)描述信息中的噪聲,構(gòu)建的概率修正因子平衡了GSDMM 模型生成服務(wù)表征向量時(shí)的關(guān)鍵主題與次要主題之間的概率;構(gòu)建了基于K-means++的服務(wù)聚類(lèi)算法。采用5 種評(píng)價(jià)指標(biāo)對(duì)本文提出的聚類(lèi)方法效果進(jìn)行評(píng)估,多輪次實(shí)驗(yàn)結(jié)果顯示本文所提方法提高了服務(wù)表征向量的生成質(zhì)量和服務(wù)聚類(lèi)效果。 未來(lái)工作將進(jìn)一步優(yōu)化服務(wù)描述文本中詞語(yǔ)的語(yǔ)境權(quán)重計(jì)算方法以及GSDMM 模型的主題概率分布修正因子,提升服務(wù)表征向量的質(zhì)量。此外,將對(duì)服務(wù)之間的協(xié)作關(guān)系進(jìn)行建模、量化,并融入服務(wù)聚類(lèi)過(guò)程中,以期進(jìn)一步提高聚類(lèi)效果。7 結(jié)束語(yǔ)