本發(fā)明涉及智能軟件工程,尤其是一種基于邏輯推理和溯因矯正的云api互補推薦方法。
背景技術(shù):
1、在云時代,云api是服務(wù)交付、數(shù)據(jù)交換和能力復(fù)制的最佳載體。動態(tài)開放網(wǎng)絡(luò)中云api的指數(shù)級增長為開發(fā)者提供了更多的選擇,但同時也使開發(fā)者淹沒在海量的云api之中。因此,設(shè)計有效的云api推薦方法對于云api經(jīng)濟的健康發(fā)展至關(guān)重要?,F(xiàn)有的云api推薦方法主要從用戶側(cè)歷史交互、功能側(cè)內(nèi)容匹配、非功能側(cè)服務(wù)質(zhì)量感知三個視角,為開發(fā)者推薦偏好相近、功能單一、質(zhì)量高的云api。
2、但是,現(xiàn)有的云api推薦方法忽略了開發(fā)者對互補云api的需要。而現(xiàn)有互補關(guān)系建模方法往往從共同調(diào)用視角下對強互補關(guān)系進行建模,然而其忽略了從功能共現(xiàn)視角下對弱互補關(guān)系進行建模,并且未能有效的消解替補噪聲的影響。此外,現(xiàn)有的云api推薦方法是一步生成推薦結(jié)果,未考慮對推薦結(jié)果進行矯正從而進一步提升推薦效果。
技術(shù)實現(xiàn)思路
1、本發(fā)明需要解決的技術(shù)問題是提供一種基于邏輯推理和溯因矯正的云api互補推薦方法,能夠?qū)パa關(guān)系進行有效建模并對推薦結(jié)果進行矯正,為用戶提供了更精準(zhǔn)的云api推薦,有效滿足服務(wù)化軟件開發(fā)過程中開發(fā)者對互補云api的客觀需求。
2、為解決上述技術(shù)問題,本發(fā)明所采用的技術(shù)方案是:
3、一種基于邏輯推理和溯因矯正的云api互補推薦方法,包括以下步驟:
4、s1、將查詢云api轉(zhuǎn)換為對應(yīng)的概率嵌入向量;
5、s2、利用邏輯推理單元得到每個查詢云api對應(yīng)的互補嵌入向量;
6、s3、利用注意力網(wǎng)絡(luò)得到和查詢集整體互補的互補基向量;
7、s4、利用互補基向量和候選云api間的kl散度得到互補得分;
8、s5、按互補得分從大到小對候選云api進行排序,得到互補推薦列表;
9、s6、利用溯因模型推斷得到與推薦結(jié)果最有可能互補的原因;
10、s7、利用推斷原因和真實原因之間的差異得到溯因損失;
11、s8、以溯因損失最小化反向傳播矯正推薦結(jié)果;
12、s9、按矯正后的互補得分對候選云api從大到小重新排序。
13、本發(fā)明技術(shù)方案的進一步改進在于:在s1中,具體包括:將查詢集q中的每個查詢云api轉(zhuǎn)換為對應(yīng)的概率嵌入向量:
14、peu(qi)=e(qi)
15、e(qi)=([eαi_1,eαi_2,...,eαi_d],[eβi_1,eβi_2,...,eβi_d])=[αi,βi]
16、其中,peu是概率嵌入單元;e(qi)為查詢云api?qi對應(yīng)的beta概率嵌入向量;beta概率嵌入向量由α和β兩個參數(shù)決定;每個查詢云api包含d個隱特征,查詢云api?qi第k個隱特征由beta分布beta(eαi_k,eβi_k)表示。
17、本發(fā)明技術(shù)方案的進一步改進在于:在s2中,具體包括以下步驟:
18、s2.1、設(shè)計在關(guān)系約束r下的投影算子pjr,如下式所示:
19、pjr(e(qi))=mlp(concat(e(r),e(qi)))
20、其中,關(guān)系約束r包括替補約束sc以及共同調(diào)用約束cc;mlp為多層感知機;e(r)為關(guān)系約束r對應(yīng)的beta概率嵌入向量;e(qi)為查詢云api?qi對應(yīng)的beta概率嵌入向量;
21、經(jīng)過投影算子pjr可得到查詢云api在關(guān)系約束r下的嵌入向量;
22、s2.2、設(shè)計取反算子ng,如下式所示:
23、ng(e(qi))=e(qi)ng
24、其中,e(qi)ng是取反后的嵌入向量;
25、s2.3、設(shè)計交并算子is,如下式所示:
26、is(e(q1),...,e(qn))=e(q)is
27、其中,e(q)is為應(yīng)用交并算子后得到的嵌入向量;
28、s2.4、互補關(guān)系邏輯推理:
29、首先對每個查詢云api?q對應(yīng)的嵌入向量e(q)進行在替補約束sc下的投影,得到與查詢云api具有替補關(guān)系的嵌入向量,之后進行在共同調(diào)用約束cc下的投影;此時,得到與查詢云api具有弱互補關(guān)系的嵌入向量e(q)sc-cc,如下式所示:
30、e(q)sc-cc=pjcc(pjsc(e(q)))
31、由于任意云api均為其自身替補,故e(q)sc-cc也兼顧了強互補關(guān)系;
32、s2.5、非替補關(guān)系邏輯推理:
33、首先對每個查詢云api?q對應(yīng)的嵌入向量e(q)進行在替補約束sc下的投影,得到與查詢云api具有替補關(guān)系的嵌入向量;之后再利用取反算子得到嵌入向量e(q)sc-ng,進而消去替補噪聲帶來的影響,如下式所示:
34、e(q)sc-ng=ng(pjsc(e(q)))
35、s2.6、應(yīng)用交并算子得到查詢云api?q的互補嵌入向量e(q)is,如下式所示:
36、e(q)is=is(e(q)sc-cc,e(q)sc-ng)
37、通過s2.4、s2.5、s2.6的推理,得到兼顧強弱互補關(guān)系、消解替補噪聲影響的邏輯推理單元。
38、本發(fā)明技術(shù)方案的進一步改進在于:在s3中,具體包括:利用注意力網(wǎng)絡(luò)att得到和查詢集q整體互補的互補基向量e(q)base,如下式所示:
39、e(q)base=att({e(q1),...e(qt),...e(qt)})
40、采用注意力網(wǎng)絡(luò)是因為不同的查詢云api對于產(chǎn)生推薦結(jié)果的重要程度不同,并且要求推薦的候選云api與查詢集整體互補。
41、本發(fā)明技術(shù)方案的進一步改進在于:在s4中,具體包括:利用互補基向量e(q)base和候選云api?c嵌入向量e(c)之間的kl散度得到互補得分y,如下式所示:
42、
43、其中,ε為超參并且其值大于0;d為云api含有隱特征的數(shù)量;qj(x)是e(q)base第j個隱特征對應(yīng)的概率密度函數(shù);pj(x)為e(c)第j個隱特征對應(yīng)的概率密度函數(shù);kl散度可度量兩個概率分布函數(shù)之間的距離;
44、e(q)base和e(c)隱特征之間的距離越小則查詢集和候選云api之間的互補程度越高,亦即互補得分越大。
45、本發(fā)明技術(shù)方案的進一步改進在于:在s5中,具體包括:按互補得分從大到小對候選云api進行排序,得到互補推薦列表crl,如下式所示:
46、
47、其中,ci為排序后第i個候選云api;為ci對應(yīng)的互補得分。
48、本發(fā)明技術(shù)方案的進一步改進在于:在s6中,具體包括以下步驟:
49、s6.1、因為推薦結(jié)果由查詢集產(chǎn)生,故查詢集中任意查詢云api均能作為產(chǎn)生推薦結(jié)果的真實原因qt,如下式所示:
50、sample(q)=qt
51、其中,sample采用的是隨機采樣;
52、s6.2、為了防止引入過多不相關(guān)信息從而導(dǎo)致過矯正現(xiàn)象,只選取crl中前kac個候選云api作為溯因和矯正的對象,如下式所示:
53、
54、其中,l為溯因任務(wù)的輸入以及需要被矯正的候選云api列表;
55、s6.3、為了刻畫不同候選云api的重要程度,將候選云api對應(yīng)的互補得分轉(zhuǎn)換為權(quán)重,如下式所示:
56、
57、其中,為候選云apicj對應(yīng)的權(quán)重;σ為sigmoid激活函數(shù);γ為超參并且其值大于0用于平滑激活后的互補得分;
58、s6.4、利用得到的權(quán)重生成綜合云api如下式所示:
59、
60、綜合云api代表了步驟s5產(chǎn)生的推薦結(jié)果;
61、s6.5、利用溯因模型fam推斷得到與推薦結(jié)果最有可能互補的原因如下式所示:
62、
63、溯因模型fam與互補推薦階段采用的方法具有相同的結(jié)構(gòu);yqt越大則說明推斷原因與真實原因qt之間的差異越小。
64、本發(fā)明技術(shù)方案的進一步改進在于:在s7中,具體包括:利用推斷原因和真實原因qt之間的差異得到溯因損失aloss,如下式所示:
65、
66、其中,σ為sigmoid激活函數(shù);代表推斷原因和真實原因qt之間的差異。
67、本發(fā)明技術(shù)方案的進一步改進在于:在s8中,具體包括:以溯因損失最小化反向傳播矯正推薦結(jié)果,如下式所示:
68、
69、其中,為候選云api?cj對應(yīng)的互補得分,并且cj∈l。
70、本發(fā)明技術(shù)方案的進一步改進在于:在s9中,具體包括:按矯正后的互補得分對候選云api從大到小重新排序,如下式所示:
71、crl′=rank(l)
72、其中,crl′為重新排序之后的互補推薦列表。
73、由于采用了上述技術(shù)方案,本發(fā)明取得的技術(shù)進步是:
74、1、本發(fā)明將每個查詢云api轉(zhuǎn)換為對應(yīng)的概率嵌入向量;通過邏輯推理單元得到每個查詢云api對應(yīng)的互補嵌入向量;利用注意力網(wǎng)絡(luò)得到和查詢集整體互補的互補基向量;利用互補基向量和候選云api之間的kl散度得到互補得分;按互補得分從大到小排序生成互補推薦列表;利用溯因模型推斷得到和推薦結(jié)果最有可能互補的原因;利用推斷原因和真實原因之間的差異得到溯因損失;以溯因損失最小化反向傳播矯正推薦結(jié)果;對已矯正的候選云api從大到小重新排序;與絕大多數(shù)方法相比,其在云api互補的維度進行服務(wù)推薦,能夠滿足開發(fā)者對互補云api推薦的實際需要。
75、2、本發(fā)明中利用邏輯推理單元結(jié)合云api共同調(diào)用以及功能共現(xiàn)對互補關(guān)系進行建模,并且能夠有效消解替補噪聲的影響。
76、3、不同于傳統(tǒng)方案不能對推薦結(jié)果進行矯正,本發(fā)明提供的基于邏輯推理和溯因矯正的云api互補推薦方法可以通過溯因矯正對推薦結(jié)果進行矯正,從而進一步提升推薦效果。