本發(fā)明屬于web?api推薦,尤其涉及一種基于對比學(xué)習(xí)和聯(lián)合訓(xùn)練的webapi推薦方法。
背景技術(shù):
1、web?api(即web服務(wù))是網(wǎng)絡(luò)應(yīng)用程序接口,網(wǎng)絡(luò)應(yīng)用通過api接口可實現(xiàn)存儲服務(wù)、消息服務(wù)、計算服務(wù)等能力,利用這些能力可開發(fā)出強大功能的mashup應(yīng)用。mashup通過將多個單獨的服務(wù)組合為增值的復(fù)合服務(wù)。近年來,mashup的流行推動了服務(wù)市場的發(fā)展,開發(fā)者可將開發(fā)出的web?api和mashup上傳到web?api市場平臺供其他開發(fā)者使用。隨著面向服務(wù)的計算技術(shù)的發(fā)展,發(fā)布到公共平臺的web?api數(shù)量越來越龐大,選擇滿足某一或某些特定需求的web?api成為一大挑戰(zhàn)。為緩解該問題,web?api推薦成為了一種有效的方式。
2、現(xiàn)有的web?api推薦工作可大致分為三類:基于內(nèi)容的方法、基于圖的方法和混合方法?;趦?nèi)容的web?api推薦方法主要依賴于服務(wù)功能描述信息和元數(shù)據(jù),其中包括服務(wù)名稱、描述、輸入輸出參數(shù)、類別標簽等?;趦?nèi)容的推薦方法將文檔解析為結(jié)構(gòu)化信息,通過tf-idf、word2vec等特征提取和表示學(xué)習(xí)技術(shù)將服務(wù)轉(zhuǎn)化為特征向量。然后,通過計算相似度對mashup和候選api的特征向量進行匹配,將匹配度高的api推薦給用戶。基于圖的方法從服務(wù)網(wǎng)絡(luò)中提取服務(wù)功能語義,從服務(wù)之間的關(guān)系(如組合關(guān)系和標簽共享關(guān)系)中提取服務(wù)功能語義。其思想為服務(wù)功能語義隱含在服務(wù)網(wǎng)絡(luò)結(jié)構(gòu)中。在該類工作中,通常使用網(wǎng)絡(luò)表征方法,如gnn、gcn、gat、node2vec、lightgcn等。盡管可通過從服務(wù)網(wǎng)絡(luò)學(xué)習(xí)網(wǎng)絡(luò)表示來嵌入用戶和服務(wù),但在許多工作中只關(guān)注結(jié)構(gòu)語義,而忽略了文本語義。為同時充分利用文本語義和結(jié)構(gòu)語義,基于混合的方法從功能描述文檔和服務(wù)網(wǎng)絡(luò)中分別提取文本語義和結(jié)構(gòu)語義,以實現(xiàn)服務(wù)推薦。該類方法在服務(wù)推薦性能上有較大的改進。因此,它們是目前web?api推薦領(lǐng)域中最先進的方法。
3、盡管基于混合的方法在服務(wù)推薦方面取得了很大的進步,但由于現(xiàn)有工作中服務(wù)描述文檔和服務(wù)網(wǎng)絡(luò)的表征過程是獨立進行的,因此無法同時從服務(wù)描述文檔和服務(wù)網(wǎng)絡(luò)中充分提取豐富的語義,并進行關(guān)聯(lián)和互相促進,從而導(dǎo)致推薦性能有限。因此,如何同時聯(lián)合文本語義表征和結(jié)構(gòu)語義表征以獲得適當(dāng)?shù)那度雭磉M行有效的服務(wù)推薦仍然是一個未解決的問題。
技術(shù)實現(xiàn)思路
1、為解決上述技術(shù)問題,本發(fā)明提出了一種基于對比學(xué)習(xí)和聯(lián)合訓(xùn)練的web?api推薦方法,以解決上述現(xiàn)有技術(shù)存在的問題。
2、為實現(xiàn)上述目的,本發(fā)明提供了一種基于對比學(xué)習(xí)和聯(lián)合訓(xùn)練的web?api推薦方法,包括:
3、獲取第一文本描述及第二文本描述,其中所述第一文本描述及第二文本描述分別為mashup和web?api的文本描述;通過bert模型對第一文本描述及第二文本描述進行處理,得到第一文本表征及第二文本表征;
4、獲取mashup和web?api的交互網(wǎng)絡(luò)結(jié)構(gòu),通過lightgcn模型對交互網(wǎng)絡(luò)結(jié)構(gòu)進行處理,得到第一結(jié)構(gòu)表征及第二結(jié)構(gòu)表征;
5、將所述第一文本描述、第二文本描述、第一結(jié)構(gòu)表征及第二結(jié)構(gòu)表征進行拼接,生成整體嵌入,通過sanfm模型對整體嵌入進行處理,得到web?api推薦結(jié)果;
6、其中,所述bert模型、lightgcn模型及sanfm模型通過對比學(xué)習(xí)及聯(lián)合訓(xùn)練進行優(yōu)化得到。
7、可選的,獲取第一文本描述及第二文本描述之后還包括:通過自然語言預(yù)處理方法對所述獲取第一文本描述及第二文本描述進行預(yù)處理,其中所述預(yù)處理過程包括:規(guī)范化處理、詞干提取、標記化及停止詞刪除。
8、可選的,所述交互網(wǎng)絡(luò)結(jié)構(gòu)為二分圖,所述二分圖包括mashup合集、web?api合集及表征每個mashup與每個web?api之間交互關(guān)系的邊合集。
9、可選的,通過bert模型對第一文本描述及第二文本描述進行處理之后,還包括,通過多層感知機對bert模型的輸出結(jié)果進行維度調(diào)整,以得到與第一結(jié)構(gòu)表征及第二結(jié)構(gòu)表征相同維度的第一文本表征及第二文本表征。
10、可選的,聯(lián)合訓(xùn)練的過程包括:
11、構(gòu)建初始sanfm模型、初始bert模型和初始lightgcn模型并獲取訓(xùn)練集,通過訓(xùn)練集對初始bert模型、初始lightgcn模型進行對比學(xué)習(xí),同時對初始bert模型、初始lightgcn模型及初始sanfm模型進行分別聯(lián)合訓(xùn)練,在對比學(xué)習(xí)過程中,計算對比學(xué)習(xí)損失值,并根據(jù)對比學(xué)習(xí)損失值,計算聯(lián)合訓(xùn)練損失值,根據(jù)聯(lián)合訓(xùn)練損失值對初始bert模型、初始lightgcn模型及初始sanfm模型進行優(yōu)化,將優(yōu)化后的bert模型、lightgcn模型及sanfm模型進行使用即推薦結(jié)果的生成。
12、可選的,聯(lián)合訓(xùn)練損失值的計算過程包括:
13、
14、其中,l表示聯(lián)合訓(xùn)練損失值,γ為控制對比學(xué)習(xí)損失值的權(quán)重參數(shù),θ為整個模型的可訓(xùn)練參數(shù),λ為緩解過擬合的l2正則化權(quán)重,lbpr和lrec分別為lightgcn模型和sanfm模型的損失函數(shù),和表示mashup和web?api對應(yīng)的對比學(xué)習(xí)損失值。
15、可選的,對比學(xué)習(xí)的過程包括:
16、通過交叉視圖對比學(xué)習(xí)方式對初始bert模型和初始lightgcn模型進行對比學(xué)習(xí),其中包括:
17、構(gòu)建初始bert模型和初始lightgcn模型,所述訓(xùn)練集包括文本訓(xùn)練集及結(jié)構(gòu)訓(xùn)練集,通過初始bert模型對文本訓(xùn)練集進行處理,得到mashup和web?api的預(yù)測文本表征;通過初始lightgcn模型對結(jié)構(gòu)訓(xùn)練集進行處理,得到mashup和web?api的預(yù)測結(jié)構(gòu)表征;
18、根據(jù)mashup和web?api的預(yù)測文本表征與mashup和web?api的預(yù)測結(jié)構(gòu)表征計算對比學(xué)習(xí)損失值。
19、可選的,所述對比學(xué)習(xí)損失值的計算過程包括:
20、
21、其中,表示mashup對應(yīng)的對比學(xué)習(xí)損失值,表示web?api對應(yīng)的對比學(xué)習(xí)損失值,表示mashup合集,mi表示第i個mashup,表示web?api合集,ai表示第i個webapi,表示通過bert模型輸出的第i個mashup對應(yīng)嵌入向量,表示通過lightgcn模型輸出的第i個mashup對應(yīng)嵌入向量,表示通過bert模型輸出的第i個web?api對應(yīng)嵌入向量,表示通過lightgcn模型輸出的第i個web?api對應(yīng)嵌入向量,s(·,·)用于計算兩個向量之間的相似度,τ為溫度參數(shù)。
22、與現(xiàn)有技術(shù)相比,本發(fā)明具有如下優(yōu)點和技術(shù)效果:
23、本發(fā)明提出了一種基于對比學(xué)習(xí)和聯(lián)合訓(xùn)練的web?api推薦方法,該方法同時考慮文本語義信息和結(jié)構(gòu)語義信息。首先,使用bert模型和lightgcn模型分別提取mashup和web?api的文本語義和結(jié)構(gòu)語義。然后,將bert模塊得到的文本表征進行降維,使得文本語義嵌入維度與來自lightgcn模塊的結(jié)構(gòu)語義嵌入保持同樣的維度。通過跨視圖對比學(xué)習(xí),將文本語義表征與結(jié)構(gòu)語義表征關(guān)聯(lián)起來,互相補充語義信息,使得文本語義表征與結(jié)構(gòu)語義表征的準確性同時得到提升。下游的服務(wù)推薦任務(wù)采用sanfm模型,與前面的文本語義表征與結(jié)構(gòu)語義表征兩個任務(wù)進行聯(lián)合訓(xùn)練,使得服務(wù)表征更加適用于服務(wù)推薦任務(wù),從而提高服務(wù)推薦的性能。為驗證方法的有效性,本發(fā)明采用來自programmableweb平臺的真實數(shù)據(jù)來進行實驗。實驗結(jié)果表明:相比基線方法,基于對比學(xué)習(xí)和聯(lián)合訓(xùn)練的web?api推薦方法在各評價指標上均表現(xiàn)出更好的性能。