?

基于GAT2VEC 的Web 服務分類方法*

2021-02-25 12:15劉建勛曹步清曹應成
軟件學報 2021年12期
關鍵詞:頂點分類節點

肖 勇,劉建勛,胡 蓉,曹步清,曹應成

1(服務計算與軟件服務新技術湖南省重點實驗室(湖南科技大學),湖南 湘潭 411201)

2(湖南科技大學 計算機科學與工程學院,湖南 湘潭 411201)

Web 服務因其跨語言、跨平臺、松散耦合、基于開放式標準等特點,成為SOA(service-oriented architecture)的主流實現技術.隨著SOA 架構和Web 服務相關標準的日趨成熟,網絡上可用的Web 服務越來越多.例如:截止到2020 年3 月20 日,ProgrammableWeb 網站上已經發布了7 961 個Mashup 和23 368 個Web API;而當開發人員希望檢索與消息傳遞相關的Mashup 時,ProgrammableWeb 的搜索引擎將返回1 695 個搜索結果.因此,在大量服務中快速、準確地發現和選擇所需要的服務,成為服務計算領域的關鍵問題之一.通常情況下,Web 服務缺少規范的形式化的描述模型,如Web 服務的描述文本內容過少、描述語言不規范等.前者使得服務缺乏足夠有效信息,難以被用戶發現;后者使得服務描述隨意性較大,可能導致相同的服務描述不一,而不同的服務卻描述相似,進一步增加了服務查找和發現的難度[1].目前,該問題已引起了眾多研究者的注意[2].其中,如何通過自動服務分類減少服務匹配過程中的候選服務數量,以提高服務查找和服務發現的準確性和效率,已成為了近年來的研究重點.

目前,關于Web 服務分類的研究主要以基于功能語義的服務分類方法為主.例如:Crosso 等人[3]將WSDL (Web service description language)中的元素進行分割去除停用詞后,歸至詞根,然后利用不同的分類算法進行分類.Katakis 等人[4]考慮了Web 服務的文本描述和語義標注,解決了Web 服務在其應用領域的自動分類問題.但是WSDL 文檔通常包含很少的描述內容,導致這些算法通常無法取得較滿意的分類效果.隨著機器學習的興起,文檔主題生成模型開始引起了眾多研究者的關注.Shi 等人[5]提出了一種考慮多重Web 服務關系的概率主題模型MR-LDA,其可對Web 服務之間相互組合的關系以及Web 服務之間共享標簽的關系進行建模.Cao 等人[6]通過注意力機制將BiLSTM 局部的隱狀態向量和全局的LDA 主題向量結合起來,提出一種基于主題注意力機制Bi- LSTM 的Web 服務分類方法.但是主題模型通常是基于大量的已知觀測樣本來推測隱含的后驗主題分布概率,需要大量的輔助信息.為了進一步利用有限的特征信息挖掘出Web 服務之間的隱含關系,越來越多的深度學習方法被引入到了服務分類領域.Ye 等人[1]將Web 服務描述文檔中的所有離散特征結合起來,利用Wide & Bi- LSTM 模型對Web 服務類別進行預測.Chen 等人[7]利用LSA 模型對移動應用內容文本進行全局主題建模,再通過BiLSTM 模型對內容文本進行局部隱藏表征,提出一種主題注意力機制增強的移動應用分類方法.但是這些深度學習的方法在耗費了大量計算資源的前提下,對服務分類準確度的提升并不明顯.總的來說,上述的方法與技術雖然提高了Web 服務分類的精度,但普遍存在以下兩個問題.

(1) 盡管考慮到了Web 服務描述文檔通常比較短、語料有限等問題,并提出挖掘描述文檔中詞語的語序和上下文信息或融合標簽等輔助信息的方法,更好地實現了短文本建模,但是這些方法利用的離散特征關聯性一般,且始終沒有較好地解決文檔語義稀疏的問題;

(2) 這些方法基本都依賴于文本描述信息和標簽等屬性信息,而未考慮Web 服務之間的結構交互關系.在實際情況中,Web 服務之間存在著豐富的對象和鏈接.例如:在ProgrammbleWeb 數據集中,存在兩個Mashup(200 Towns 和#haiku),它們都屬于Photos 類,然而二者的標簽和主題描述都不相似,因此很難將二者歸為一類.但是這兩個Mashup 在結構上都調用了同一個名為Twitter 的API.由此可見,結構交互信息在分類任務中起著相當重要的作用.

網絡表征學習(network representation learning,簡稱NRL)是最近提出的通過學習網絡節點連續、低維的潛在特征來解決稀疏性問題的一種重要方法.這些特征涵蓋了網絡的全局結構,并可以被提取到后續的機器學習任務中.其中,將Deepwalk[8]算法應用到網絡中提取特征并進行表征,成為一種常用的方法.它通常是先通過短隨機游走得到節點序列,然后輸入到SkipGram 模型中,得到最終的嵌入向量.直觀地說,鄰近的節點往往具有相似的上下文(序列),因此具有彼此相似的嵌入.這一基本思想在后來的若干方面得到了擴展[9,10].近年來,Yang 等人[11]證明了Deepwalk 等價于鄰接矩陣M的因式分解,并提出了一種通過分解文本關聯矩陣結合節點文本特征的TADW(text-associated deep walk)模型.Pan 等人[12]提出的TriDNR(tri-party deep network representation)同時使用結構、文本和嵌入的部分標簽信息來進行網絡表征.這些NRL 方法的出現,使得我們充分考慮Web 服務之間的結構交互關系,并同時融合結構關系和文本屬性的想法成為可能.在此基礎上,為了解決傳統Web 服務分類模型所存在的問題,本文提出一種基于GAT2VEC[13]的Web 服務分類方法(簡稱GWSC).通過從服務網絡圖中獲取包含組合調用等信息的結構上下文和服務自身的屬性上下文,GWSC 充分保持了Web 服務之間結構和屬性的鄰近度,并使用了單一神經層共同學習這些特征,從而通過融合多個信息源提升了Web 服務分類的精度.值得一提的是:由于GWSC 將屬性文本信息以拓撲結構化的形式來表示,使得在低維空間中學習到的屬性文本信息表征也可以重構出原有的服務關系網絡,從而可較好地解決文檔語義稀疏的問題.

本文第1 節具體介紹GWSC 方法.第2 節進行實驗評估及分析.第3 節介紹相關工作.第4 節對本文工作進行總結.

1 方法介紹

GWSC 方法框架如圖1 所示.首先,對于每個服務網絡圖中的頂點,我們通過隨機游走得到其相對于其他頂點的結構和屬性上下文;然后,將這兩種上下文語義信息結合起來,學習出一種既保留結構又保留屬性近似值的網絡嵌入表征;最后,將得到的表征向量輸入到SVM 模型當中進行分類預測.其方法框架如圖1 所示,具體來說,GWSC 由以下網絡生成、隨機游走、表征學習和SVM 分類這4 個階段組成.

Fig.1 GWSC method framework圖1 GWSC 方法框架

1.1 網絡生成

首先,我們考慮一個如圖2 所示的服務網絡圖G=(V,E,A),它由一組頂點V、一組邊E和一個屬性函數A:V→ 2C組成,其中,C是所有可能屬性的集合.

Fig.2 Service network graph圖2 服務網絡圖

例如:對于本文的Web 服務網絡,節點可以是Mashup,如果兩個Mashup 調用了同一個API,則認為這兩個Mashup 節點之間存在一條邊.而屬性可以是Mashup 的名稱、關鍵詞、標簽等.此外,在本文中,我們將預處理以后的描述文檔里所包含的核心語義信息也加入到了屬性集合中.我們的目標是學習一個低維網絡表示σ:V→ Rd,其中,d<<|V|是學習表征的維數,從而保存結構和屬性上下文信息;同時,σ也是為后續的分類任務提供的特征 輸入.在本文中,我們考慮G是一個齊次的、非加權的、部分屬性的圖.

然后,我們從服務網絡圖G中得到兩個圖.

1.結構連通圖Gs=(Vs,E),由邊集E中包含的頂點的子集Vs?V組成.如圖3 所示,我們把Vs中的頂點稱為結構頂點,而邊(ps,qs)∈E編碼了節點間的結構關系;

2.屬性二分圖Ga=(Va,C,Ea),如圖4 所示,它由3 部分構成.

(1) 與屬性相關聯的內容頂點Va?V的子集;

(2) 上述服務網絡圖定義中給出的可能屬性頂點集C;

(3) 將內容頂點連接到由函數A關聯的屬性頂點的邊集Ea:

Fig.3 Structural connected graph圖3 結構連通圖

Fig.4 Attribute bipartite graph圖4 屬性二分圖

定義1.兩個內容頂點u,v∈Ga只能通過屬性頂點到達.

在定義1 中,內容頂點之間的路徑包含內容頂點和屬性頂點.因此,包含在路徑中的內容頂點具有上下文關系,因為它們可以通過某些屬性頂點到達,這些內容頂點構成屬性上下文.我們方法遵循的是:“如果它們與相似的對象相連,那么這兩個實體是相似的”.這種現象可以在許多應用中觀察到,例如在二分圖“Mashup-標簽”中,“Mashup”被定義了“標簽”,如果兩個Mashup 被定義了相似的標簽,那么二者就是相似的.這種二分網絡結構在文獻[14]中也被使用過,它建立了文檔和文檔中的詞語之間的網絡模型.

1.2 隨機游走

總的來說,實體之間的相似性可以用幾種方式來衡量.例如,它可以根據圖中兩個節點的距離來測量:在圖4的屬性二分圖中,節點2 和節點8 都與節點1 有屬性連接,因此我們可以說它們與節點1 具有相等的相似性;但是有3 條連接節點1 和節點8 的路徑,而連接節點1 和節點2 的只有一條路徑,因此,節點1 和節點8 比節點1和節點2 更相似.

隨機游走的方法有很多[8-10,12,15],本文采用短隨機游走的方法,在Gs和Ga上進行隨機游走,從而獲得頂點的結構和屬性上下文,因為短隨機游走能夠有效地捕獲具有高相似度節點的上下文.

首先,我們通過在結構連通圖Gs上的隨機游走來捕獲結構上下文.對于每個頂點,通過γs次長度為λs的隨機游走來構造一個語料庫R.該上下文語料信息將被用于嵌入,目的是保持局部和全局的結構信息.我們把ri表示為隨機游走序列r∈R中的第i個頂點.例如,圖3 中的隨機游走路徑可以是:r=[2,3,4,3,1],步長為5,從頂點2 開始,結束于頂點1.

而在屬性二分圖Ga中,隨機游走從一個內容頂點開始,通過屬性節點跳轉到其他內容頂點.這樣,屬性頂點充當內容頂點之間的橋梁,從而確定內容頂點之間的上下文關系.即,哪些內容頂點是密切相關的.由于我們感興趣的是這些頂點在隨機游走中展現出的關聯度,而不是通過哪些屬性將它們連接起來,所以我們忽略了隨機游走中的屬性頂點.因此,游走只包含Va的頂點.屬性相似性較高的頂點組在隨機游走中可能經常出現在一起.類似于Gs,我們執行γa次長度為λa的隨機游走并構造一個語料庫W,wj是指隨機游走序列w∈W中的第j個頂點.例如,圖4 中具有屬性的隨機游走路徑可以是:[2,b,1,c,8,b,2,b,8].我們在路徑中跳過屬性節點,因此,相應的路徑是w=[2,1,8,2,8],步長為5,從頂點2 開始,以頂點8 結束.

1.3 表征學習

在得到結構和屬性上下文以后,我們使用SkipGram 模型共同學習基于這兩個上下文的嵌入.具體來說,我們從每個結構或屬性上下文中選擇頂點vx∈Vs|Va,并將其輸入到SkipGram.輸入頂點vx是一個獨熱編碼向量,同時也是目標頂點,輸出層產生關聯上下文頂點到給定輸入頂點的2c多項式分布.c是上下文大小,即在目標頂點之前或之后的預測頂點的數量.同樣,輸出頂點可以屬于結構頂點,也可以屬于屬性頂點,這取決于它們在隨機游走中的共現性.

GWSC 方法的最終目的是,能夠最大化目標頂點的結構和屬性上下文概率.與以往的研究[8,9]類似,我們假定當給定一個目標頂點時,其上下文頂點的概率彼此獨立.因此,我們的目標函數定義如下:

等式(1)可以寫成:

其中,r-c:rc和w-c:wc分別對應于R和W語料庫中隨機游走長度為2c的上下文窗口內的一系列頂點.公式的前半部分使用結構上下文進行學習,后半部分從屬性上下文中進行學習.如果|Va|=0,那么模型將變成Deepwalk,也就是說,只從結構中學習.當ri是結構上下文r中的中心頂點時,p(rj|ri)是第j個頂點的概率;而當wi是屬性上下文w中的中心頂點時,p(wt|wi)是第t個頂點的概率,這些概率可以用softmax函數來計算.概率p(rj|ri)可計算為

其中,φ(·),φ(·)分別表示上下文頂點或目標頂點.同樣的,也可以用等式(3)計算p(wt|wi).

由于需要對圖的所有頂點進行歸一化處理,使得計算量很大.因此,我們用分層的softmax函數[16]來進行計算.在這之后,使用Huffman 編碼來構造具有頂點作為葉節點的層次softmax的二叉樹[17].因此,為了計算概率,我們只需遵循從根節點到葉節點的路徑.所以,葉節點rj出現在結構上下文中的概率是:

其中,d=log|Vs|是樹的深度,sh是路徑中的節點,so為根節點,且sd=rj.此外,將p(rj|ri)建模為二進制分類器,可以使計算復雜度降至O(log|Vs|).這同樣適用于計算屬性上下文中頂點的概率.而考慮到我們是從兩個上下文中計算概率的,所以我們的整體計算復雜度應該是O(log|Vs|+log|Va|).

1.4 SVM分類

在得到了表征向量以后,我們需要將表征向量輸入到分類器中進行訓練.解決分類問題的方法有很多,主要包括決策樹、貝葉斯、K-近鄰、人工神經網絡、支持向量機(SVM)等.對于決策樹,數據的準備往往是簡單的,且易于通過靜態測試來對模型進行評測,但對于那些各類別樣本數量不一致的數據,信息增益的結果往往偏向于那些具有更多數值的特征.而貝葉斯所需估計的參數很少,對缺失數據不太敏感,算法也比較簡單,但需要知道先驗概率,且分類決策存在錯誤率.K-近鄰算法簡單有效,重新訓練的代價也較低,但該算法在分類時有個很明顯的缺點是:當樣本不平衡時,如一個類的樣本容量很大,而其他類樣本容量很小時,有可能導致當輸入一個新樣本時,該樣本的K個鄰居中大容量類的樣本占多數.人工神經網絡分類的準確度往往較高,并行分布處理能力較強,但通常應用于大規模數據集,且需要大量的參數,如網絡拓撲結構、權值和閾值的初始值,學習時間較長,甚至可能達不到學習的目的.相比之下,SVM 雖然缺乏對數據的敏感度,但可以解決高維和非線性問題,而且在提高了泛化性能力的基礎上,可以解決小樣本情況下的機器學習問題,避免了神經網絡結構選擇和局部極小點的情況.

由于本文的數據集較小,不適合用人工神經網絡進行分類,且存在類別樣本數分布不均的問題,例如在API數據集中,僅樣本數排名第一的Tools 類與樣本數排名第十的Science 類就相差了503 個樣本數,所以決策樹和K-近鄰算法在本文中也不適用.綜合考慮之下,我們最終選擇SVM 算法進行分類.具體步驟如下.

? 首先,對于k(k≥2)類問題,我們根據得到的表征向量和已知的數據構建樣本集(x1,y1),…,(xl,yl),xi∈Rn,i=1,…,l,yi∈{1,…,k},l表示樣本數;

? 然后,把類1 作為一類,其余k-1 類視為一類,自然地將k分類問題轉化為二分類問題,在訓練過程中,每個分類函數都需要所有樣本參與.其分類函數為

其中,上標表示第j個SVM 分類器的決策函數,和分別為第j個支持向量的參數和類別標號,bj為偏移量.對于待測樣本,若:

則輸入樣本屬于第l類;

? 最后,對所有樣本執行上述操作即可完成所有分類任務.

2 實驗評估及分析

2.1 數據集描述及處理

為評估模型,我們從ProgrammableWeb.com 網站上爬取了6 415 個Mashup 和12 919 個API 的信息,包括他們的名稱、描述文檔、主次分類等信息,基本的統計信息見表1、表2,完整的數據集可以在http://kpnm.hnust.cn/xstdset.html 網址上進行下載.

Table 1 Data statistics of Mashup表1 Mashup 數據統計信息

Table 2 Data statistics of API表2 API 數據統計信息

在爬取的數據中,類別為“Search”的Mashup 就有306 個,而類別“Cities”中僅僅包含了一個Mashup.同樣,類別為“Tools”的API 有790 個,而類別“Solar”中僅僅包含了一個API.因此,我們選取了數量最多的前10~50 類Mashup 和API 用于實驗,詳細的分布情況請見表3、表4.

Table 3 Top 10 categories with the largest number in Mashup表3 Mashup 數量最多的前10 類

Table 4 Top 10 categories with the largest number in API表4 API 數量最多的前10 類

由于在構建屬性二分圖時需要用到大量文本信息,為了提高分類的精確度,我們首先要對Mashup 和API的描述文檔進行預處理.過程如下.

(1) 分詞(tokenize):將每個單詞按照空格分開,且將單詞和標點符號也分開,使得文本中的單詞、字符變成單獨的單元;

(2) 去停用詞(stop words):去除英文中一些無意義的詞以及標點符號,如“a”“the”“to”“@”等;

(3) 詞干化處理(stemming):在英文文本中,同一個單詞會因為人稱、時態的不同而有不同的表現形式,如“adaptation”“adapted”“adapting”,它們實際上都是同一個單詞“adapt”.若將這些單詞看作是不同的單詞,那么之后的實驗結果的準確度將會降低,故需要進行詞干化處理.

在完成以上3 個步驟后,獲得了處理好的Mashup 和API 描述文檔.同時,我們可以注意到:Mashup 數據集中,最多的“Mapping”類有1 034 個,而排第二的“Search”類只有306 個.為防止數據集樣本分布不均影響實驗結果,我們隨機選取類別為“Mapping”的子集434 條作為其實驗數據.而API 數據集分布較為均勻,影響不大,不需要做相關處理,所有的數據集實驗統計見表5、表6.

Table 5 Experimental statistics of Mashup dataset表5 Mashup 數據集實驗統計

Table 6 Experimental statistics of API dataset表6 API 數據集實驗統計

2.2 評估標準

一般來說,Web 服務分類結果有以下4 種情況.

(1) 屬于類A的樣本被正確分類到類A,將這一類樣本標記為TP;

(2) 不屬于類A的樣本被錯誤分類到類A,將這一類樣本標記為FP;

(3) 不屬于類別A的樣本被正確分類到了類別A的其他類,將這一類樣本標記為TN;

(4) 屬于類別A的樣本被錯誤分類到類A的其他類,將這一類樣本標記為FN.

我們采用MacroF1 值和MicroF1 值作為性能評價指標,其中,Web 服務分類的MacroF1 值計算公式如下:

而Web 服務分類的MicroF1 值計算公式如下:

上述公式中,Precision 表示準確率,Recall 表示召回率,N表示分類的類別數.

2.3 對比方法

我們用GWSC 比較了最新的嵌入算法:兩種基于屬性內容的方法(Doc2vec 和LDA)、兩種基于結構關系的方法(Deepwalk 和Node2vec)以及一種同時使用結構關系和屬性內容的方法(TriDNR),且所有方法均采用SVM算法進行分類.

? Doc2vec[17]:Doc2vec 是一種無監督的神經網絡模型,用于學習句子、段落或文檔等可變長度文本的表示.該模型將每個單詞、句子和段落都映射到向量空間中,然后將段落向量和詞向量級聯或者求平均得到特征,從而同時學習單詞向量和文檔向量.我們將與每個頂點相關的文本輸入到模型中,并得到了每個頂點的表示;

? LDA[18]:LDA 是一種非監督機器學習技術,可以用來識別大規模文檔集或語料庫中潛藏的主題信息,并將文檔集或語料庫中每篇文檔的主題以概率分布的形式給出.它采用了詞袋的方法,這種方法將每一篇文檔視為一個詞頻向量,從而將文本信息轉化為了易于建模的數字信息;

? Deepwalk[8]:Deepwalk 是一種基于隨機均勻游走的方法,它僅利用結構信息來學習網絡中頂點的一維特征表示.該方法利用構造節點在網絡上的隨機游走路徑來模仿文本生成的過程,并提供一個節點序列,然后用Skip-Gram 模型對隨機游走序列中每個局部窗口內的節點對進行概率建模,最大化隨機游走序列的似然概率,從而學習節點的分布式表示;

? Node2vec[9]:Node2vec 類似于Deepwalk,主要的創新點在于改進了隨機游走的策略,定義了兩個參數p和q,在廣度優先搜索(BFS)和深度優先搜索(DFS)中達到一個平衡,BFS 用于探究圖中的結構性質,而DFS 則用于探究出相鄰節點之間的相似性,從而同時考慮到了局部和宏觀的信息,并且具有很高的適應性;

? TriDNR[12]:TriDNR 使用3 個信息源——網絡結構、頂點內容和標簽信息來學習頂點的表示.它結合了兩種模型:Deepwalk 從結構中學習表示,Doc2vec 用于捕獲與節點內容和標簽信息相關的上下文.最終表示是這兩個模型輸出的線性組合;

2.4 實驗結果

2.4.1 實驗設置

在實驗中,我們選擇70%的數據作為訓練集,30%的數據作為測試集.對于Mashup 數據集,我們將隨機游走次數γs和γa均設置為30,游走步長λs和λa均設置為120;表征的維度大小d設置為128,窗口大小c設置為5.對于API 數據集,我們將隨機游走次數γs和γa均設置為30,游走步長λs和λa均設置為120;表征的維度大小d設置為128,窗口大小c設置為5.為保證實驗的客觀性,GWSC 與其他方法之間共有的參數設置為相同的值,而其余的參數被設置為默認的最優值.

2.4.2 分類性能比較

我們分別選取了數量最多的前10~50 類Mashup 和API 進行實驗,實驗結果見表7、表8.此外,我們借助t-SNE 工具[19]基于PCA 降維技術對前20 類分類結果進行了可視化,其效果如圖5、圖6 所示.顯然,對于兩個數據集,本文所提出的GWSC 方法在MicroF1 值和MacroF1 值兩個指標上均要優于其余5 種方法.例如:當服務類別數為10 時,在Mashup 數據集上,GWSC 相比于Doc2vec,LDA,Deepwalk,Node2vec 和TriDNR 在MacroF1值上分別有135.3%,60.3%,12.4%,10.5% 和 4.3% 的提升; 而在API 數據集上,GWSC 相比于Doc2vec,LDA,Deepwalk,Node2vec 和TriDNR 在MacroF1 值上分別有137.2%,61.3%,14.3%,8.6%和1.1%的提升,效果顯著.具體來說:

(1) 隨著數據集所取分類的類別數增多,分類的效果逐漸下降.其原因可能是:

1) 分類的類別數越多,包含的信息就越多且越復雜,模型分類的難度也就越大;

2) 分類是按照每個類別包含的Mashup 或API 的數量進行排名的,而排名靠后的類別由于所包含的Mashup 或API 數量的減少,其所能利用的信息相對來說就會減少,從而影響分類效果;

(2) 基于結構關系的方法(Deepwalk 和Node2vec)其效果要遠優于基于屬性內容的方法(Doc2vec 和LDA).這個結果表明:對于Mashup 分類,結構信息比內容信息更重要.因為調用同一個API 的兩個Mashup 在功能需求上往往一樣,那么二者的類別就會更相似.同樣,對于API 分類,結構信息也比內容信息更重要.因為被同一個Mashup 調用的兩個API 在功能上往往需要滿足類似的需求,那么二者的類別也就會更相似;

(3) 對于Mashup 和API 兩個數據集,同時使用結構關系和屬性內容的方法(TriDNR,GWSC),其表現要明顯優于只使用單一信息的方法.這也就驗證了:對于同一個數據集而言,捕獲的信息越多,特征向量的表示往往就越準確,分類的效果也就會隨之提升;

兩組睡前均給予服用硝苯地平(福建中合醫藥股份有限公司生產,國藥準字H35020579),起始劑量為10 mg,2次/d,根據病情可酌情增加,最大劑量≤40 mg,3次/d。對照組在此基礎上口服氟伐他?。êUx瑞制藥有限公司生產,國藥準字H20070168),起始劑量40 mg,1次/d,最大劑量≤80 mg,1次/d?;诖?,觀察組加用纈沙坦(北京諾華制藥有限公司生產,國藥準字H20173014),起始劑量80 mg,1次/d,最大劑量≤160 mg,1次/d。

(4) GWSC 相比于TriDNR,在整體上有了一定幅度的提升.這表明:將屬性文本信息以結構化的形式來表示,確實有利于Mashup 和API 的分類效果.在GWSC 方法中,Mashup 和API 的屬性信息被構建成了二分圖,并以深度游走的方式嵌入到了表征向量中;

(5) 整體來說,Mashup 的分類效果要優于API 的分類效果.其原因可能是:

1) API 數據集比Mashup 數據集更大,種類和標簽都更加豐富,包含的信息更復雜,相對應的,數據集中的特征信息會更難以捕獲,分類的難度也就會越大;

2) 在Mashup 數據集中,每一個Mashup 都至少調用了一個API;而在API 數據集中,有部分API 并沒有被Mashup 調用,Mashup 數據集的結構更趨完整,且描述文檔更加規范,種類相對來說更為集中.

Table 7 Experimental results of Mashup dataset表7 Mashup 數據集實驗結果

Table 8 Experimental results of API dataset表8 API 數據集實驗結果

Fig.5 Visualization results with 20 categories classification of Mashup dataset圖5 Mashup 數據集20 分類可視化結果

Fig.6 Visualization results with 20 categories classification of API dataset圖6 API 數據集20 分類可視化結果

2.5 結構信息與屬性信息權重分析

為了驗證第2.4 節第(2)點所提出的結構信息比屬性信息更加重要的觀點,我們對GAT2VEC 框架進行了一些修改,從而實現對結構信息與屬性信息的權重分析.具體來說,在最終對結構路徑和屬性路徑進行向量表征時,我們不再以相同的權重對二者進行組合,而是分別設置不同的權重(從0.1 到0.9)進行實驗.例如,權重設置為0.1,表示在表征向量時,結構信息的權重設置為0.1,屬性信息的權重設置為0.9.全部實驗結果如圖7 和圖8 所示.

Fig.7 Analysis of the weight with the structure and the attribute information of Mashup dataset圖7 Mashup 數據集結構和屬性信息的權重分析

Fig.8 Analysis of the weight with the structure and the attribute information of API dataset圖8 API 數據集結構和屬性信息的權重分析

具體來說:

(1) 整體而言,無論是Mashup 數據集還是API 數據集,隨著結構屬性所占權重的提升,分類效果在不斷上升;但是當權重超過0.6 或0.7 左右時,分類效果開始下降.這說明對于Mashup 和API 的Web 服務分類來說,結構信息在一定程度上來說確實比屬性信息更重要.另外,對于當權重超過一定閾值以后,分類效果會出現下降的情況,其可能的原因是權重設置的越高,屬性信息就會相對減少,整體的數據集信息也會隨之減少,從而影響分類效果;

(2) 總的來說,數據集所取分類的類別數越多,其分類效果受結構信息與屬性信息權重的影響越大,其可能原因是:1) 分類類別越多,數據集就越大且越復雜,更容易受到結構信息與屬性信息的影響;2) 分類是按照每個類別包含的Mashup 或API 的數量進行排名的,而排名靠后的類別由于所包含的Mashup或API 數量的減少,其擁有的結構調用信息相對來說就會減少,從而影響分類效果.

2.6 γ和λ參數分析

在向量表征模型中,增加游走次數或游走步長可以收集更多的上下文信息,從而學習更精確的表示.但是過多的游走次數和較大的游走步長都不合適,因為容易產生噪聲數據,從而導致較差的網絡表示.在本文中,我們針對不同隨機游走次數γ和游走步長λ下的Mashup 和API 分類進行實驗比較,以確定最佳分類效果下的參數值.

2.6.1 Mashup 數據集分析

首先,選擇不同游走次數γ(10,20,30,40,50)進行Mashup 分類實驗,游走步長λ暫設為方法的默認值80,得到的MicroF1 值和MacroF1 值如圖9 所示.

Fig.9 Number of walk parameter analysis of Mashup dataset圖9 Mashup 數據集游走次數參數分析

從實驗結果可以看出:

1) 對于Mashup 數據集的10 分類問題,當游走次數γ設置為30 時,Mashup 數據集的分類效果最好;

2) 對于Mashup 數據集的20~50 分類問題,隨著游走次數的增加,MicroF1 值和MacroF1 值也逐漸增加;但當γ超過40 的時候,分類效果開始下降.

其次,我們選擇不同的游走步長λ(40,80,120,160,200)進行Mashup 分類實驗,γ設置為上述最佳值,得到的MicroF1 值和MacroF1 值如圖10 所示.

Fig.10 Walk length parameter analysis of Mashup dataset圖10 Mashup 數據集游走步長參數分析

從實驗結果可以看出:

1) 對于Mashup 數據集的10 分類問題,游走步長λ在120 附近增加或減少時,分類效果有所下降;

2) 對于Mashup 數據集的20~50 分類問題,MicroF1 值和MacroF1 值隨著游走步長的增加呈現出上升趨勢;但當λ超過160 的時候,分類效果開始呈下降趨勢.

總體來說,最佳游走步長的數值相對來說較大,這是因為Mashup 的服務網絡圖較為稀疏,需要較長距離游走才可以捕獲到有價值的網絡表征信息.

2.6.2 API 數據集分析

對于API 數據集,我們選擇不同游走次數γ(10,20,30,40,50)進行API 分類實驗,游走步長λ同樣暫設為方法的默認值80,得到的結果如圖11 所示.

Fig.11 Number of walk parameter analysis of API dataset圖11 API 數據集游走次數參數分析

從實驗結果可以看出:

1) 對于API 數據集的10 分類、20 分類問題,隨著游走次數的增加,MicroF1 值和MacroF1 值先上升后下降;當游走次數γ設置為30 時,API 的分類效果最好;

2) 對于API 數據集的30~50 分類問題,當γ設置為40 時,分類效果達到最佳.

接下來,我們選擇不同的游走步長λ(40,80,120,160,200)進行API 分類實驗,γ設置為上述最佳值,得到的MicroF1 值和MacroF1 值如圖12 所示.

Fig.12 Walk length parameter analysis of API dataset圖12 API 數據集游走步長參數分析

從實驗結果可以看出:(1) 對于API 數據集的10 分類、20 分類問題,當游走步長λ設置為120 時,API 的分類效果最好;(2) 對于API 數據集的30~50 分類問題,MicroF1 值和MacroF1 值隨游走步長的增加先上升后下降,最佳的游走步長為160.

2.7 表征維度分析

適當地增加表征維度的大小可以學習到更多的特征,從而得到更好的分類效果.但隨著特征空間維度增加,整個特征空間會變得越來越稀疏;同時,分類器一旦學習了訓練數據的噪聲和異常,模型就會出現過擬合現象,大大影響分類效果.在本節中,我們設計了多組實驗對本文表征學習中涉及的表征維度d進行參數調整,以使分類效果達到最好.我們選取了5 個不同的維度(32,64,128,256,512)進行對比實驗,結果如圖13、圖14 所示.

Fig.13 Representation dimension analysis of Mashup dataset圖13 Mashup 數據集表征維度分析

Fig.14 Representation dimension analysis of API dataset圖14 API 數據集表征維度分析

首先,對于Mashup 數據集可以看到:

1) 在10 分類問題中,表征維度d在128 附近增加或減少時,分類效果有所下降;

2) 在20~50 分類問題中,MicroF1 值和MacroF1 值隨著游走步長的增加呈現出上升趨勢;但當表征維度超過256 的時候,分類效果開始呈下降趨勢.

其次,對于API 數據集可以看到:

1) 在10 分類、20 分類問題中,分類效果隨著表征維度的增加先上升后下降;且當表征維度設置為128的時候,分類效果達到最佳;

2) 在30~50 分類問題中,當表征維度d設置為256 時,MicroF1 值和MacroF1 值達到最大值.

3 相關工作

隨著服務計算和云計算的發展,互聯網上出現了多種多樣的網絡服務.其中,Web 服務的發現和挖掘成為一個熱門的研究方向.研究表明:正確高效的Web 服務分類能夠有效提高Web 服務發現的性能[20].目前,對Web 服務自動分類的研究吸引了不少研究者的注意,主要有基于功能語義的服務分類與基于QoS(quality of service)的服務分類.

目前,基于功能語義的服務分類方法已有大量的研究[21,22].Kuang 等人[23]提出一種基于語義相似度的Web服務分類方法,通過采用自適應反向傳播神經網絡模型訓練服務的特征向量及其類別,從而對Web 服務進行分類.Miguel 等人[24]提出一種基于啟發式的分類系統,通過將新服務與已分類的服務進行比較,預測出新服務可用分類類別的適當性,并生成候選類別的排序列表來進行分類.Crosso 等人[3]利用Web 服務的類別和在標準描述中常見的信息之間的連接,實現了自動Web 服務分類.Katakis 等人[4]考慮了服務的文本描述和語義標注,解決了Web 服務在其應用領域的自動分類問題,并提出了通過擴展特征向量和集成分類器來提高整體分類精度的方法.Kumar 等人[25]通過匹配Web 服務的服務名稱、輸入和輸出參數、服務描述,確定了它們在本體中的位置和意義,最終利用本體Web 語言對Web 服務進行分類.Shi 等人[5]提出一種考慮多重Web 服務關系的概率主題模型MR-LDA,其可對Web 服務之間相互組合的關系以及Web 服務之間共享標簽的關系進行建模.Cao 等人[6]通過注意力機制將BiLSTM 局部的隱狀態向量和全局的LDA 主題向量結合起來,提出一種基于主題注意力機制Bi-LSTM 的Web 服務分類方法.Ye 等人[1]利用Wide & Bi-LSTM 模型對Web 服務類別進行深度預測,挖掘Web服務描述文檔中詞語的語序和上下文信息.Chen 等人[7]針對富含全局主題信息與局部語義信息的移動應用內容表征文本,引入注意力機制區分其不同單詞的貢獻度,提出一種主題注意力機制增強的移動應用分類方法.

此外,基于QoS 的Web 服務分類主要考慮Web 服務的質量,通常使用到的QoS 包括吞吐量、可用性、執行時間等.Moraru 等人[26]提出一個將語義技術與邏輯推理相結合的混合系統(即OpenCyc),其通過與數值微積分進行分類、評估,推薦QoS 感知Web 服務.Makhlughian 等人[27]提出了一個整體的服務選擇和排序,該方法首先根據用戶的QoS 要求和偏好將候選Web 服務分類到不同的QoS 級別,然后通過語義匹配對最合適的候選服務進行匹配.TF 等人[28]提出了一種基于QoS 參數和KNN(K-nearest neighbors)算法的Web 服務有效選擇方法,并通過加入新的并行分類模型,提高了系統的性能.

上述方法考慮到了Web 服務描述文檔中的長度、有限語料庫和稀疏特征等問題,并在服務語料庫的訓練過程中引入了輔助信息(如詞分類信息、標簽信息等)[29],但是它們并沒有考慮到Web 服務之間豐富的鏈接結構關系.

近年來,NRL 技術的不斷成熟為解決此類問題提供了良好的思路,并使得機器學習任務(如分類、預測和推薦)在網絡中的應用成為了可能.NRL 的一種常見方法是,使用節點的內容或屬性信息來學習圖的嵌入向量,例如深度神經網絡模型SkipGram[30]和Le 提出的段落向量模型[31]等.

當利用來自結構和屬性兩者的信息時,NRL 所學習的表示往往會更加精確.屬性信息的引入,使得模型能夠利用上下文信息來學習稀疏連接的、甚至斷開的節點的嵌入;而結構信息的引入,使得模型能夠在學習的嵌入中保持節點的結構相似性.在這兩個信息源的相輔相成之下,節點的低維嵌入學習會更加精確.Yang 等人[11]表明了Deepwalk 等價于分解鄰接矩陣M,并提出一種名為TADW 的模型,該模型通過對文本相關的矩陣進行分解來融合節點的文本特征.盡管TADW 已經取得的不錯的效果,但存在幾個局限性:(1) 它分解近似矩陣,因此表示較差;(2) 它高度依賴于計算昂貴的奇異值分解(SVD);(3) 它不適用于大型的網絡表征.

近幾年來,人們提出了各種利用標簽信息來學習嵌入的半監督學習方法[12,32].標簽是與頂點相關聯的類,用于對學習嵌入的分類器進行訓練,以標記非標記節點.結果表明:通過在學習過程中加入標簽,嵌入效果將會更好.使用標簽信息的原因是:具有相似標簽的節點往往具有很強的互連性和屬性的高度相似性,因此也應該具有相似的嵌入.Pan 等人[12]提出的TriDNR 使用了3 種信息來源:結構、文本和嵌入的部分標簽.該模型使用兩層神經網絡:第1 層基于Deepwalk 學習基于結構的表示,第2 層使用Doc2vec[17]學習內容和部分標簽的表示.最后的表示是兩者的線性組合.

然而,上述方法只適用于同構網絡.最新的NRL 方法學習了異構網絡中節點的表示.Dong 等人[33]提出了Metapath2vec,該模型利用基于元路徑的隨機游走來生成網絡中不同類型節點之間的語義關系.然而,這項工作忽略了相似節點之間的關系,如論文之間的引用等.預測文本嵌入(PTE)[14]學習了一個包含文字、文檔和標簽的異構文本網絡嵌入.隨著網絡表征學習的廣泛應用,通過融合文本屬性和結構網絡信息來提升分類精度的思想得以實現.

4 結 論

本文提出一種基于GAT2VEC 的Web 服務分類方法GWSC,它使用網絡結構和頂點屬性來學習服務網絡圖的表征向量,并采用一種新的方法來捕獲屬性內容.首先,它從網絡中提取結構上下文,并從屬性二分圖中提取屬性上下文;然后,使用一個淺層神經網絡模型,從這兩個上下文中聯合學習一個表征向量,通過對與網絡相關的多個信息源進行建模,并采用適當的學習方法,使學習得到的信息與原始輸入圖的信息盡可能保持一致;最后,采用SVM 分類器進行分類.在真實世界數據集上的廣泛實驗表明:我們的方法能夠準確地表征圖中頂點的結構和屬性上下文,進而提高了Web 服務分類精度.對于未來的工作,我們將會考慮利用與不同類型頂點相關的不同信息擴展GWSC 來學習異構網絡中的頂點表示.

猜你喜歡
頂點分類節點
CM節點控制在船舶上的應用
過非等腰銳角三角形頂點和垂心的圓的性質及應用(下)
過非等腰銳角三角形頂點和垂心的圓的性質及應用(上)
分類算一算
基于AutoCAD的門窗節點圖快速構建
概念格的一種并行構造算法
分類討論求坐標
數據分析中的分類討論
教你一招:數的分類
抓住人才培養的關鍵節點
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合