陳佳佩,武 浩,秦紹偉,彭偉樂,徐 立
(云南大學(xué) 信息學(xué)院,云南 昆明 650500)
Web Mashup[1]是通過組合來自不同Web 源的內(nèi)容、表示或應(yīng)用程序功能而生成的Web 應(yīng)用程序,其目標(biāo)是結(jié)合這些資源創(chuàng)建有用的新應(yīng)用程序或服務(wù).Mashup 有簡(jiǎn)單、高可用和易于訪問等特點(diǎn),且其簡(jiǎn)單性優(yōu)于功能完整性和完全可擴(kuò)展性[2].在開發(fā)Mashup 的過程中,Web API 通常提供Mashup 最重要的應(yīng)用程序功能,合理選擇滿足開發(fā)需求的Web API 不僅可以提高開發(fā)效率,且能定制個(gè)性化功能.如圖1 中的Mashup:breakout(https://www.programmableweb.com/mashup/breakou t)作為一個(gè)移動(dòng)應(yīng)用程序,允許用戶瀏覽和搜索不同的圖書標(biāo)題,該應(yīng)用程序集成了一些來自不同服務(wù)提供商的Web API,如Google Drive API、Gmail API、Google Sheets API 和Stack Web API.
圖1 Mashup:breakout 的調(diào)用情況Fig.1 The invocation of Mashup:breakout
如今市場(chǎng)內(nèi)公開可用的Web API 數(shù)量眾多,如互聯(lián)網(wǎng)上最大的Web API 統(tǒng)計(jì)在線注冊(cè)平臺(tái)ProgrammableWeb(https://www.programmableweb.com)已有20 000 余個(gè)在冊(cè)Web API 和8 000 余個(gè)在冊(cè)Mashup 應(yīng)用,涵蓋超過500 個(gè)應(yīng)用類型.面對(duì)如此規(guī)模龐大、種類繁雜的Web API 庫,如何合理找到滿足需求的Web API 成為開發(fā)Mashup 應(yīng)用程序面臨的關(guān)鍵性技術(shù)問題.現(xiàn)有的Web API 推薦技術(shù)主要分為基于協(xié)同過濾[3]、基于內(nèi)容[4]及基于混合模型[5]的推薦.基于內(nèi)容的推薦主要關(guān)注Mashup的語義特征,挖掘其描述信息,但其對(duì)Mashup 描述文檔的依賴度較高,文檔信息的缺失可能大大削弱模型的推薦準(zhǔn)確性;基于協(xié)同過濾的推薦則是對(duì)需求的相似性進(jìn)行計(jì)算,卻忽略了Mashup 和Web API 間的匹配關(guān)系;基于混合模型的推薦致力于將深度學(xué)習(xí)模型與傳統(tǒng)模型相結(jié)合,以期提供更加準(zhǔn)確的推薦.以上方法均忽略了Web API 的質(zhì)量屬性,作為影響用戶選擇API 的關(guān)鍵因素[6-7],Web API 質(zhì)量屬性往往會(huì)對(duì)推薦結(jié)果產(chǎn)生重要的影響,這種特征的缺失導(dǎo)致它們無法訓(xùn)練出一個(gè)性能良好的模型.如何利用Web API 質(zhì)量屬性進(jìn)行建模從而有效提高推薦準(zhǔn)確性,成為亟待解決的下一關(guān)鍵問題.
隨著深度學(xué)習(xí)概念的提出,大量的深度學(xué)習(xí)模型被應(yīng)用于上下文特征的表示,BERT(Bidirectional Encoder Representations from Transformers)[8]等預(yù)訓(xùn)練模型均取得了良好的性能,且自監(jiān)督的訓(xùn)練方式使這些模型無需設(shè)計(jì)特定于任務(wù)的架構(gòu)而只需針對(duì)特定任務(wù)進(jìn)行微調(diào),即可取得不錯(cuò)的性能.鑒于此,本文提出了一種結(jié)合BERT 預(yù)訓(xùn)練模型和Web API 多維質(zhì)量感知建模的特征增強(qiáng)方法,從而利用Web API 自身質(zhì)量屬性提高推薦的準(zhǔn)確性和有效性.
本文的主要貢獻(xiàn)如下:
(1)提出結(jié)合BERT 預(yù)訓(xùn)練模型和基于自注意力機(jī)制質(zhì)量特征融合的推薦模型(Quality Aware Recommendation,QAR);
(2)對(duì)Web API 的多維質(zhì)量信息進(jìn)行建模,將Web API 的多維質(zhì)量進(jìn)行稀疏編碼處理成嵌入向量表示和Multi-hot 表示;
(3)模型訓(xùn)練時(shí)使用負(fù)采樣和BPR(Bayesian Personalized Ranking)損失函數(shù)對(duì)模型性能進(jìn)行優(yōu)化.
Web API 推薦的主要價(jià)值是簡(jiǎn)化開發(fā)者在開發(fā)應(yīng)用時(shí)面臨成千上萬的Web API 而產(chǎn)生的選擇問題,并指明當(dāng)前Web API 的流行情況以供開發(fā)者參考.如何高效、快速、準(zhǔn)確地推薦Web API 是現(xiàn)在研究人員面臨的主要問題和挑戰(zhàn).本文主要從以下3 個(gè)方面總結(jié)了Web API 推薦的相關(guān)工作和研究:基于內(nèi)容的推薦、基于協(xié)同過濾的推薦和基于混合方法的推薦.
基于內(nèi)容的推薦[9-11]該類別是將給定的Mashup 需求和候選Web API 的文本描述利用詞頻和逆文本頻率(TF-IDF)、主題模型等相關(guān)技術(shù)進(jìn)行向量化表示,最后計(jì)算特征之間的相似性進(jìn)行推薦.文獻(xiàn)[9]提出了一種具有隱式相關(guān)正則化的概率矩陣分解方法來解決推薦問題并增強(qiáng)推薦多樣性.該方法開發(fā)了一個(gè)潛在變量模型,通過分析API 的共同調(diào)用模式以揭示API 之間的潛在相關(guān)性.文獻(xiàn)[10]通過結(jié)合協(xié)同過濾和文本內(nèi)容的方法,將Mashup 和Web API 的調(diào)用交互及其功能信息集成到一個(gè)深度神經(jīng)網(wǎng)絡(luò)中用于表征Mashup 和Web API 的復(fù)雜關(guān)系.文獻(xiàn)[11]提出了一種通過現(xiàn)實(shí)世界數(shù)據(jù)整合、文本挖掘和自然語言處理技術(shù)自動(dòng)生成Mashup 的方法,主要考慮Web API 的相關(guān)性和流行性建立度量模型,對(duì)相似的Web API進(jìn)行度量以提高推薦的有效性.
基于協(xié)同過濾的推薦[12-14]協(xié)同過濾方法通過挖掘Mashup 和Web API 的潛在相關(guān)關(guān)系從而實(shí)現(xiàn)更好的推薦.文獻(xiàn)[12]利用開發(fā)者的開發(fā)歷史調(diào)用記錄進(jìn)行相似度匹配,進(jìn)而給開發(fā)者推薦感興趣的Web API;文獻(xiàn)[13]提出了一種基于混合協(xié)同過濾技術(shù)的時(shí)間稀疏感知服務(wù)推薦方法,通過區(qū)分時(shí)間度量和穩(wěn)定度量,將時(shí)間影響考慮到經(jīng)典的基于鄰域的CF 模型中,以挖掘服務(wù)與稀疏矩陣之間的時(shí)間相似性.文獻(xiàn)[14]提出了一種依據(jù)用戶過去的評(píng)價(jià)和經(jīng)驗(yàn)預(yù)測(cè)服務(wù)質(zhì)量的協(xié)同過濾方法.
基于混合方法的推薦[15-18]為了更好地提高模型的推薦性能,有些研究使用了多種方法混合進(jìn)行推薦.在眾多混合模型中,文獻(xiàn)[15]提出了一種基于關(guān)鍵詞驅(qū)動(dòng)的Web API 推薦方法,該方法通過關(guān)鍵詞驅(qū)動(dòng)和兼容性感知得到多個(gè)API 組進(jìn)行推薦,使其既能滿足App 開發(fā)者的功能需求,又能返回一組兼容的Web API 列表以供開發(fā)人員進(jìn)行選擇.文獻(xiàn)[16]提出了一種基于文本擴(kuò)展和深度模型的服務(wù)推薦方法,并利用基于具有兩種注意力機(jī)制的LSTM 模型進(jìn)行推薦以幫助選擇最合適的服務(wù).文獻(xiàn)[17]提出了一種基于圖卷積網(wǎng)絡(luò)的端到端的SVGAE(語義變分圖自動(dòng)編碼器)方法.該方法使用doc2vec 處理API 的文本描述,加入了API 的邊信息,利用Mashup 中的API 組合關(guān)系構(gòu)建API圖進(jìn)行推薦.文獻(xiàn)[18]提出了一種特征表示增強(qiáng)的Web API 推薦方法高效地進(jìn)行Web API 推薦.
本文提出的QAR 模型利用BERT 模型作為文本編碼器對(duì)Web API 的描述文本進(jìn)行特征提取,并通過自注意力機(jī)制將其與Web API 的其余質(zhì)量信息進(jìn)行融合,得到增強(qiáng)特征;之后將該特征與基于Mashup 描述文本所得的文本特征向量做內(nèi)積計(jì)算相關(guān)度,從而進(jìn)行推薦,其結(jié)構(gòu)如圖2 所示.其中,vm是經(jīng)文本編碼器提取的Mashup 文檔特征向量,va是Web API 的多維信息融合增強(qiáng)特征向量.vs′是經(jīng)文本編碼器獲得的Web API 文檔表示向量,vs是Web API 的嵌入表示向量.虛線框部分為API質(zhì)量融合模塊,q′是拼接后Web API 的質(zhì)量Multihot 特征,vq′是Multi-hot 特征經(jīng)全連接層后得到的密集向量表示,vq是稀疏質(zhì)量信息融合后的Web API 的質(zhì)量特征.
圖2 QAR 模型結(jié)構(gòu)Fig.2 The structure of QAR model
2.1 Web API 質(zhì)量信息QoS 建模
2.1.1 質(zhì)量特征提取 Web API 質(zhì)量信息是影響用戶在開發(fā)Mashup 時(shí)選擇Web API 的關(guān)鍵[19].例如,設(shè)備特定情況作為最重要的Web API 質(zhì)量信息之一,如果某個(gè)Web API 需要特定設(shè)備才能調(diào)用,而開發(fā)者并沒有所要求的設(shè)備時(shí),他們將會(huì)停止調(diào)用該Web API,并選擇其他功能相似但沒有特定設(shè)備要求的Web API.服務(wù)質(zhì)量(Quality of Services,QoS)從非功能性方面描述了Web API 的質(zhì)量信息,一般包括性能、可靠性、可用性等指標(biāo),服務(wù)質(zhì)量的好壞直接影響用戶對(duì)API 的使用體驗(yàn),故也是用戶進(jìn)行Web API 選擇時(shí)的重要考慮因素.因此,本文結(jié)合QoS 信息對(duì)Web API 質(zhì)量信息進(jìn)行建模,將質(zhì)量屬性進(jìn)行提取并分別做Multi-hot 表示和稀疏嵌入處理,以增強(qiáng)Web API 的特征表示.
首先,通過對(duì)從網(wǎng)絡(luò)爬取到的ProgrammableWeb數(shù)據(jù)集進(jìn)行清洗和處理,得到Web API 對(duì)應(yīng)的12種質(zhì)量信息:主要類別(Primary Category)、次要類別(Secondary Category)、支持的請(qǐng)求格式(Supported Request Formats)、支持的響應(yīng)格式(Supported Response Formats)、架構(gòu)風(fēng)格(Architectural Style)、范圍(Scope)、SSL 支持情況(SSL Support)、設(shè)備特定情況(Device Specific)、是否非官方的Web API(Is This An Unofficial API)、是否超媒體 Web API(Is This a Hypermedia API)、是否限制訪問(Restricted Access)、Web API 設(shè)計(jì)是否非專有(Is the API Design Non-Propritary),詳細(xì)內(nèi)容如表1 所示.
表1 Web API 質(zhì)量屬性情況Tab.1 The quantity of Web API’s attributes
對(duì)于 Web API 的主要類別、次要類別、架構(gòu)風(fēng)格、范圍情況、支持的請(qǐng)求格式、支持的響應(yīng)格式等6 個(gè) Web API 的質(zhì)量信息,其對(duì)應(yīng)的屬性類別數(shù)目較多且各不相同,故將該類質(zhì)量信息對(duì)應(yīng)屬性分別做稀疏編碼,通過嵌入查詢得到相應(yīng)向量表示,然后將其相加得到質(zhì)量信息表示,如下式所示:
其中,T為對(duì)應(yīng)的Web API 的質(zhì)量信息嵌入表,sik為第i個(gè)Web API 對(duì)應(yīng)質(zhì)量信息中的第k個(gè)屬性類別編號(hào),F(xiàn)為實(shí)現(xiàn)查找對(duì)應(yīng)向量的函數(shù),hi為Web API 對(duì)應(yīng)的質(zhì)量屬性類別的嵌入表示,qhi為最終得到的質(zhì)量信息表示.
設(shè)備特定情況、SSL 支持情況、是否非官方的Web API,是否超媒體Web API,是否限制訪問和Web API 設(shè)計(jì)是否非專有這6 個(gè)Web API 質(zhì)量信息只有無(數(shù)據(jù)缺失)、是和否3 種情況,故將這6類質(zhì)量信息轉(zhuǎn)換成 One-hot 表示.無(數(shù)據(jù)缺失)、是和否3 種情況分別表示為[0,0],[1,0],[0,1],再將這6 個(gè)One-hot 表示進(jìn)行拼接得到Multi-hot 向量作為質(zhì)量表示,如下式所示:
其中,qSSL、qdevice、qaccess分別對(duì)應(yīng)SSL 支持情況、設(shè)備特定情況和是否限制訪問(需要提供商批準(zhǔn))的One-hot 表示,q′是對(duì)應(yīng) One-hot 向量拼接后的Multi-hot 表示.例如一個(gè)Web API 其設(shè)備特定情況、SSL 支持情況、是否非官方的Web API、是否超媒體Web API、是否限制訪問、Web API 設(shè)計(jì)/描述是否非專有對(duì)應(yīng)的質(zhì)量信息為[yes,no,no,yes,yes,null],經(jīng)轉(zhuǎn)換拼接后的表示q′為 [1,0,0,1,0,1,1,0,1,0,0,0].最后將q′經(jīng)過一個(gè)全連接層d即可得到質(zhì)量屬性特征,即vq′=d(q′).
2.1.2 質(zhì)量特征融合 不同特征融合是特征增強(qiáng)的常用手段.在提取Web API 的不同質(zhì)量特征后,如何有效地處理特征將直接決定模型的性能.深度學(xué)習(xí)中的注意力機(jī)制本質(zhì)上類似于人類視覺的選擇性注意力機(jī)制,其核心目標(biāo)是從大量信息中為當(dāng)前任務(wù)目標(biāo)選擇更關(guān)鍵的信息.為此本節(jié)采用自注意力機(jī)制對(duì)不同質(zhì)量信息進(jìn)行特征融合.如圖3 所示,本文將獲得的Web API 對(duì)應(yīng)的不同種質(zhì)量信息qhi通過一個(gè)自注意力層后輸出增強(qiáng)的質(zhì)量特征vq.
圖3 Web API 的質(zhì)量特征融合Fig.3 The quantity feature fusions of Web API
為了區(qū)分Web API 中不同質(zhì)量特征對(duì)推薦結(jié)果的貢獻(xiàn),利用注意力機(jī)制自動(dòng)為每個(gè)特征向量分配不同的權(quán)重,如下式所示:
其中,qhi是第i個(gè)Web API 對(duì)應(yīng)的質(zhì)量嵌入向量表示,αi是通過自注意力機(jī)制處理后得到的權(quán)重,其計(jì)算過程如下式所示:
其中,U∈Rd,W∈Rd×c,b∈Rd是注意力模塊的初始化參數(shù),d為嵌入向量維度,c為注意力單元個(gè)數(shù),UT為U的轉(zhuǎn)置,exp 為以自然常數(shù)e 為底的指數(shù)函數(shù),tanh 為雙曲正切函數(shù).
最后,融合質(zhì)量信息與文本描述信息的得到Web API 的增強(qiáng)特征va.其中α是質(zhì)量模塊與文本描述信息模塊的權(quán)重參數(shù).
2.2 文本特征提取Transformer 模型在自然語言處理任務(wù)中表現(xiàn)出出色的性能,本文使用預(yù)訓(xùn)練的Transformer 基礎(chǔ)模型BERT[8].BERT 的核心思想是通過預(yù)訓(xùn)練為未標(biāo)記的文本提供基于上下文信息的雙向特征表示,即在海量語料的基礎(chǔ)上運(yùn)行自監(jiān)督學(xué)習(xí)方法為詞來學(xué)習(xí)一個(gè)好的特征表示.BERT 預(yù)訓(xùn)練模型僅通過微調(diào)輸出層就可以在很多自然語言處理問題上取得非常好的效果,將其用作文本特征提取器,可以加快收斂速度,增強(qiáng)文本語義特征表示,提高模型的性能.
為了更好地利用BERT 模型,本文將最后5 個(gè)隱藏狀態(tài)中的“[cls]”標(biāo)簽串聯(lián)起來作為文本特征表示.如圖4 所示,首先將Mashup 和Web API 的功能文本描述信息Mashup Text、Web API Text 輸入到BERT 模型中,再將得到的ei進(jìn)行拼接得到處理后的Mashup 文本特征表示vm和Web API 文本特征表示vs.其中,ei是Transformer 模型第i層中以“[cls]”標(biāo)記的空間的隱藏狀態(tài),文本特征由最后5層e=[e1,e2,e3,e4,e5]拼接然后通過一個(gè)全連接層得到.Mashup 的文本描述信息經(jīng)過BERT 模型得到的em=[em1,em2,em3,em4,em5],完成拼接后通過一個(gè)全連接層,即vm=d(em)獲得其文本特征.同樣地,Web API 的文本描述特征vs也經(jīng)相同處理并經(jīng)過全連接層d(es)得到.
圖4 文本特征提取Fig.4 The encoder of text feature
2.3 損失函數(shù)和負(fù)采樣本文使用BPR 損失函數(shù)來訓(xùn)練模型,損失函數(shù)如下式所示:
其中,r+是正樣本,對(duì)應(yīng)Mashup 調(diào)用的真實(shí)Web API,r-是負(fù)樣本,ru是Mashup 調(diào)用的真實(shí)Web API 的集合,L為對(duì)數(shù)函數(shù)log,S為sigmoid 激活函數(shù).對(duì)于每個(gè)正樣本對(duì)<u,r+>,在訓(xùn)練模型時(shí)通常需要采集上百個(gè)負(fù)樣本進(jìn)行訓(xùn)練.為了提高訓(xùn)練速度,本節(jié)首先對(duì)負(fù)樣本集合Ou,t中的每個(gè)標(biāo)簽計(jì)算其f(u,t-),然后選擇具有最大值的樣本,即r=計(jì)算損失函數(shù)并更新模型參數(shù).例如,對(duì)于每一對(duì)<u,t+>,本節(jié)在采樣階段準(zhǔn)備n個(gè)文檔-負(fù)樣本對(duì),訓(xùn)練階段計(jì)算所有負(fù)樣本與Mashup文檔的內(nèi)積值,然后選取最大值并將此樣本作為真負(fù)樣本計(jì)算在損失函數(shù)中.
3.1 實(shí)驗(yàn)數(shù)據(jù)集實(shí)驗(yàn)中使用的數(shù)據(jù)來自ProgrammableWeb.com,它注冊(cè)了多家互聯(lián)網(wǎng)公司開放的Web API 和Mashup,涵蓋金融、通信、安全、廣告等多個(gè)類別.從該網(wǎng)站使用Python 爬蟲工具抓取了20 233 個(gè)Web API 和8 473 個(gè)Mashup.對(duì)于每個(gè)Mashup,獲取的文檔主要包含4 種元數(shù)據(jù):Mashup 名稱、描述信息、類別信息、調(diào)用的Web API 及其詳細(xì)質(zhì)量相關(guān)信息.由于缺少一個(gè)或多個(gè)對(duì)應(yīng)的主元數(shù)據(jù),256 個(gè)無效Mashup 和124 個(gè)無效Web API 被刪除.同時(shí),沒有被Mashup 調(diào)用的Web API 或沒有調(diào)用任何Web API 的Mashup 也將被刪除.
本文的實(shí)驗(yàn)數(shù)據(jù)集包含8 222 個(gè)Mashup 和1 650 個(gè)Web API.每個(gè)Mashup 平均包含17.019 個(gè)描述字符,每個(gè)Web API 平均包含44.296 個(gè)描述字符,每個(gè)Mashup 平均調(diào)用2.089 個(gè)Web API.為了進(jìn)行性能評(píng)估,將數(shù)據(jù)集隨機(jī)劃分為訓(xùn)練集、測(cè)試集,劃分比例為8∶2,分別包括6 573、1 644 個(gè)Mashup.實(shí)驗(yàn)數(shù)據(jù)集的統(tǒng)計(jì)數(shù)據(jù)如表2 所示.
表2 實(shí)驗(yàn)數(shù)據(jù)集的統(tǒng)計(jì)數(shù)據(jù)Tab.2 The statistical data of experimental data set
3.2 參數(shù)設(shè)置本模型的常規(guī)參數(shù)有Mashup 和Web API 文本截取長(zhǎng)度和學(xué)習(xí)率,對(duì)性能有較大影響的參數(shù)包括Mashup 和Web API 的特征嵌入維度、質(zhì)量融合權(quán)重和負(fù)采樣數(shù)量,具體設(shè)置如表3所示.
表3 QAR 模型使用的超參數(shù)Tab.3 Hyperparametrics used by QAR model
3.3 評(píng)估指標(biāo)推薦系統(tǒng)研究的一個(gè)重要部分是評(píng)估推薦算法的性能,不同評(píng)價(jià)方法可以從不同角度對(duì)模型進(jìn)行評(píng)估.本文采用準(zhǔn)確率(P@K)、召回率(R@K)和歸一化折損累積增益(Normalized Discounted Cumulative Gain, IDCG@K)3 個(gè)常用指標(biāo)對(duì)模型性能進(jìn)行評(píng)估,下面將分別介紹這3 個(gè)評(píng)估指標(biāo).
準(zhǔn)確率和召回率是信息檢索和推薦系統(tǒng)領(lǐng)域廣泛使用的兩個(gè)指標(biāo),用于評(píng)估精度情況和召回情況.準(zhǔn)確率是推薦Web API 列表中的命中數(shù)與推薦列表中Web API 總數(shù)的比值.它可以衡量出本文方法的準(zhǔn)確性(P@K):
其中,K為推薦序列大小,γreal為目標(biāo)Mashup 調(diào)用的Web API 真實(shí)集合,γtopK為對(duì)目標(biāo)Mashup 推薦的前K個(gè)Web API 集合,∩為求取兩個(gè)集合的交集操作.
召回率(R@K)是真實(shí)值命中數(shù)與推薦Web API 列表中所有真實(shí)值數(shù)的比值,可以反映推薦項(xiàng)的覆蓋率:
NDCG 常用于信息檢索,通過給不同的位置分配不同的收益,排名靠前的項(xiàng)目的收益更高,排名靠后的項(xiàng)目的收益則相對(duì)更低以評(píng)估排名的準(zhǔn)確性.NDCG@K的公式表示為:
其中DCG@K是非歸一化損失累積增益,從推薦列表的頂部累積至底部,評(píng)分隨序列由上至下遞減.但是,在評(píng)估所有推薦列表時(shí)需要?dú)w一化,故本文將DCG@K除以IDCG@K(第i處的真實(shí)折損的累計(jì)增益值)以獲得NDCG@K值,φi=1/0表示第i個(gè)Web API 是否與當(dāng)前Mashup 相關(guān).
3.4 對(duì)比方法由于目前還沒有針對(duì)Mashup 的Web API 推薦的通用基準(zhǔn)模型,本文使用多種具有代表性的推薦方法作為基線來對(duì)比驗(yàn)證本文提出方法的有效性.
協(xié)同過濾(Collaborative Filter,CF):一種經(jīng)典的推薦算法,該方法利用用戶之間的相似度進(jìn)行推薦.通過計(jì)算Mashup 之間的相似度,為目標(biāo)Mashup推薦Web API.
流行度模型(Popularity-based Recommendation,POP):該方法直接向用戶推薦受歡迎度較高的項(xiàng)目,首先以Mashup 的類別出現(xiàn)頻率以及Web API交互頻率作為流行度進(jìn)行計(jì)算,將出現(xiàn)頻率高的類別中的Web API 或交互頻率高的Web API 進(jìn)行推薦.
貝葉斯個(gè)性化排序(Bayesian Personalized Ranking,BPR):一種廣泛用于預(yù)測(cè)用戶對(duì)不同項(xiàng)目偏好的模型[20],通過加載預(yù)訓(xùn)練詞向量獲取將Mashup 文檔特征,并使用Mashup 和Web API 之間交互的隱式反饋來訓(xùn)練模型.
隨機(jī)游走推薦(Random Walk Recommendation,RWR):該方法設(shè)計(jì)了一個(gè)簡(jiǎn)潔的知識(shí)圖譜模型來編碼Mashup 描述文本,然后使用標(biāo)簽/類別實(shí)體對(duì)Mashup 需求進(jìn)行建模[21].
服務(wù)剖面建模(Service Profile Reconstruction Model,SPR):該方法使用作者-主題模型對(duì)Mashup描述與Web API 之間的關(guān)系進(jìn)行建模,針對(duì)Mashup描述的主題結(jié)構(gòu)分析進(jìn)行Web API 推薦[22].
BGRU-ATT 模型(Bi-direction Gated Recurrent Unit-Attention):GRU 最早在2014 年提出[23],該方法通過加載預(yù)訓(xùn)練詞向量,經(jīng)過雙向GRU 層與注意力層獲取文本表示,最后通過分類層進(jìn)行分類,使用二元交叉熵?fù)p失函數(shù)計(jì)算損失.
BERT 模型(BERT-base):BERT 預(yù)訓(xùn)練模型含有12 層維度為768 的隱藏層,與本文的文本提取器相同,最后通過一個(gè)分類層進(jìn)行微調(diào)訓(xùn)練.
質(zhì)量感知推薦模型(Quality Aware Recommendation,QAR):本文提出的融合Web API 質(zhì)量信息的推薦模型.使用BERT 作為文本編碼器,對(duì)質(zhì)量信息進(jìn)行QoS 建模,并結(jié)合負(fù)采樣進(jìn)行訓(xùn)練.
QAR-模型:本文提出的QAR 模型的簡(jiǎn)單版,僅使用Web API 文本描述信息進(jìn)行推薦.
上述基線方法可分為兩大類,CF、POP、BPR、SPR、RWR 屬于淺層模型,BGRU-ATT、BERT-base屬于深度模型.
3.5 結(jié)果對(duì)比將QAR 與基線方法進(jìn)行對(duì)比,在3 個(gè)評(píng)估指標(biāo)上的實(shí)驗(yàn)結(jié)果如表4 所示.
表4 各模型實(shí)驗(yàn)結(jié)果對(duì)比Tab.4 The experimental results comparison of the models
由于ProgrammableWeb.com 中的數(shù)據(jù)平均每個(gè)Mashup 調(diào)用少于3 個(gè)Web API,為了使對(duì)比更加準(zhǔn)確和明顯,本文選取前1、3 和5 項(xiàng)的推薦結(jié)果進(jìn)行對(duì)比.從表4 中可以看出,傳統(tǒng)推薦方法的性能明顯低于深度學(xué)習(xí)的推薦方法,CF 模型只考慮了Mashup 之間的相似度而忽略了Web API 和其產(chǎn)生的交互關(guān)系,其性能在3 個(gè)指標(biāo)上的表現(xiàn)都很差;POP 模型則將Mashup 與Web API 的交互頻率進(jìn)行計(jì)算,沒有將二者的描述文件加以考慮,該模型的推薦效果較CF 僅有小幅提高;RWR 模型的性能較差,尤其是在準(zhǔn)確率指標(biāo)上,由于該模型需要一個(gè)帶有標(biāo)簽組合的Mashup 的需求,但是ProgrammableWeb.com 數(shù)據(jù)集中的很多Mashup 文檔沒有提供標(biāo)簽的組合信息,使得這個(gè)模型的表現(xiàn)不好;BPR 和SPR 比較相似,BPR 的優(yōu)點(diǎn)是可以直接進(jìn)行排名優(yōu)化,從3 個(gè)指標(biāo)的結(jié)果來看,BPR 在召回率上不如SPR,但在準(zhǔn)確率和NDCG 指標(biāo)則比SPR 要好;GRU-ATT 在準(zhǔn)確率這一指標(biāo)上很有競(jìng)爭(zhēng)力,但其新“記憶”的加入受到老“記憶”約束,使得靈活性不夠且存在過擬合風(fēng)險(xiǎn);BERT 預(yù)訓(xùn)練模型在提取文本特征上優(yōu)勢(shì)明顯,在所有基線方法中取得了最佳效果.
與基線方法相比,QAR-模型僅使用了Mashup和對(duì)應(yīng)的Web API 文本描述信息,并未使用Web API 本身的質(zhì)量信息進(jìn)行預(yù)測(cè),依然取得顯著性能.QAR 融合Web API 質(zhì)量建模信息,增強(qiáng)了API 的特征表示,使得該模型在所有指標(biāo)上都顯著優(yōu)于其他方法.在相應(yīng)top-1、3 上這種優(yōu)勢(shì)更為明顯.對(duì)比基線方法,QAR 模型取得在準(zhǔn)確率@{1-5}上3.97%~40.35%的提升、召回率@{1-5}上3.45%~34.81%的提升和NDCG@{1-5}上3.97%~29.35%的提升.對(duì)比無質(zhì)量信息的QAR-模型,QAR 分別帶來了準(zhǔn)確率@{1-5} 0.34%~1.39 %的提升、召回率@{1-5} 0.98%~1.27%的提升和NDCG@{1-5} 1.2%~1.39%的提升.
3.6 參數(shù)分析質(zhì)量融合權(quán)重指數(shù) α與負(fù)采樣次數(shù)n對(duì)模型性能的影響如圖5 所示.將Mashup 和Web API 嵌入維度d設(shè)置為768,隨著α 和n的增高,模型在3 個(gè)不同指標(biāo)上的性能呈增長(zhǎng)趨勢(shì),在 α和n分別取0.6 和150 時(shí),模型的性能最優(yōu).
圖5 QAR 模型在不同參數(shù)下的準(zhǔn)確率、召回率和NDCGFig.5 The precision,recall and NDCG of QAR model with different parameters
Mashup 和Web API 的嵌入維度越高,向量的隱含信息就越豐富,但其所占用的內(nèi)存與訓(xùn)練時(shí)間也會(huì)大大增加.考慮模型性能的平衡,本文將嵌入維度的最大值設(shè)置為768,與BERT 預(yù)訓(xùn)練模型的中間隱藏維度一致.嵌入維度d對(duì)模型性能的影響如圖6 所示,在top-5 情況下,模型隨著維度的增加,3 個(gè)不同指標(biāo)上的預(yù)測(cè)表現(xiàn)越好.
圖6 不同Web API 嵌入維度對(duì)應(yīng)的準(zhǔn)確率、召回率和NDCGFig.6 The precision,recall and NDCG of different Web API dimensions
隨著Web API 應(yīng)用的增多,為開發(fā)人員推薦準(zhǔn)確和高質(zhì)量的Web API 可以大大提升Mashup 開發(fā)效率.本文提出了基于Web API 質(zhì)量感知的QAR推薦模型,使用BERT 預(yù)訓(xùn)練模型提取Mashup 和Web API 文本描述特征,并對(duì)Web API 質(zhì)量信息進(jìn)行QoS 建模,利用自注意力機(jī)制技術(shù)來融合增強(qiáng)質(zhì)量信息特征,為Mashup 進(jìn)行Web API 推薦.本文使用從ProgrammableWeb.com 抓取的數(shù)據(jù)集進(jìn)行實(shí)驗(yàn),與其他基線方法進(jìn)行比較,實(shí)驗(yàn)結(jié)果表明本文提出的方法比目前先進(jìn)的方法具有更高的準(zhǔn)確性.本文從挖掘Web API 質(zhì)量信息角度建立了更高性能的推薦模型,對(duì)Web API 的質(zhì)量信息進(jìn)行了充分挖掘和利用,提高了推薦效果.然而,本文模型提取文本信息特征基于BERT 預(yù)訓(xùn)練模型,該模型雖然高效,但其對(duì)硬件的要求較高,且訓(xùn)練時(shí)間較長(zhǎng).據(jù)此可以引入知識(shí)蒸餾概念以提高性能,從這一角度來說,該研究還有很大空間可以嘗試.