国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種基于服務(wù)聚合與功能信息的API推薦方法與流程

      文檔序號(hào):12470109閱讀:292來(lái)源:國(guó)知局
      一種基于服務(wù)聚合與功能信息的API推薦方法與流程
      本發(fā)明屬于互聯(lián)網(wǎng)服務(wù)
      技術(shù)領(lǐng)域
      ,具體涉及一種基于服務(wù)聚合與功能信息的API(ApplicationProgrammingInterface,應(yīng)用程序編程接口)推薦方法。
      背景技術(shù)
      :隨著近年來(lái)SOA(Service-OrientedArchitecture)系統(tǒng)架構(gòu)以及Web2.0的高速發(fā)展,網(wǎng)絡(luò)中Web服務(wù)的數(shù)量呈現(xiàn)出爆炸性增長(zhǎng)的態(tài)勢(shì),并且其表現(xiàn)形式也發(fā)生了巨大的改變。傳統(tǒng)的Web服務(wù)通過(guò)由WSDL(WebServicesDescriptionLanguage)描述文檔定義的SOAP(SimpleObjectAccessProtocol)通信協(xié)議在Web中提供某種應(yīng)用服務(wù),并通過(guò)UDDI(UniversalDescriptionDiscoveryandIntegration)進(jìn)行注冊(cè)與發(fā)布。然而,隨著REST(RepresentationalStateTransfer)架構(gòu)的興起與發(fā)展,傳統(tǒng)的SOAPWeb服務(wù)正在轉(zhuǎn)向開(kāi)發(fā)更便捷,效率更高的RESTfulWeb服務(wù)。互聯(lián)網(wǎng)中越來(lái)越多的Web服務(wù)通過(guò)RESTfulAPI的形式供開(kāi)發(fā)者開(kāi)發(fā)與調(diào)用。通常一個(gè)API只提供單一功能,為了滿足復(fù)雜的開(kāi)發(fā)需求,糅合技術(shù)能夠通過(guò)方便快捷的聚合多個(gè)API來(lái)組成功能復(fù)雜的Web服務(wù)Mashup?;ヂ?lián)網(wǎng)中也存在著幾大API聚合網(wǎng)站,例如ProgrammableWeb、Mashape、百度應(yīng)用等。API聚合網(wǎng)站將互聯(lián)網(wǎng)中不同開(kāi)發(fā)者提供的API進(jìn)行統(tǒng)一的規(guī)范化整合,以方便用戶(hù)搜索與發(fā)現(xiàn)合適的API來(lái)滿足需求。然而通常聚合網(wǎng)站中API的數(shù)量十分龐大。據(jù)統(tǒng)計(jì),截至2015年底,在ProgrammableWeb網(wǎng)站中,API的數(shù)量達(dá)到了14653個(gè),而Mashup的數(shù)量也達(dá)到了6259個(gè)。當(dāng)用戶(hù)需要某個(gè)特定功能的API時(shí),傳統(tǒng)的搜索方法需要用戶(hù)準(zhǔn)確的關(guān)鍵詞描述以及大量的瀏覽搜索結(jié)果來(lái)尋找合適的API。為了讓用戶(hù)能快速而準(zhǔn)確的在海量的API資源當(dāng)中發(fā)現(xiàn)合適的API,需要一種針對(duì)不同用戶(hù)自動(dòng)推薦API的方法。此外,API推薦也能提高某些關(guān)注度較低的API的調(diào)用次數(shù),提升整個(gè)API生態(tài)圈的健康發(fā)展。當(dāng)前的API推薦方法主要集中在兩個(gè)方面,一是針對(duì)API的功能描述信息進(jìn)行推薦,二是考慮用戶(hù)調(diào)用API的歷史偏好信息。然而,之前的方法忽略了API的聚合信息,即Mashup。Mashup信息包含了兩個(gè)方面:(1)Mashup服務(wù)包含的不同API之間的組合信息;(2)用戶(hù)開(kāi)發(fā)或調(diào)用Mashup的歷史信息。由于Mashup豐富了用戶(hù)與API的交互關(guān)系,在API推薦過(guò)程中考慮Mashup信息將能夠提升推薦的效果。技術(shù)實(shí)現(xiàn)要素:基于上述,本發(fā)明提供了一種基于服務(wù)聚合與功能信息的API推薦方法,其利用了用戶(hù)的歷史調(diào)用記錄、API的功能描述以及API的聚合Mashup三方面信息,來(lái)為不同的用戶(hù)進(jìn)行API的推薦。一種基于服務(wù)聚合與功能信息的API推薦方法,包括:首先,從API和Mashup的文本描述信息中抽取一定數(shù)目的主題形成主題集合,進(jìn)而根據(jù)用戶(hù)集合、API集合、Mashup集合以及主題集合構(gòu)建關(guān)于用戶(hù)、Mashup、API以及主題的網(wǎng)絡(luò)關(guān)系模型;所述的網(wǎng)絡(luò)關(guān)系模型中每個(gè)用戶(hù)、Mashup、API以及主題均由節(jié)點(diǎn)來(lái)表征,節(jié)點(diǎn)之間若存在關(guān)聯(lián)則通過(guò)邊進(jìn)行連接,且節(jié)點(diǎn)之間只存在以下五類(lèi)連接關(guān)系:用戶(hù)節(jié)點(diǎn)與Mashup節(jié)點(diǎn)的連接關(guān)系、用戶(hù)節(jié)點(diǎn)與API節(jié)點(diǎn)的連接關(guān)系、Mashup節(jié)點(diǎn)與API節(jié)點(diǎn)的連接關(guān)系、Mashup節(jié)點(diǎn)與主題節(jié)點(diǎn)的連接關(guān)系、API節(jié)點(diǎn)與主題節(jié)點(diǎn)的連接關(guān)系;構(gòu)建用戶(hù)與Mashup之間的關(guān)系矩陣UM、用戶(hù)與API之間的關(guān)系矩陣UA、Mashup與API之間的關(guān)系矩陣MA、Mashup與主題之間的關(guān)系矩陣MT、API與主題之間的關(guān)系矩陣AT;對(duì)于目標(biāo)用戶(hù),建立以下目標(biāo)函數(shù)并對(duì)其進(jìn)行優(yōu)化求解,得到網(wǎng)絡(luò)關(guān)系模型中每個(gè)API節(jié)點(diǎn)的映射值,進(jìn)而按映射值從大到小對(duì)API進(jìn)行排序,并向目標(biāo)用戶(hù)推薦其未調(diào)用過(guò)的且排序最前的K個(gè)API,K為大于1的自然數(shù);minFu,Fm,Fa,Ftα1Σi=1nuΣj=1nmUMij(f(ui)dui-f(mj)dmj)2+α2Σi=1nuΣk=1naUAik(f(ui)dui-f(ak)dak)2+α3Σj=1nmΣk=1naMAjk(f(mj)dmj-f(ak)dak)2+α4Σj=1nmΣp=1ntMTjp(f(mj)dmj-f(tp)dtp)2+α5Σk=1naΣp=1ntATkp(f(ak)dak-f(tp)dtp)2+β1Σi=1nu(f(ui)-ui0)2+β2Σj=1nm(f(mj)-mj0)+β3Σk=1na(f(ak)-ak0)2+β4Σp=1nt(f(tp)-tp0)2]]>其中:ui表示第i個(gè)用戶(hù)節(jié)點(diǎn),mj表示第j個(gè)Mashup節(jié)點(diǎn),ak表示第k個(gè)API節(jié)點(diǎn),tp表示第p個(gè)主題節(jié)點(diǎn),f(ui)為用戶(hù)節(jié)點(diǎn)ui的映射值(其反映了用戶(hù)節(jié)點(diǎn)ui與其他節(jié)點(diǎn)的關(guān)系緊密程度),f(mj)為Mashup節(jié)點(diǎn)mj的映射值(其反映了目標(biāo)用戶(hù)與對(duì)mj的偏好程度),f(ak)為API節(jié)點(diǎn)ak的映射值(其反映了目標(biāo)用戶(hù)與對(duì)ak的偏好程度),f(tp)為主題節(jié)點(diǎn)tp的映射值(其反映了目標(biāo)用戶(hù)與對(duì)tp的關(guān)注程度),UMij為關(guān)系矩陣UM中第i行第j列的元素值,UAik為關(guān)系矩陣UA中第i行第k列的元素值,MAjk為關(guān)系矩陣MA中第j行第k列的元素值,MTjp為關(guān)系矩陣MT中第j行第p列的元素值,ATkp為關(guān)系矩陣AT中第k行第p列的元素值,nu為用戶(hù)集合中用戶(hù)的總數(shù)量,nm為Mashup集合中Mashup的總數(shù)量,na為API集合中API的總數(shù)量,nt為主題集合中主題的總數(shù)量,dui為用戶(hù)節(jié)點(diǎn)ui所連邊的條數(shù),dmj為Mashup節(jié)點(diǎn)mj所連邊的條數(shù),dak為API節(jié)點(diǎn)ak所連邊的條數(shù),dtp為主題節(jié)點(diǎn)tp所連邊的條數(shù),α1~α5以及β1~β4分別為對(duì)應(yīng)約束項(xiàng)的權(quán)值,和分別為用戶(hù)節(jié)點(diǎn)ui、Mashup節(jié)點(diǎn)mj、API節(jié)點(diǎn)ak以及主題節(jié)點(diǎn)tp的先驗(yàn)值且所有主題節(jié)點(diǎn)的先驗(yàn)值均為0;若目標(biāo)用戶(hù)對(duì)應(yīng)為用戶(hù)節(jié)點(diǎn)ui,則其余用戶(hù)節(jié)點(diǎn)的先驗(yàn)值均為0,且與用戶(hù)節(jié)點(diǎn)ui相連的Mashup節(jié)點(diǎn)和API節(jié)點(diǎn)的先驗(yàn)值為1,其余Mashup節(jié)點(diǎn)和API節(jié)點(diǎn)的先驗(yàn)值為0,F(xiàn)u為由所有用戶(hù)節(jié)點(diǎn)映射值所組成的向量,F(xiàn)m為由所有Mashup節(jié)點(diǎn)映射值所組成的向量,F(xiàn)a為由所有API節(jié)點(diǎn)映射值所組成的向量,F(xiàn)t為由所有主題節(jié)點(diǎn)映射值所組成的向量。所述關(guān)系矩陣UM中的任一元素值為0或1,若UMij=1則表示第i個(gè)用戶(hù)調(diào)用過(guò)第j個(gè)Mashup,否則UMij=0。所述關(guān)系矩陣UA中的任一元素值為0或1,若UAik=1則表示第i個(gè)用戶(hù)調(diào)用過(guò)第k個(gè)API,否則UAik=0。所述關(guān)系矩陣MA中的任一元素值為0或1,若MAjk=1則表示第j個(gè)Mashup調(diào)用過(guò)第k個(gè)API,否則MAjk=0。所述關(guān)系矩陣MT中的任一元素值為0~1之間的實(shí)數(shù),MTjp表示第j個(gè)Mashup的文本描述信息中包含第p個(gè)主題的概率,其通過(guò)LDA(LatentDirichletAllocation)主題模型算法求得。所述關(guān)系矩陣AT中的任一元素值為0~1之間的實(shí)數(shù),ATkp表示第k個(gè)API的文本描述信息中包含第p個(gè)主題的概率,其通過(guò)LDA主題模型算法求得。本發(fā)明采用交替最小二乘算法對(duì)所述的目標(biāo)函數(shù)進(jìn)行優(yōu)化求解。為了驗(yàn)證本發(fā)明在API推薦中的技術(shù)效果,我們?cè)诨ヂ?lián)網(wǎng)中最大的API聚合網(wǎng)站ProgrammableWeb.com中抓取了全部API和Mashup的所有功能信息,以及該網(wǎng)站的用戶(hù)開(kāi)發(fā)和使用API和Mashup的信息?,F(xiàn)有的方法要么只考慮了API的功能信息而沒(méi)有考慮API的聚合信息,要么只利用了API的聚合信息而未考慮API的功能信息,而本發(fā)明方法將這兩者進(jìn)行融合并通過(guò)圖模型統(tǒng)一的建模所有的信息,因此本發(fā)明方法實(shí)施的API推薦的效果比現(xiàn)有方法有了顯著的提升。附圖說(shuō)明圖1為本發(fā)明API推薦方法的流程示意圖。圖2為本發(fā)明關(guān)于用戶(hù)、Mashup、API以及主題的網(wǎng)絡(luò)關(guān)系模型示例圖。具體實(shí)施方式為了更為具體地描述本發(fā)明,下面結(jié)合附圖及具體實(shí)施方式對(duì)本發(fā)明的技術(shù)方案進(jìn)行詳細(xì)說(shuō)明。如圖1所示,本發(fā)明基于服務(wù)聚合與功能信息的API推薦方法,具體過(guò)程如下:首先,需要對(duì)用到的變量和公式給出相關(guān)定義。定義1.U:用戶(hù)(即開(kāi)發(fā)者)的集合。定義2.M:API聚合Mashup的集合。定義3.A:API的集合。定義4.UM矩陣:UM矩陣表示用戶(hù)調(diào)用Mashup的歷史記錄。若用戶(hù)ui調(diào)用了Mashupmj,則UMij=1,否則為0。定義5.UA矩陣:UA矩陣表示用戶(hù)調(diào)用API的歷史記錄。若用戶(hù)ui調(diào)用了APIaj,則UAij=1,否則為0。定義6.MA矩陣:MA矩陣表示Mashup調(diào)用API的關(guān)系。若Mashupmi調(diào)用了APIaj,則MAij=1,否則為0。其中定義4~5表達(dá)了用戶(hù)的歷史調(diào)用記錄信息,定義6表達(dá)了API的聚合信息。為了表達(dá)API以及Mashup的功能描述信息,我們采用LDA(LatentDirichletAllocation)主題模型的方法,從API和Mashup的文本描述信息中抽取一定數(shù)目的主題,如社交、地圖、旅游等一系列主題,并將每個(gè)API和Mashup的功能信息表達(dá)為在所有主題之上的概率分布。定義7.T:主題的集合定義8.MT矩陣:MT矩陣表示Mashup功能信息的主題模型表達(dá)。矩陣的每一行表示該Mashup的主題概率分布。定義9.AT矩陣:AT矩陣表示API功能信息的主題模型表達(dá)。矩陣的每一行表示該API的主題概率分布。定義10.模型G=(U,M,A,T,UM,UA,MA,MT,AT)。U,M,A,T分別表示用戶(hù)節(jié)點(diǎn)、Mashup節(jié)點(diǎn)、API節(jié)點(diǎn)以及主題節(jié)點(diǎn)。UM表示用戶(hù)節(jié)點(diǎn)與Mashup節(jié)點(diǎn)之間邊的連接關(guān)系。UA表示用戶(hù)節(jié)點(diǎn)與API節(jié)點(diǎn)之間的連接關(guān)系,MA表示Mashup節(jié)點(diǎn)與API節(jié)點(diǎn)之間的連接關(guān)系,MT表示Mashup節(jié)點(diǎn)與主題節(jié)點(diǎn)之間的連接關(guān)系,AT表示API節(jié)點(diǎn)與主題節(jié)點(diǎn)之間的連接關(guān)系。圖2展示了模型G的一個(gè)具體實(shí)例。結(jié)合模型G,為某個(gè)用戶(hù)推薦API的過(guò)程可以抽象為針對(duì)某一個(gè)用戶(hù)節(jié)點(diǎn),對(duì)所有的API節(jié)點(diǎn)賦值,并根據(jù)節(jié)點(diǎn)值進(jìn)行排序,推薦最大的K個(gè)API作為推薦結(jié)果。針對(duì)某個(gè)查詢(xún)用戶(hù)u∈U,我們首先定義一個(gè)函數(shù)f,該函數(shù)將模型G中的每個(gè)節(jié)點(diǎn)映射為一個(gè)實(shí)數(shù)值。具體意義如下:每個(gè)API節(jié)點(diǎn)映射值的大小反映了該查詢(xún)用戶(hù)對(duì)API的偏好程度;每個(gè)Mashup節(jié)點(diǎn)映射值的大小反映了該用戶(hù)對(duì)Mashup的偏好程度;每個(gè)主題節(jié)點(diǎn)映射值的大小反映了該用戶(hù)對(duì)該主題的關(guān)注程度;每個(gè)用戶(hù)節(jié)點(diǎn)的映射值反映了其它用戶(hù)與查詢(xún)用戶(hù)的關(guān)系緊密程度。因此推薦算法的目標(biāo)是求得每個(gè)API的節(jié)點(diǎn)映射值。利用模型G中的關(guān)系以及已知的信息,可以通過(guò)定義目標(biāo)函數(shù)并取最小化來(lái)求解函數(shù)f。具體而言,損失函數(shù)的定義包括兩個(gè)方面:一、關(guān)系約束。若兩個(gè)節(jié)點(diǎn)之間有邊相連接,則這兩個(gè)節(jié)點(diǎn)之間的映射值不應(yīng)該相差過(guò)大。以用戶(hù)與API的關(guān)系UA為例,若一個(gè)用戶(hù)之前調(diào)用了一個(gè)API,則該用戶(hù)與API的映射值應(yīng)比較接近,即每個(gè)API的映射值是根據(jù)與它有關(guān)聯(lián)的用戶(hù)的映射值所決定的。因此它能準(zhǔn)確的表達(dá)節(jié)點(diǎn)之間關(guān)系的約束。具體的數(shù)學(xué)表達(dá)式為:QUA(f)=Σi=1|U|Σj=1|A|UAij(f(ui)dui-f(aj)daj)2]]>其中:dui和daj是用戶(hù)ui和APIaj節(jié)點(diǎn)的度數(shù)。將節(jié)點(diǎn)的映射值進(jìn)行了歸一化,即除以每個(gè)節(jié)點(diǎn)的度數(shù)的開(kāi)方是為了防止度數(shù)高的節(jié)點(diǎn)對(duì)推薦結(jié)果造成偏置影響。對(duì)于UM,MA,MT,AT的關(guān)系約束的數(shù)學(xué)表達(dá)式與UA類(lèi)似。二、先驗(yàn)約束。每個(gè)節(jié)點(diǎn)的映射值與已知的先驗(yàn)信息應(yīng)該盡量吻合。若某個(gè)用戶(hù)之前調(diào)用了一些API,則這些API的映射值應(yīng)當(dāng)高于從未被用戶(hù)調(diào)用過(guò)的API。該約束實(shí)現(xiàn)了API推薦的個(gè)性化,即針對(duì)每個(gè)用戶(hù)的不同API和Mashup的調(diào)用信息,設(shè)置不同的先驗(yàn)信息來(lái)學(xué)習(xí)不同的映射函數(shù)f。以API節(jié)點(diǎn)為例,具體的數(shù)學(xué)表達(dá)式為QA(f)=Σi=1|A|(f(ai)-ai0)2]]>其中:為某個(gè)用戶(hù)對(duì)APIai的調(diào)用記錄信息。用戶(hù)節(jié)點(diǎn)U、Mashup節(jié)點(diǎn)M以及主題節(jié)點(diǎn)T的先驗(yàn)約束與之類(lèi)似。通過(guò)這兩類(lèi)約束的線性加權(quán)和,得到最終的損失函數(shù)公式:Q(f)=α1Σi=1|U|Σj=1|M|UMij(f(ui)dui-f(mj)dmj)2+α2Σi=1|U|Σj=1|A|UAij(f(ui)dui-f(aj)daj)2+α3Σi=1|M|Σj=1|A|MAij(f(mi)dmi-f(aj)daj)2+α4Σi=1|M|Σj=1|T|MTij(f(mi)dmi-f(tj)dtj)2+α5Σi=1|A|Σj=1|T|ATij(f(ai)dai-f(tj)dtj)2+β1Σi=1|U|(f(ui)-ui0)2+β2Σi=1|M|(f(mi)-mi0)2+β3Σi=1|A|(f(ai)-ai0)2+β4Σi=1|T|(f(ti)-ti0)2]]>其中:為每個(gè)節(jié)點(diǎn)的先驗(yàn)信息。對(duì)于某個(gè)查詢(xún)用戶(hù),先驗(yàn)信息的設(shè)置如下:對(duì)于查詢(xún)用戶(hù)i,設(shè)置其余為0。若查詢(xún)用戶(hù)歷史調(diào)用了APIi或Mashupi,則設(shè)置其余為0。設(shè)置全為0。α1~α5以及β1~β4表示不同約束項(xiàng)的權(quán)值。為了形式簡(jiǎn)潔,將Q(f)寫(xiě)成矩陣與向量的表達(dá)式,表示如下:Q(u,m,a,t)=α1(uTu+mTm-2uTUMm)+α2(uTu+aTa-2uTUAa)+α3(mTm+aTa-2mTMAa)+α4(mTm+tTt-2mTMTt)+α5(aTa+tTt-2aTATt)+β1(u-u0)T(u-u0)+β2(m-m0)T(m-m0)+β3(a-a0)T(a-a0)+β4(t-t0)T(t-t0)其中:向量u,m,a,t分別為用戶(hù)節(jié)點(diǎn),Mashup節(jié)點(diǎn),API節(jié)點(diǎn)與主題節(jié)點(diǎn)的映射值;u0,m0,a0,t0分別為用戶(hù)節(jié)點(diǎn),Mashup節(jié)點(diǎn),API節(jié)點(diǎn)與主題節(jié)點(diǎn)的先驗(yàn)向量信息。同時(shí),式中的UM,UA,MA,MT,AT都經(jīng)過(guò)了歸一化,例如我們使用交替最小二乘方法(ALS)通過(guò)優(yōu)化目標(biāo)函數(shù)的最小值求得參數(shù)向量u,m,a,t。具體的,該方法每一步通過(guò)固定其它變量,對(duì)其中一個(gè)變量進(jìn)行迭代求解,直到目標(biāo)函數(shù)收斂到一個(gè)穩(wěn)定值。迭代過(guò)程如下:首先,設(shè)置u,m,a,t的初始值,一般為0到1之間的隨機(jī)值。然后,對(duì)每個(gè)變量進(jìn)行迭代,迭代公式如下:u=α1α1+α2+β1UM·m+α2α1+α2+β1UA·a+β1α1+α2+β1u0]]>m=α1α1+α3+α4+β2UMT·u+α3α1+α3+α4+β2MA·a+α4α1+α3+α4+β2MT·t+β2α1+α3+α4+β21m0]]>a=α2α2+α3+α5+β3UAT·u+α3α2+α3+α5+β3MAT·m+α5α2+α3+α5+β3AT·t+β3α2+α3+α5+β3a0]]>t=α4α4+α5+β4MTT·m+α5α4+α5+β4ATT·a+β4α4+α5+β4t0]]>直到最后迭代收斂。得到最后的穩(wěn)定解u,m,a,t,即代表了每個(gè)節(jié)點(diǎn)的映射值。其中向量a即保存了API的映射值。對(duì)向量a由大到小排序,去掉用戶(hù)歷史調(diào)用過(guò)的API記錄后,取前K個(gè)API進(jìn)行推薦即可。上述對(duì)實(shí)施例的描述是為便于本
      技術(shù)領(lǐng)域
      的普通技術(shù)人員能理解和應(yīng)用本發(fā)明。熟悉本領(lǐng)域技術(shù)的人員顯然可以容易地對(duì)上述實(shí)施例做出各種修改,并把在此說(shuō)明的一般原理應(yīng)用到其他實(shí)施例中而不必經(jīng)過(guò)創(chuàng)造性的勞動(dòng)。因此,本發(fā)明不限于上述實(shí)施例,本領(lǐng)域技術(shù)人員根據(jù)本發(fā)明的揭示,對(duì)于本發(fā)明做出的改進(jìn)和修改都應(yīng)該在本發(fā)明的保護(hù)范圍之內(nèi)。當(dāng)前第1頁(yè)1 2 3 
      當(dāng)前第1頁(yè)1 2 3 
      網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1