張祥平,劉建勛+,肖巧翔,曹步清
1.湖南科技大學 服務計算與軟件服務新技術湖南省重點實驗室,湖南 湘潭411201
2.湖南科技大學 計算機科學與工程學院,湖南 湘潭411201
隨著面向服務體系結構(service-oriented architecture,SOA)技術的發展,Web服務被廣泛應用于各個領域。截至2020 年6 月24 日,ProgrammableWeb網站上所包含的Web服務已經達到了31 154個,要從這樣一個大規模的服務集合中快速有效地找到滿足開發者需求的Web服務猶如大海撈針。已有研究表明:對Web服務進行分類或聚類,再將用戶的搜索請求定位到指定的服務類簇中,能夠有效地減小Web服務搜索空間,提升Web服務的搜索效率。
目前,針對Web 服務劃分已有大量的研究。這些研究通常是將Web服務映射為一個固定長度的表征向量,該表征向量包含Web服務的主要信息,之后在其上使用聚類或分類算法實現對Web 服務的劃分。如Liu 等人使用LDA(latent Dirichlet allocation)主題模型和支持向量機相結合,實現了對Web 服務的自動標注。Chen 等人利用LSA(latent semantic analysis)模型對移動服務文本進行全局主題建模,再通過BiLSTM(bi-directional long short-term memory)模型對服務進行分類。這類方法的效果高度依賴主題模型所生成的Web服務表征向量的質量。但是由于Web 服務描述文檔篇幅較短,LDA 主題模型無法有效地從短文本中獲得豐富的主題信息,進而導致服務聚類效果較差。
與此同時,有些研究考慮將Web 服務的附加信息,如標簽、先驗知識加入到Web 服務表征向量的生成過程中,以提高Web服務聚類的精度。例如,Shi等人使用概率主題模型獲得Web服務描述文檔中隱含的主題表征向量,之后使用-means++對其進行聚類,在這過程中加入了額外的先驗知識用于提升聚類的準確性。Xiao 等人考慮到Web 服務描述文本長度較短,所包含信息量較少的情況,通過使用維基百科相似詞擴充的方法,對原始的Web 服務進行擴充,使用HDP(hierarchical Dirichlet processes)主題模型獲得Web 服務表征向量,進而實現Web 服務聚類。Cao 等人將Web 服務語義信息以及Mashup 服務與API(application programming interface)服務之間的調用關系相結合,實現了API 服務的劃分。這些方法在一定程度上提高了Web 服務聚類和分類的精度,但是仍然存在以下一些問題:
(1)盡管有些工作采用增強文本內容、引入先驗知識等方法,用來豐富Web服務所包含的信息,同時通過改進主題模型以提高模型的主題建模能力,但由于主題模型與Web 服務描述文檔固有的矛盾,主題模型難以從篇幅較短的Web服務文檔中獲得有效的主題表征,實驗效果提升有限。
(2)Web服務數據利用率不高。已有的方法往往只考慮一種類型的Web 服務數據,如從Web 服務描述文本中抽取出的主題信息,而沒有考慮使用Web服務的附加信息,如標簽信息、Web服務流行度、Web服務共現信息。實際上,Web服務的附加信息也能夠提高Web服務聚類和分類的準確性。
針對以上兩個問題,本文提出了一種融合多維信息的Web 服務表征方法(multi-dimensional information-based Web service representation method,MISR)。該方法綜合考慮了Web服務的功能信息以及其他屬性信息。該方法首先使用高斯混合模型和Word2Vec模型生成了包含主題信息和語義信息的Web服務表征向量。之后通過融合Web 服務所包含的多維信息,獲得包含多維信息的Web服務表征向量。最后,在真實的Web 服務數據集上進行Web 服務分類和Web 服務聚類兩個任務,驗證該表征方法的有效性。實驗結果驗證了所提出方法的有效性。
本文工作主要貢獻有以下兩點:
(1)提出了一種Web服務表征方法,該表征方法能夠獲得Web 服務主題信息與功能語義信息,可以有效地提高Web服務聚類和分類的精度。
(2)在真實數據上進行Web 服務聚類和分類對比實驗,驗證了Web 服務中所包含的多維信息能夠用于提升Web服務聚類和分類的效果。
隨著服務計算和云計算的發展,互聯網上出現了大量網絡服務,Web服務發現成為一個熱門的研究方向。精確高效地對Web服務進行分類能夠有效提高Web 服務發現的性能。其關鍵技術在于如何對Web 服務進行建模,獲得有效的Web 服務表征向量用于Web服務分類。現有的Web服務表征技術可以分為兩類:一類是基于服務質量(quality of service,QoS)的表征技術,一類是基于功能語義的表征技術。
基于服務質量的服務表征技術主要將Web服務的服務質量特征作為Web 服務的表征向量,包括服務的吞吐量、可用性、執行時間等。Xia 等人使用Web 服務質量屬性,將Web 服務聚到不同的類中。Michael 等人提出了一種基于QoS 參數和KNN(nearest neighbors)算法的Web 服務選擇方法,使用并行分類模型對Web 服務進行分類。這類方法的缺點在于僅僅使用Web服務一部分特征作為Web服務的表征,所獲得的表征向量包含的信息有限。
基于Web 服務功能語義的表征技術,通常是利用主題模型(如LDA、HDP)將Web 服務功能描述文檔轉換為給定長度的表征向量。Liu 等人使用LDA主題模型和支持向量機相結合,實現了Web 服務的自動標注。李征等人提出一種領域服務聚類模型,對Web 服務進行面向主題的聚類,把特定領域內具有相似功能的服務聚合為主題類簇。
有些工作通過改進主題模型抽取信息的能力,能夠獲得更有效的Web 服務表征向量。Cao 等人提出了雙層主題模型用于獲得Web服務功能內容和結構內容的表征向量,進而完成對Web 服務的聚類。Shi 等人使用Word2Vec 模型對Web 服務中包含的詞匯進行聚類,用于增強的LDA主題模型,以獲得信息更加豐富的Web 服務表征向量。這些工作使用主題模型及其變形從Web 服務功能文檔中抽取出Web服務的功能信息,但由于Web 服務功能描述文檔內容單一,所包含信息有限,也沒有很好地解決問題。
還有一些工作使用基于機器學習的方法。如Cao 等人使用注意力機制生成包含Web 服務功能描述文檔語義信息的Web 服務表征向量,實現對Web服務的分類任務。肖勇等人考慮API服務于Mashup服務之間的結構信息,使用隨機游走和SkipGram 方法獲得Mashup 服務的表征向量,之后使用支持向量機實現Web服務分類,但由于其需要考慮眾多服務之間的結構關系,在實際應用中會比較復雜。
本章將對提出的方法MISR 進行詳細的介紹。本文提出的Web服務表征向量生成方法主要包括以下四個步驟。
(1)主題信息增強的詞向量生成。使用Word2Vec模型生成Web服務功能描述文檔中所有詞匯對應的詞向量。通過高斯混合模型對所有詞向量進行聚類,獲得每個詞的詞向量屬于不同主題簇類的概率。詞向量與該概率相結合,生成主題信息增強的Web服務詞向量。
(2)標簽信息增強的詞向量。通過計算Web 服務描述文檔中所有詞匯與標簽信息的相互關系,獲得標簽-詞之間的信息,用于增強Web 服務詞向量所包含的信息。
(3)Web服務表征向量。在獲得了每個詞匯的增強表征向量之后,需要獲得每一個Web 服務的表征向量。本文通過使用逆文檔頻率對Web服務中的詞匯進行加權求和,獲得每個Web服務的表征向量。
(4)流行度與共現系數。在已有的API服務數據集中計算每個API 服務的流行度以及不同API 服務之間共現系數,與(3)中生成的Web 服務向量相結合。再通過隨機映射方法對API服務向量進行降維,最后獲得API服務的表征向量,用于Web服務聚類和分類任務中。
表1為本文中出現符號的符號含義說明,以便讀者查閱。

表1 符號說明Table 1 Description of notations
傳統的Web服務聚類方法通常使用如LDA主題模型對Web 服務的功能描述文檔進行主題建模,力圖獲得Web服務描述文檔中所包含的功能主題信息用于Web服務聚類。由于Web服務描述文檔通常文本長度較短,主題模型不能有效地找到文本中特定的詞共現模式,無法精確地獲得Web 服務所包含的主題信息。主題模型的主要思想是使用詞匯的概率分布來表示主題。如果對Web服務語料中的所有詞匯進行聚類,劃分為不同的詞匯簇類視為Web 服務的不同主題類,那么就能夠將不同詞匯屬于不同簇類的概率視為不同詞匯屬于不同主題的概率。
如圖1 所示,為了獲得不同詞匯屬于不同簇類(主題簇類)的概率分布,首先對原始的文本進行預處理。本文中對文本的預處理流程與文獻[6]中的處理方式相同。先將文本轉換為小寫,去除所有標點符號,之后對文本進行分詞和移除停用詞。最后移除詞匯的后綴,再對其進行詞形還原。

圖1 主題信息增強的詞向量生成過程Fig. 1 Generation process of topic-augmented word embedding
接下來使用Word2Vec模型將詞匯轉換為給定長度的詞向量。Word2Vec模型能夠在大規模的語料庫上構建出包含語義和詞法信息的詞向量。詞匯之間的相似度可以簡單地通過計算不同詞向量的余弦距來得到。
高斯混合模型是統計學領域中用于計算連續型特征的概率分布的參數模型,而Word2Vec 模型生成的詞向量就是一種連續型的特征向量。因此使用高斯混合模型對Word2Vec模型生成的詞向量進行聚類,從而獲得不同詞匯屬于不同簇類(主題類)的概率分布。
高斯混合模型可以人為設定個簇類視作個主題。通過計算不同組件的概率密度分布,進而獲得每個單詞與簇類(主題)之間的概率分布。在本文中,假設每個簇類(主題)的權重為π,每個簇類(主題)中的單詞w服從高斯分布N,記為N(w;u,Σ),那么單詞w屬于簇類c的概率可以由式(1)計算得到:

其中,u表示第個簇類(主題)概率分布的均值,Σ表示第個簇類(主題)概率分布的方差。
通過高斯混合模型,可以得到每個詞匯屬于不同主題的概率分布(c|w)。通過對詞向量進行加權拼接的方式將主題信息與詞向量信息相結合,具體步驟如下:將概率分布(c|w)與詞向量wv相乘,獲得個不同的向量wvc,之后將這個向量首尾拼接,獲得長度為×的長向量作為詞匯w的包含語義與主題信息的向量表征wvc,其中表示Word2Vec 算法中人為設定的詞向量長度,本文實驗中=200。具體操作如式(2)、式(3)所示:

其中,=1,2,…,,=1,2,…,,表示詞匯數量,表示預先設定的主題個數。⊕表示拼接操作。
這步驟的優勢在于:(1)不同于主題模型生成的Web 服務主題表征,本文在Word2Vec 生成的詞向量的基礎之上使用高斯混合模型對詞匯進行聚類。在該過程中,不但考慮了Web 服務描述文本中隱含的語義信息,同時也考慮了其主題信息。(2)高斯混合模型的時間復雜度()要低于LDA 主題模型的時間復雜度()。其中,為語料庫中詞匯的數量,為語料庫中文檔的數量,為所需要生成的主題數量。進行向量拼接所消耗的時間可以不予考慮,因此采用高斯混合模型在時間復雜度上要優于LDA主題模型。
當開發者推出他們所開發的Web 服務時,為了便于用戶檢索到這些服務,開發者通常需要提供一些單詞或者短語作為Web服務標簽用來概括和標記他們所開發服務的功能。通常情況下,開發者提供的標簽要么會直接出現在Web 功能描述文本中,要么就是和Web 服務功能高度相關。標簽信息是Web服務功能最簡練、準確的概括。將標簽信息加入到Web 服務的表征向量中能夠增強Web 服務功能信息的表達,提高基于Web 服務功能的Web 服務發現方法的效果。
本文使用貝葉斯定理來計算詞匯與標簽之間的關聯程度(t|w),表示詞匯w被標簽t標記的概率。(t|w)可以通過式(4)進行計算。其中,(t,w)表示詞匯w被標簽t標記的數量,(w)表示詞匯w出現的數量。

標簽加權向量的生成過程如圖2 所示。在獲得了每一個詞匯w所對應的詞向量wv之后,將詞向量wv與其權重(t|w) 相乘,得到標簽加權向量wvt,表示詞向量wv在標簽t下的加權向量。與之前步驟一致,將所有的標簽加權向量拼接起來,獲得一個長度為×的向量作為詞匯w的使用標簽信息增強的向量表征wvt。具體操作如式(5)、式(6)所示:

圖2 標簽信息增強的詞向量生成過程Fig. 2 Generation process of tag-augmented word embedding

其中,=1,2,…,,=1,2,…,,表示詞匯數量,表示標簽個數。⊕表示拼接操作。
在經過之前兩個步驟后,得到了主題信息增強的詞向量wvc和標簽信息增強的詞向量wvt。將這兩種向量進行拼接操作,獲得每個詞匯對應的信息增強的向量表征awv,如式(7)所示:

至此,獲得了所有詞匯對應的信息增強的詞向量awv。
一般情況下,一個Web 服務描述文檔的文檔表征向量可以簡單地通過將該文檔中的所有詞匯對應的詞向量加權平均來得到。這種做法認為文本中的所有單詞所具有的信息是相等的。而實際上,文檔中的不同詞匯所包含的信息是不相同的,有些詞匯能夠明顯體現出該文檔所包含的功能信息,而有些詞匯僅僅只有充當語氣詞的作用。因此,本文考慮使用逆文檔頻率來對詞匯的重要程度進行度量,以期獲得更加符合實際情況的Web服務表征向量。
詞匯w的逆文檔頻率(w)可以通過式(8)進行計算得到:

其中,||表示Web服務描述文檔的數量,|{:w∈d}|表示包含詞匯w的Web服務描述文檔的數量。
將一個Web服務描述文檔中的每個詞匯w對應的詞向量awv與詞匯w對應的逆文檔頻率相乘再相加,得到Web服務的表征向量sv,如式(9)所示。

其中,M表示在第個Web服務描述文檔中包含的詞匯個數。
傳統的Web服務推薦方法通常會考慮將Web服務的非功能屬性作為推薦的指標,如安全性、可用性、響應時間等。目前,ProgrammableWeb 網站上的Web 服務缺少相關指標信息,因此,本文考慮將API服務與Mashup服務之間的關系以及API服務與API服務之間的關系用于增強之前所學得的Web服務表征向量。
文獻[1]中使用Web服務的流行度和共現系數用于Web API 服務的推薦。流行度用于衡量Web API服務的流行程度,數值越高表明該API 服務越受歡迎。具體的API服務流行度計算方式如式(10)所示。

其中,(a)表示API服務a被Mashup服務調用的總次數;(a)表示同屬于(a)所屬分類的所有API 服務;max 和min 操作分別表示取所有元素中的最大值和最小值操作。
通過對ProgrammableWeb數據集進行統計分析,發現在本文數據集中所有Mashup 服務中,僅僅只有4.7%的Mashup服務中存在所使用的API服務是屬于同一個類別的。這說明組成Mashup服務的API服務大部分是屬于不同類別的。共現系數可以用來衡量兩個API 服務之間的歷史組合關系,共現系數越大,表明這兩個API服務同時被同一個Mashup服務調用的次數越多,那么它們有較大的概率是屬于不同類別的服務。共現系數的計算如式(11)所示。

其中,|a∩a|表示a和a被同一個Mashup 服務調用的次數,|a∪a|表示a和a被所有Mashup 調用的總次數。
將獲得的共現系數組合為共現系數矩陣Co,該矩陣的第行、第列的元素等于(a,a)。其中,表示API 服務的數量。本文將之前獲得的每個Web服務的表征向量sv與該矩陣通過式(12)相結合,獲得包含服務共現信息的Web服務表征向量svc。

其中,Co表示矩陣Co的第行數據。
最后,將Web 服務的流行度與其表征向量svc相乘,獲得包含多維信息的Web服務表征向量,如式(13)所示。

通過計算可得,sr的向量長度為(××+)。如果直接應用于聚類和分類算法中,會導致計算時間變大。因此為了降低實際應用中算法的運行時間,還需要對其進行降維。
本文采用隨機映射算法對長向量進行降維。隨機映射算法能夠在保留盡可能多的原始信息的情況下將向量的維度降到人為指定的長度,本文實驗中設定=500。該算法的具體實現細節請參照文獻[17]。最終如式(14)所示,獲得的Web服務表征向量s可以直接用于相似度計算。

為了研究本文方法所生成服務表征向量的有效性,進行了Web 服務聚類和Web 服務分類兩類實驗。接下來將具體介紹實驗所使用的數據集以及具體每個任務的實驗設置。
本文所使用的數據集為ProgrammableWeb 數據集。該數據集包括12 919 個API 服務和6 206 個Mashup服務。為了降低數據分布不均衡對實驗效果比較的影響,本文在實驗過程中分別選取了API服務中數量最多的前20 類API 服務共計6 718 個以及Mashup 服務中數量最多的前20 類Mashup 服務共計3 950個進行實驗。
由于實驗中所使用的數據集類別分布不均衡,為了考慮不同類別樣本大小對實驗結果的影響,采用準確率、召回率以及Micro-F1指標用于衡量不同模型的分類和聚類效果。三個指標的計算方式如下:

其中,表示Web服務被正確劃分的數量,表示不屬于類而被錯誤地劃分到類的Web 服務數量,表示屬于類別但是被錯誤地劃分到其他類別的Web 服務數量。模型的準確率、召回率以及-1 的數值越大,表明該模型的效果越好,反之越差。對于聚類實驗,簇類中數量最多的那一類將作為該簇類的正確類別。
LDA:該方法將Web服務中的功能視為模型中的主題信息,通過使用LDA主題模型獲得Web服務的主題向量,之后使用聚類或分類算法對服務進行劃分。
Word2Vec:該方法能夠保留Web 服務功能描述文本中所包含的隱含語義信息,通過對文本中所有詞匯的向量的和進行平均獲得Web服務表征。
Doc2Vec:該方法是Word2Vec 算法的改進版本,通過同時學習單詞向量和文檔向量獲得整個Web服務描述文本的向量表征。
WT-LDA(user tagging augmented LDA):該方法考慮了Web服務中標簽信息與Web服務的主題信息,用于生成包含標簽信息的主題向量。
HDP-SOM:該方法考慮了Web 服務數據稀疏的問題,使用HDP(hierarchical Dirichlet processes)算法對擴充后的Web 服務進行主題建模,之后使用自組織神經網絡(self-organizing feature map,SOM)進行Web服務聚類。
GWSC(GAT2VEC-based Web service classification):該方法考慮了Web 服務之間的結構關系和Web服務自身的屬性信息,獲得包含結構信息和屬性信息的Web服務表征向量。最后使用SVM算法實現對Web服務的分類。
MISR:該方法為本文提出的方法。采用高斯混合模型和Word2Vec算法獲得包含主題信息的詞向量表示,再結合Web服務的屬性信息,如標簽、流行度、共現系數,生成融合多維信息的Web 服務表征向量。該表征向量可以直接用于Web服務聚類和分類任務中。
Web服務聚類是一個無監督的學習過程,在聚類的過程中只能根據服務表征之間的相似性對服務進行劃分。因此要獲得較好的聚類效果,對Web 服務表征向量的質量要求更高。
在本實驗中,使用MISR 方法,將API 服務轉換成了對應的API 服務表征向量。同時,對Mashup 服務數據使用沒有添加流行度和共現系數的MISR 方法,也將其轉換為了對應的服務表征向量。之后,使用基本的-means 算法對不同方法所生成的Web 服務表征向量進行聚類。在實驗過程中,為了降低初始值的選取對-means算法效果的影響,本文對每組實驗重復了10 次,取實驗結果的平均值作為最終實驗結果。
從表2、表3 中發現,使用標簽信息增強的WTLDA 方法的效果要優于只使用LDA 對Web 服務建模的方法。這說明標簽信息確實能夠有效地提高Web 服務聚類的精度。同時,Word2Vec 和Doc2Vec模型的效果并沒有比LDA 主題模型的效果好,這可能表明前兩種方法所提取出的局部文本語義信息在實際Web服務聚類過程中并沒有比LDA提取出的主題信息更加有效。WT-LDA 和HDP-SOM 方法雖然采用了附加信息,但是由于所采用的基本方法仍然是基于主題模型的方法,實驗效果提升有限。本文方法在API 數據集上相比于LDA、Word2Vec、Doc2Vec、WT-LDA、HDP-SOM、GWSC方法在Micro-F1指標上分別有38.8%、54.5%、15.3%、33.3%、44.7%、9.7%的提升。這表明包含豐富信息的Web服務表征向量有效提高了Web服務聚類的效果。

表2 API服務聚類結果對比Table 2 Results of API services clustering

表3 Mashup服務聚類結果對比Table 3 Results of Mashup services clustering
服務分類與服務聚類不同在于服務分類是有監督的劃分方式。通過給定Web 服務的標準分類,使用機器學習等方法學習Web服務表征向量與其對應的類別之間的關聯規則。與文獻[14]相同,本文考慮使用支持向量機作為Web服務分類任務中的基本分類器。在實驗過程中,將選取的服務數據按照3∶1的比例劃分為訓練集和測試集數據,并且使用了10-折交叉驗證,以降低實驗誤差。使用GridSearch技術尋找SVM算法的最佳參數。
從表4、表5 可以看到,在同一個基本分類模型下,本文提出的Web 服務表征方法在Web 服務分類任務上取得了最好的效果。本文方法將Web服務中的功能主題信息和描述文檔中隱含的語義信息相結合,同時考慮了Web服務的標簽信息、流行度和共現信息。因此,生成的Web 服務表征能夠明顯地提升Web分類任務的效果。

表4 API服務分類結果對比Table 4 Results of API services classification

表5 Mashup服務分類結果對比Table 5 Results of Mashup services classification
本文方法不但考慮了Web服務功能層面上的信息,同時也考慮了Web服務其他附加信息,如標簽信息、流行度、共現信息。本節將驗證多維信息對實驗效果的影響。在API 數據集上進行Web 服務分類任務來驗證附加信息對Web服務表征向量的影響。
分別取數量最多的前類API服務作為本實驗的數據,其中=5,10,15,20。實驗設置與之前Web服務分類實驗相同,也采用了10-折交叉驗證的方式,以降低實驗誤差。使用添加了多維信息的Web服務表征向量和未添加多維信息的表征向量進行實驗對比,實驗結果如圖3所示。

圖3 Mashup服務分類結果對比Fig. 3 Results of Mashup services classification
從圖3可以看出,添加了多維信息的Web服務表征向量的效果明顯優于未添加多維信息的向量。這表明Web服務中所包含的多維信息能夠提高Web服務分類任務的效果。同時隨著API 服務類別數量的增加,實驗效果也在逐步降低,這是API 服務數量增加使得實驗數據分布不均衡導致的。
本文提出了一種融合多維度信息的Web服務表征方法。該方法能夠獲得Web服務主題信息與功能語義信息,進而融合多維度信息生成高效的服務表征向量。同時在真實數據集上驗證了包含Web服務多維信息的服務表征向量能夠有效地提升Web服務聚類和分類的效果。