肖巧翔,曹步清, 2,張祥平,劉建勛,李晏新聞
?
基于Word2Vec和LDA主題模型的Web服務聚類方法
肖巧翔1,曹步清1, 2,張祥平1,劉建勛1,李晏新聞3
(1. 湖南科技大學 計算機科學與工程學院,湖南 湘潭,411201; 2. 北京郵電大學 網絡與交換技術國家重點實驗室,北京,100876; 3. 泉州師范學院 航海學院,福建 泉州,362699)
為高效地發現滿足用戶需求的Web服務,針對Web服務的描述文本較短、缺乏足夠有效信息的問題,提出一種基于Word2Vec和LDA主題模型的Web服務聚類方法。該方法首先將Wikipedia語料庫作為擴充源,使用word2vec對Web服務描述文檔內容進行擴充,再將擴充后的描述文檔利用主題模型進行特征建模,將短文本主題建模轉化為長文本主題建模,更準確地實現服務內容主題表達,最后根據文檔的主題分布矩陣尋找相似的服務并完成聚類,使用從ProgrammableWeb收集的真實數據進行實驗。研究結果表明:本文方法與TFIDF-K,LDA,WT-LDA和LDA-K方法相比,分別提高419.74%,20.11%,15.60%和27.80%,利用擴充后的Web服務的描述文檔進行聚類的方法能夠有效提高Web服務聚類的效果。
Web服務;Word2Vec;LDA主題模型;K-means算法;Web服務聚類
近年來,隨著互聯網技術的快速發展,Web服務技術作為服務計算(SOC)和面向服務架構(SOA)的主要實現技術已經得到廣泛應用[1]。通常,單個Web服務所提供的功能并不能滿足用戶多功能的需求。開發人員更傾向于通過以松散耦合的方式組合現有的基于RESTful的Web服務來創建多功能的Mashup服務。由于Mashup服務具有易編程和開發周期短等特性,Mashup服務變得越來越流行[2]。然而,與傳統的Web服務相比,Mashup服務缺少規范的形式化描述模型,如Mashup服務的描述文本內容過少、描述語言不規范等,這些都增加了Mashup服務查找與發現的難 度[3]。如何發現適合的Mashup服務是Web服務發現所面臨的一個重要問題。Web服務聚類技術是用于提高Web服務發現精度的一種重要技術[4],它將Web服務按照其功能屬性進行劃分,使得劃分到相同簇中的Web服務功能相似度較高,不同簇中的Web服務功能相似度較低。通過計算Web服務功能相似度的聚類方法,能夠有效提高Web服務搜索引擎的查找效率。目前,國內外研究者對Web服務聚類進行了大量研究?,F有的關于Web服務聚類的研究主要聚焦于Web服務功能屬性的聚類研究?;诠δ艿腤eb服務聚類主要依據的是Web服務功能的相似性而將它們聚到具有相似功能的類簇中。例如,YU等[5]提出一種基于服務和操作聯合聚類的服務社區學習算法,把具有相似功能的服務聚類為同構服務社區。文獻[4,6]從WSDL文檔中抽取關鍵特征,用于表示1個Web服務;然后,基于這些特征,計算Web服務之間的相似性,將服務聚類到功能相似的類簇。也有許多方法引入許多輔助信息來改善主題模型的訓練過程[7?9],例如,CHEN 等[7?8]使用WSDL文檔和Tag信息作為輸入信息,分別計算獲得WSDL文檔相似性和Tag相似性,并合成這2種相似性實現服務聚類。黃媛等[9]也提出一種基于標簽推薦的Web服務聚類方法,該方法結合了描述文檔和Web服務標簽來進行聚類。李征等[10]提出了一種基于概率、融合領域特性的服務聚類模型。SHI 等[11]提出一種利用詞向量的增強LDA(Latent Dirichlet Allocation)服務聚類方法。對Web服務描述文檔中的所有詞進行聚類,使這些詞匯聚類信息參與LDA模型的訓練過程。這些方法都是通過對Web服務的描述文檔進行建模,抽取出Web服務的關鍵特征,再對Web服務進行聚類。但目前大部分主題模型都無法對這類缺乏訓練語料庫的短文本進行較好建模。由于原始描述文檔包含較少信息并且使用自然語言來描述,這使得主題模型提取的Web服務隱含主題信息不夠準確,雖然當前有些主題模型在訓練過程中引入了輔助信息,如Web服務的標簽信息、詞聚類信息等,但相比傳統的LDA主題模型[12],改進現有的主題模型對Web服務聚類準確率的提升并不明顯。針對這一問題,本文提出一種基于Word2Vec和LDA主題模型的Web服務聚類方法。利用Word2Vec對Web服務的短文本進行擴充,能夠獲得額外的文本信息,將短文本主題建模轉化為長文本主題建模,使得主題模型能夠有效地估計出Web服務描述文本的隱含主題,提高聚類的精度。再將這些擴充后具有額外信息的描述文檔用于LDA主題建模,從而獲得更加準確的聚類效果。
Web服務的描述文本通常比較短,如在本文中使用的數據集,平均每一個Web服務的描述文檔僅包含24.16個詞。直接利用LDA等主題建模方法難以有效地估計出服務的隱含主題。因此,需要對Web服務的描述文本進行擴充。

本文利用Word2vec訓練出維基百科(Wikipedia)英文語料庫的詞向量模型。本文使用的Wikipedia英文語料庫數據量大,共有11GB。因此,采用的是基于負采樣的CBOW(continuous bag of words)模型。假設(,C)是從訓練數據集提取出來的詞及其上下文信息C信息對。那么通過周圍詞來預測當前詞的概率如下:


CBOW模型訓練目標的極大似然估計函數,表達式如下:


通過文本擴充,將短文本主題建模轉化成為長文本主題建模,利用LDA主題模型對服務內容進行特征建模,實現Web服務內容的主題表達。
LDA主題模型可以將每篇文檔的主題以概率分布的形式給出[14],用來識別大規模文本中的隱含主題信息,在信息檢索等都有得到了廣泛的應用。

圖1 LDA模型圖
圖1所示為LDA模型圖。圖1中,單圓環表示隱含變量,雙圓環表示可觀察值,矩形表示重復過程;大矩形表示從Dirichlet分布中為文檔集中的每個文檔反復抽取主題分布;小矩形表示從主題分布中反復抽樣產生文檔的詞{1,2,…,w};為主題個數;為文檔總數;N為第個文檔的單詞總數;Z,n為第個文檔中第個詞的主題;w,n為個文檔中的第個詞;和為它們的先驗參數;隱含變量表示第個文檔下的Topic分布;表示第個主題下詞的分布。對于文檔中每個詞,可以通過公式(3)為其抽樣1個主題Z。同時,通過公式(4)選擇該詞W。


將擴充后的Mashup描述文檔作為LDA模型的輸入,采用吉布斯抽樣(Gibbs Sampling)方法,和分別可被推斷出來,從而得到每個描述文檔的文檔主題矩陣和詞主題矩陣。如圖2所示。

圖2 LDA詞主題與文檔主題矩陣
本文提出的方法總體框架如圖3所示。首先,對收集到的Web服務數據集進行預處理。之后,使用Word2Vec工具對Wikipedia語料庫進行訓練,生成詞向量模型。在詞向量模型中尋找與Web服務的描述文檔相似的詞進行擴充,得到不同擴充程度的描述文檔,使原始文本有足夠的詞頻共現,使主題模型更加有效地估計服務的隱含主題。然后,使用文本聚類領域常用的工具LDA模型對擴充后的描述文檔進行主題建模。接著,對LDA生成的文檔主題分布矩陣使用K-means聚類方法實現服務聚類。最后,采用準確率、召回率以及對實驗結果進行評價。

圖3 方法總體框架
2.1.1 Wikipedia數據集以及詞向量訓練過程
Wikipedia是公認的互聯網上最全面、最權威的網絡百科全書,有豐富的語料庫。本文采用2017年4月的英文維基百科語料庫,下載地址為:https://dumps.wikimedia.org/enwiki/latest/enwiki-latest-pages-articles.xml.bz2,約為11 GB。其中每個文件大約為1 MB,包含了多個英文文檔。
本文使用python中的gensim模塊對Wikipedia語料庫進行訓練,生成了Wikipedia語料庫的詞向量模型,具體參數設置如表1所示。

表1 Word2Vec參數設置
2.1.2 Web服務數據集及預處理
本實驗的數據集來自于ProgrammableWeb網站,它是一個API資源發布和檢索的權威平臺,是世界上API的新聞和信息的主要來源。截至2017?05,該網站上中的Mashup數量已經超過6 300個,Web API的數量突破17 000個。
本文使用從ProgrammableWeb爬取的6 347個Mashup服務,包括服務名稱、描述文本、所使用的Web API以及Tag等信息。在實驗中挑選了數量最多的前五類Mashup,它們的分布情況如表2所示。
為了提高文本聚類的精確度,首先對這些Mashup的描述文檔進行預處理。過程如下。
1) 文本令牌化(tokenize)。將每個單詞按照空格分開,且將單詞和標點符號也分開,使得文本中的單詞、字符變成單獨的單元。

表2 Top5類的Mashup服務分布圖
2) 過濾停用詞(stop words)。去除英文中一些無意義的詞以及標點符號,如:“a”,“and”,“or”,“to”和“@”等。
3) 詞干化處理(stemming)。在英文文本中,同一個單詞會因為人稱、時態的不同而有不同的表現形式,如“connection”,“connected”和“connecting”,它們實際上都是同一個單詞“connect”。若將這些單詞看作是不同的單詞,那么之后的實驗結果的準確度撿回降低。故需要進行詞干化處理。
以上處理步驟均采用python中的自然語言處理工具包[15]NLTK(Natural Language Toolkit)進行處理。在完成以上3個步驟后,便獲得了處理好的Web服務描述文檔text。
2.1.3 詞向量擴充處理
使用Word2vec工具對Wikipedia語料庫進行訓練,得到Wikipedia語料庫的詞向量模型。接著利用訓練好的詞向量模型來進行Web服務描述文檔的擴充。具體方法為:在詞向量空間中尋找與原始Web服務描述文檔中的詞最相近的前個詞進行擴充,得到不同擴充程度的Web服務描述文檔[16]。例如:原始單詞Earth與Google,經過擴充之后形成的前10個擴充詞分別為{planet,martian,mars,venusian,planets,spaceship,universe planetary,moon,deimos}和{gmail,dropbox,evernote,app,adsense,yahoo,microsoft,flickr,hotmail}。

2.1.4 LDA主題建模

2.1.5 Web服務功能聚類
K-means聚類算法是Web服務聚類中使用最為廣泛的算法之一。該算法的步驟如下[17]。
1) 在個樣本中,任選個樣本作為初始聚類中心=(1,2,…,z)。
2) 對每個樣本x找到離它最近的聚類中心z,并將其分配到z所標明的類c中。
3) 采取平均的方法計算重新分類后的各類的聚類中心。
4) 計算

5) 若值收斂,則返回聚類結果,并終止本算法,否則轉至步驟 2)。
其中,步驟4)在計算每個Mashup服務到聚類中心的距離時,采用的是余弦相似度。假設某個Mashup服務m和聚類中心z它們的主題向量是(P1,P2,…,P)與(P1,P2,…,P),那么m與z之間的余弦距離為

將文本主題矩陣作為K-means的輸入,最小化所有Mashup與其所關聯的聚類中心點之間的距離之和,將得到最終的聚類結果。圖4所示為Web服務聚類結果中的2個簇的示例圖。每一個簇類的主題為該簇類出現次數最多的1個主題。
圖4 Web服務聚類示例
Fig. 4 Examples of Web service clustering
為了評價服務聚類的性能,采用準確率、召回率以及綜合評價指標進行評價[18]。其中,準確率表示所有被劃分到同一簇的服務中應被劃分到該簇的概率,召回率表示所有被聚類到同一簇中的服務占所有應被聚類到該簇的比例,為準確率和召回率的調和平均值,具體計算公式如下:




選取以下方法與本文所提出的方法進行比較。
1) TFIDF-K[2]。該方法采用 K-mean 算法對服務進行聚類,基于詞頻和逆文檔頻率進行服務之間相似度的計算。
2) LDA。該方法基于 LDA 主題模型進行劃分,每個服務屬于主題概率最大的類別。具有相同主題的Web服務被劃分為1個類。
3) WT-LDA[7]。該方法在傳統的LDA主題建模過程中添加了Web服務標簽信息,每個服務屬于主題概率最大的類別,具有相同主題的 Web服務被聚為1個類。
4) LDA-K[2]:該方法針對原始的、未擴充的服務文本進行聚類。首先,基于LDA模型的主題分布矩陣進行Web服務之間的相似度計算;然后,使用K-means算法對Mashup服務進行聚類。
5) ELDA-K-i。該方法即為本文提出的方法。首先對Mashup服務描述文本進行擴充,使短文本擴充成為長文本,再對其進行主題建模,得到文檔?主題矩陣。再依據主題分布進行相似度的計算,并使用K-Means聚類算法進行聚類。其中,表示擴充的詞語數量。
6) ELDA-HC。該方法采用相同的文本擴充方法、不同的聚類算法實現服務聚類。首先,對Mashup服務描述文本進行擴充,使短文本擴充成為長文本。使用層次聚類算法對生成的主題分布矩陣進行聚類。
本文設計了一組實驗,用于考察不同擴充情況的Web服務描述文本對實驗效果的影響。將LDA的預先設定的主題數設置為20,40,60,80以及100。同時,LDA模型中的先驗參數和根據主題數來設定,=50/,=0.1。對LDA生成的文檔主題向量使用K-means算法進行聚類。實驗結果如下:4種不同擴充情況為分別為無擴充、擴充詞數為3、擴充詞數為5、擴充詞數為10。從圖5~7中可以看出:不擴充時的聚類效果最差,這是因為原始文本較短,包含的信息較少;在擴充詞數為3時,其準確率、召回率以及這3個指標均要比其余擴充情況的高,但隨著擴充詞數的繼續增加,聚類的效果反而降低。這是因為擴充詞并不單單表示原單詞的含義,還會包含其他語義信息。過多的擴充詞會使得主題模型無法準確地推斷出隱含主題,使得擴充后的Mashup描述文檔的語義變得模糊,導致LDA模型建模效果降低。

1—LDA-K;2—ELDA-K-3;3—ELDA-K-5;4—ELDA-K-10。

1—LDA-K;2—ELDA-K-3;3—ELDA-K-5;4—ELDA-K-10。

1—LDA-K;2—ELDA-K-3;3—ELDA-K-5;4—ELDA-K-10。
通過實驗可知:當擴充詞數為3時,本文方法具有最好的效果。因此,選擇ELDA-K-3方法與之前提到的其他方法進行對比,結果如表3所示。本文提出的方法所得準確率、召回率以及都最高。

表3 不同聚類方法的實驗結果比較
從表3可見:本文提出的方法比其他方法有著明顯的優勢,與TFIDF-K,LDA,WT-LDA和LDA-K相比,本文方法所得分別提高419.74%,20.11%,15.60%和27.80%。這是因為擴充后的描述文檔包含更多的關于Web服務的有效信息,而這些信息有助于Web服務功能信息特征的提取,并且在同樣擴充情況下,使用K-means聚類方法獲得的實驗結果要優于層次聚類方法所得結果。這是因為層次聚類在分類過程中,當1個點被分類之后就無法進行修正,聚類質量會受到影響。而K-means聚類方法在聚類過程中仍可以進行聚類結果的修正。
1) Web服務的數據規模越來越大,將服務進行聚類是一種有效提高服務發現的手段?;诜彰枋鑫谋就ǔ1容^短,缺乏足夠的有效信息,本文提出了一種基于Word2Vec和LDA主題模型的Web服務聚類方法。該方法將Web服務描述文檔進行擴充,將服務描述短文本擴充成長文本,再對擴充后的描述文檔進行主題建模,最后計算各個Web服務的主題分布向量之間的距離,完成聚類。
2) 在真實的數據集上進行實驗,并用3種評價指標驗證本文方法的有效性,結果證明利用擴充后的Web服務的描述文檔進行聚類能夠有效提高Web服務聚類的效果。
[1] IBRAHIM N M, HASSAN M F B. A survey on different interoperability frameworks of SOA systems towards seamless interoperability[C]//Information Technology. Washington D C, USA: IEEE, 2010: 1119?1123.
[2] CAO B, LIU X, LI B, et al. Mashup service clustering based on an integration of service content and network via exploiting a two-level topic model[C]//IEEE International Conference on Web Services San Francisco, USA. IEEE, 2016: 212?219.
[3] 黃興, 劉小青, 曹步清, 等. 融合K-Means與Agnes的Mashup服務聚類方法[J]. 小型微型計算機系統, 2015, 36(11): 2492?2497. HUANG Xing, LIU Xiaoqing, CAO Buqing, et al. MSCA:Mashup service clustering approach integrating K-Means and agnes algorithms[J]. Journal of Chinese Computer Systems, 2015, 36(11): 2492?2497.
[4] ELGAZZAR K, HASSAN A E, MARTIN P. Clustering WSDL Documents to Bootstrap the Discovery of Web Services[C]// ICWS2010. Florida, USA: IEEE Computer Society, 2010: 147?154.
[5] YU Q, REGE M. On Service community learning: A Co-clustering approach[C]//IEEE International Conference on Web Services. Washington D C, USA: IEEE Computer Society, 2010: 283?290.
[6] HASAN M H, JAAFAR J, HASSAN M F. Fuzzy-based clustering of Web services’ quality of service: A review[J]. Journal of Communications, 2014, 9(1): 81?90.
[7] CHEN L, WANG Y, YU Q. WT-LDA: User tagging augmented LDA for Web service clustering[C]//International Conference on Service-Oriented Computing. Berlin, Heidelberg: Springer, 2013: 162?176.
[8] CHEN L, HU L, ZHENG Z. WTCluster: Utilizing tags for Web services clustering[M]. Service-Oriented Computing. Berlin Heidelberg: Springer 2011: 204?218.
[9] 黃媛, 李兵, 何鵬, 等. 基于標簽推薦的Mashup服務聚類[J]. 計算機科學, 2013, 40(2): 167?171.HUANG Yuan, LI Bing, HE Peng, et al. Mashup services clustering based on tag recommendation[J]. Computer Science, 2013, 40(2): 167?171.
[10] 李征, 王健, 張能, 等. 一種面向主題的領域服務聚類方法. 計算機研究與發展, 2014, 51(2): 408?419. LI Zheng, WANG Jian, ZHANG Neng, et al. A topic-oriented clustering approach for domain services[J]. Journal of Computer Research and Development, 2014, 51(2): 408?419.
[11] SHI Min, LIU Jianxun, ZHOU Dong, et al. WE-LDA: A word embeddings augmented LDA model for Web services clustering[C]//IEEE International Conference on Web Services. Honolulu, USA: IEEE Computer Society, 2017: 9?16.
[12] 褚征, 于炯, 王佳玉, 等. 基于LDA主題模型的移動應用相似度構建方法[J]. 計算機應用, 2017, 37(4): 1075?1082. CHU Zheng, YU Jong, WANG Jayu, et al. Construction method of mobile application similarity matrix based on latent Dirichlet allocation topic model[J]. Journal of Computer Applications, 2017, 37(4): 1075?1082.
[13] 黃仁, 張衛. 基于word2vec的互聯網商品評論情感傾向研究[J]. 計算機科學, 2016, 43(S1): 387?389. HUANG Ren, ZHANG Wei. Study on sentiment analyzing of internet commodities review based on Word2vec[J]. Computer Science, 2016, 43(S1): 387?389.
[14] BLEI D M, NG A Y, JORDAN M I. Latent dirichlet allocation[J]. Journal of Machine Learning Research, 2003, 3(3): 993?1022.
[15] BIRD W W S, KLEIN E. Natural Language Processing with Python, Analyzing Text with the Natural Language Toolkit[J]. Language Resources & Evaluation, 2010, 44(4): 421?424.
[16] 魏強, 金芝, 許焱. 基于概率主題模型的物聯網服務發現. 軟件學報, 2014, 25(8): 1640?1658. WEI Qiang, JIN Zhi, XU Yan. Service discovery for internet of things based on probabilistic topic model[J]. Journal of Software, 2014, 25(8): 1640?1658
[17] 金建國. 聚類方法綜述[J]. 計算機科學, 2014, 41(b11): 288?293. JIN Jianguo. Review of clustering method[J]. Computer Science, 2014, 41(b11): 288?293.
[18] CAO Buqing, LIU Xiaoqing, LIU Jianxun, et al. Domain-aware Mashup service clustering based on LDA topic model from multiple data sources[J]. Information & Software Technology, 2017, 90: 40?54.
Web services clustering based on Word2Vec and LDA topic model
XIAO Qiaoxiang1, CAO Buqing1, 2, ZHANG Xiangping1, LIU Jianxun1, LI Yanxinwen3
(1. Hunan University of Science & Technology, Xiangtan 411201, China; 2. State Key Laboratory of Networking and Switching Technology, Beijing University of Posts and Telecommunications, Beijing 100876, China; 3. College of Navigation, Quanzhou Normal University, Quanzhou 362699, China)
Considering that the description text of Web service is short and lack of enough effective information, a Web service clustering method was proposed based on Word2Vec and LDA topic model in order to find the Web service that meets user’s needs efficiently. Firstly, Wikipedia corpus was used as an extension source, and Word2Vec was used to extend the content of Web service description document, and then the expanded description document was modeled using the topic model. The short text topic modeling was transformed into a long text topic modeling, which achieved the topic of service content expression more accurately. Finally the similar service was found based on the topic distribution matrix of the document and the clustering was completed. Real data from ProgrammableWeb was used to carry out experiments. The results show that F obtained by the method increases by 419.74%, 20.11%, 15.60%, 27.80%, respectively, compared with those using TFIDF-K, LDA, WT-LDA and LDA-K. The use of extended Web service description documents clustering method can effectively improve the effectiveness of Web service clustering.
Web services; Word2Vec; LDA topic model; K-means algorithm; Web service clustering
10.11817/j.issn.1672?7207.2018.12.011
TP301
A
1672?7207(2018)12?2979?07
2018?01?12;
2018?03?21
國家自然科學基金資助項目(61873316, 61872139);湖南省自然科學基金資助項目(2017JJ2098);網絡與交換技術國家重點實驗室(北京郵電大學)開放課題 (SKLNST-2016-2-26)(Projects(61873316, 61872139) supported by the National Natural Science Foundation of China; Project(2017JJ2098) supported by the Natural Science Foundation of Hunan Province; Project(SKLNST-2016-2-26) supported by the Open Foundation of State Key Laboratory of Networking and Switching Technology (Beijing University of Posts and Telecommunications)
曹步清,博士,副教授,從事服務計算與云計算等方面的研究;E-mail:buqingcao@gmail.com
(編輯 陳燦華)