本發(fā)明具體涉及一種安卓應(yīng)用的推薦方法。
背景技術(shù):
隨著無線通信技術(shù),比如WiFi和3G/4G技術(shù),的飛速發(fā)展,安卓(安卓)應(yīng)用能夠通過網(wǎng)絡(luò)向用戶提供豐富多樣的服務(wù)。由于安卓操作系統(tǒng)可以提供標(biāo)準(zhǔn)的TCP/IP棧,因此其可以像PC的軟件一樣在提供服務(wù)的同時(shí)生成網(wǎng)絡(luò)流量。但是不同于傳統(tǒng)的有線網(wǎng)絡(luò),在移動(dòng)網(wǎng)絡(luò)中任何網(wǎng)絡(luò)數(shù)據(jù)流量的生成都是需要移動(dòng)用戶進(jìn)行付費(fèi)的。為了給用戶提供更好的服務(wù)和獲得更多的下載量,安卓應(yīng)用開發(fā)者在開發(fā)應(yīng)用的時(shí)候盡可能的設(shè)計(jì)多樣化的功能使得安卓應(yīng)用更加智能化。然而這些服務(wù)大部分都會(huì)導(dǎo)致網(wǎng)絡(luò)流量的開銷,甚至個(gè)別會(huì)帶來安全問題。圖1以安卓市場(chǎng)中某個(gè)應(yīng)用為例來說明目前安卓市場(chǎng)推薦應(yīng)用存在的問題。從圖1觀察得到該應(yīng)用在Google Play上的流行度非常高,具有較高的評(píng)分和評(píng)論數(shù)。但是該應(yīng)用在運(yùn)行時(shí)會(huì)請(qǐng)求網(wǎng)絡(luò)權(quán)限來訪問網(wǎng)絡(luò),同時(shí)也會(huì)請(qǐng)求讀取手機(jī)狀態(tài)和身份,使用時(shí)該應(yīng)用的時(shí)候會(huì)給安卓用戶帶來兩個(gè)問題:第一、運(yùn)行時(shí)產(chǎn)生的網(wǎng)絡(luò)流量開銷會(huì)消耗安卓用戶的移動(dòng)數(shù)據(jù)套餐;第二、該應(yīng)用有可能會(huì)通過網(wǎng)絡(luò)傳輸隱私數(shù)據(jù)(比如,IMEI)到未知服務(wù)器造成用戶敏感數(shù)據(jù)泄露。此外,目前安卓市場(chǎng)在推薦應(yīng)用的時(shí)候僅僅通過流行度(評(píng)分、下載次數(shù)等)或者用戶相關(guān)度等因素來進(jìn)行推薦,這樣肯定存在惡意購買流行度,從而引導(dǎo)消費(fèi)者進(jìn)行應(yīng)用下載,從而獲取用于隱私數(shù)據(jù)和增加用戶額外的不必要的網(wǎng)絡(luò)流量數(shù)據(jù)開銷的情況。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于提供一種能夠有效節(jié)省用戶移動(dòng)數(shù)據(jù)開銷的安卓應(yīng)用的推薦方法。
本發(fā)明提供的這種安卓應(yīng)用的推薦方法,包括如下步驟:
S1.采用安卓應(yīng)用自動(dòng)執(zhí)行工具執(zhí)行所有需要推薦的安卓應(yīng)用,并使用記錄工具捕獲需要推薦的安卓應(yīng)用在執(zhí)行過程中產(chǎn)生的網(wǎng)絡(luò)流量數(shù)據(jù);
S2.根據(jù)步驟S1獲取的網(wǎng)絡(luò)流量數(shù)據(jù),從安卓應(yīng)用總體情況、安卓應(yīng)用網(wǎng)絡(luò)流量開銷成分和相同功能的其他安卓應(yīng)用網(wǎng)絡(luò)流量開銷三個(gè)方面,對(duì)需要推薦的安卓應(yīng)用進(jìn)行統(tǒng)計(jì);
S3.根據(jù)步驟S2得到的統(tǒng)計(jì)數(shù)據(jù)結(jié)果,構(gòu)建安卓應(yīng)用及其網(wǎng)絡(luò)流量開銷的二分圖;
S4.使用規(guī)則化隨機(jī)游走算法對(duì)安卓應(yīng)用的網(wǎng)絡(luò)流量開銷進(jìn)行評(píng)分;
S5.根據(jù)步驟S4得到的評(píng)分結(jié)果,采用基于變異系數(shù)的等級(jí)劃分算法對(duì)每個(gè)安卓應(yīng)用的網(wǎng)絡(luò)流量開銷進(jìn)行等級(jí)劃分;
S6.根據(jù)步驟S5得到的等級(jí)劃分結(jié)果、安卓應(yīng)用的流行度和安卓應(yīng)用的網(wǎng)絡(luò)流量開銷對(duì)安卓應(yīng)用進(jìn)行排序;
S7.構(gòu)造安卓應(yīng)用哈希矩陣,并根據(jù)構(gòu)造的安卓應(yīng)用哈希矩陣和步驟S6的安卓應(yīng)用排序結(jié)果,采用現(xiàn)代證券投資組合理論完成安卓系統(tǒng)網(wǎng)絡(luò)應(yīng)用的推薦。
步驟S1所述的記錄工具為tcpdump數(shù)據(jù)記錄工具;
步驟S1所述的網(wǎng)絡(luò)流量數(shù)據(jù),包括四類:第一、安卓應(yīng)用和自身服務(wù)器交換數(shù)據(jù)產(chǎn)生的流量;第二、安卓應(yīng)用中嵌入的第三方庫產(chǎn)生的網(wǎng)絡(luò)流量;第三、安卓應(yīng)用與CDN或者云服務(wù)器通信產(chǎn)生的網(wǎng)絡(luò)流量;第四、安卓應(yīng)用與其他類 型服務(wù)器通信產(chǎn)生的網(wǎng)絡(luò)流量。
步驟S2所述的對(duì)網(wǎng)絡(luò)流量數(shù)據(jù)進(jìn)行統(tǒng)計(jì),具體包括:
1)統(tǒng)計(jì)每一類安卓應(yīng)用的總體流量數(shù)據(jù)情況;
2)根據(jù)訪問服務(wù)器的類型不同,統(tǒng)計(jì)安卓應(yīng)用訪問網(wǎng)絡(luò)的數(shù)據(jù)類別和數(shù)據(jù)流量情況;
3)統(tǒng)計(jì)相同功能的其他安卓應(yīng)用的網(wǎng)絡(luò)流量數(shù)據(jù)情況。
步驟S3所述的構(gòu)建安卓應(yīng)用及其網(wǎng)絡(luò)流量開銷的二分圖,具體為:
設(shè)G={V,E,W}為二分圖,其中V={Va,Vh}表示結(jié)點(diǎn)集合,Va={a1,a2,...,aM}表示安卓應(yīng)用集合,Vh={h1,h2,...,hN}表示應(yīng)用所訪問的不同類型的主機(jī)集合;E表示邊集合,當(dāng)且僅當(dāng)應(yīng)用ai在操作中和主機(jī)hj建立連接,eij∈E才成立;W表示邊的權(quán)重集合,wij∈W代表每條邊的權(quán)重,同時(shí)也表示安卓應(yīng)用ai在運(yùn)行過程中可能訪問主機(jī)hj的概率;權(quán)重的計(jì)算公式如下:
其中,fij表示在應(yīng)用類別c中訪問主機(jī)hj的安卓應(yīng)用個(gè)數(shù),參數(shù)P表示在應(yīng)用類別c中每個(gè)安卓應(yīng)用訪問主機(jī)hj所產(chǎn)生的網(wǎng)絡(luò)流量大小占該應(yīng)用類別中所有應(yīng)用訪問主機(jī)hj所產(chǎn)生的網(wǎng)絡(luò)流量大小的比例;
此外,分別對(duì)每個(gè)安卓應(yīng)用和所訪問的主機(jī)類型進(jìn)行向量化,即 和并通過余弦距離公式來計(jì)算兩個(gè)應(yīng)用之間潛在的相似度,計(jì)算公式如下:
類似的,兩個(gè)訪問主機(jī)類型之間的潛在相似度可以定義為
步驟S4所述的使用規(guī)則化隨機(jī)游走算法對(duì)安卓應(yīng)用的網(wǎng)絡(luò)流量開銷進(jìn)行評(píng)分,具體為:
定義兩類網(wǎng)絡(luò)流量開銷評(píng)分TrafficCost(ai)和TrafficCost(hj);TrafficCost(ai)表示安卓應(yīng)用的網(wǎng)絡(luò)流量開銷評(píng)分,TrafficCost(hj)表示該主機(jī)類型的全局的網(wǎng)絡(luò)流量開銷;
其次,設(shè)計(jì)規(guī)則化框架對(duì)上述的兩類評(píng)分的平滑性進(jìn)行規(guī)則化,并定義開銷函數(shù)如下公式所示:
其中,λ,μ表示規(guī)則化參數(shù),分別表示TrafficCost(ai),TrafficCost(hj),表示通過外部知識(shí)推導(dǎo)出來的安卓應(yīng)用網(wǎng)絡(luò)流量開銷評(píng)分;上述公式由三個(gè)部分組成:第一部分是被參數(shù)λ所控制,并定義兩類網(wǎng)絡(luò)流量開銷評(píng)分符合先驗(yàn)知識(shí)的約束條件;第二部分是被參數(shù)μ所控制,并定義二分圖中的網(wǎng)絡(luò)流量開銷評(píng)分的整體一致性;第三部分是安卓應(yīng)用和所訪問的主機(jī)類型之間的平滑約束條件,并規(guī)定若一個(gè)安卓應(yīng)用有較大的概率去訪問一類主機(jī),那么它們的網(wǎng)絡(luò)流量開銷評(píng)分是相似的;
網(wǎng)絡(luò)流量開銷的評(píng)分問題轉(zhuǎn)化為尋找最優(yōu)的的優(yōu)化問題:使用梯度下降法計(jì)算最小化開銷函數(shù)ρ。
所述的使用梯度下降法計(jì)算最小化開銷函數(shù)ρ,具體為:
指定并通過下述兩個(gè)公式來迭代更新這兩個(gè)變量的值直到為0:
在每次迭代之后,的值都要重新標(biāo)準(zhǔn)化;并當(dāng)結(jié)果聚集后,即得到優(yōu)化后的網(wǎng)絡(luò)流量開銷評(píng)分。
所述的指定的值為采用基于概率的先驗(yàn)信息貝葉斯方法來指定。
所述的采用基于概率的先驗(yàn)信息貝葉斯方法來指定的值,具體為:
建立一個(gè)具有參數(shù)θ的貝葉斯模型,參數(shù)θ是服從Beta先驗(yàn)分布,Beta(θ;α0,β0),其概率可以通過下述公式來確定:
其中,M表示數(shù)據(jù)集中安卓應(yīng)用的數(shù)目,xi,j是一個(gè)二元的函數(shù),當(dāng)值為1的時(shí)候表示該安卓應(yīng)用在運(yùn)行時(shí)產(chǎn)生了該類型的網(wǎng)絡(luò)流量開銷,0則表示沒有產(chǎn)生該類型的網(wǎng)絡(luò)流量開銷;安卓應(yīng)用的網(wǎng)絡(luò)流量開銷評(píng)分hj和安卓應(yīng)用ai可以通過 和來確定,hk∈ai。
步驟S6所述的對(duì)安卓應(yīng)用進(jìn)行排序,具體為按照步驟S5劃分的等級(jí),在每個(gè)等級(jí)內(nèi)進(jìn)行排序:
基于網(wǎng)絡(luò)流量開銷評(píng)分的排序方式:首先根據(jù)網(wǎng)絡(luò)流量開銷評(píng)分降序來排序安卓應(yīng)用;若某些應(yīng)用具有相同的網(wǎng)絡(luò)流量開銷評(píng)分,那么將對(duì)這類應(yīng)用按照流行度評(píng)分進(jìn)行排序;
基于流行度評(píng)分的排序方式:首先根據(jù)流行度評(píng)分降序來排序安卓應(yīng)用; 若某些應(yīng)用具有相同的流行度評(píng)分,那么將對(duì)這類應(yīng)用按照網(wǎng)絡(luò)流量開銷評(píng)分進(jìn)行排序。
步驟S7所述的采用現(xiàn)代證券投資組合理論完成安卓系統(tǒng)網(wǎng)絡(luò)應(yīng)用的推薦,具體為:
在現(xiàn)代證券投資組合理論中,股票被認(rèn)作安卓應(yīng)用,未來的收益和風(fēng)險(xiǎn)分別認(rèn)作安卓應(yīng)用的流行度和網(wǎng)絡(luò)流量開銷;一個(gè)安卓應(yīng)用的證券投資組合γ可以用一組安卓應(yīng)用來表示,該組包含了n個(gè)安卓應(yīng)用,并且每個(gè)安卓應(yīng)用都有相應(yīng)的權(quán)重ωi,證券投資組合γ可以通過以下公式計(jì)算得到:
其中,權(quán)重ωi用來確定安卓應(yīng)用的排序,即根據(jù)安卓應(yīng)用的權(quán)重以降序的方式進(jìn)行排序;
對(duì)安卓應(yīng)用組合的未來收益Ε[γ]進(jìn)行定義。
其中Δi表示安卓應(yīng)用ai根據(jù)流行度排序的列表ΛPop;同樣的,根據(jù)以下公式定義安卓應(yīng)用組合的未來風(fēng)險(xiǎn)R[γ]:
其中Γi表示安卓應(yīng)用基于網(wǎng)絡(luò)流量開銷排序的列表ΛTrafficcost,Jij表示安卓應(yīng)用ai和aj之間的網(wǎng)絡(luò)流量開銷相互關(guān)系;
根據(jù)產(chǎn)生的網(wǎng)絡(luò)流量開銷的相似度來確定Jij的值:其中相似度通過以下算式計(jì)算Jaccard系數(shù)來得到:
其中Ni表示安卓應(yīng)用ai在運(yùn)行過程中所生成的不同的網(wǎng)絡(luò)流量類型的數(shù)目,Nij表示兩個(gè)安卓應(yīng)用ai和aj在運(yùn)行過程中所生成共同的網(wǎng)絡(luò)流量類型數(shù)目;
確定一組安卓應(yīng)用的權(quán)重,并以此來確定安卓應(yīng)用組合γ具有最大化的未來收益和最小化的風(fēng)險(xiǎn),計(jì)算公式如下所示:
其中b表示特定的網(wǎng)絡(luò)流量開銷偏好參數(shù),是由給定的網(wǎng)絡(luò)流量開銷等級(jí)L*所定義;通過優(yōu)化權(quán)重ω來得到上述公式的最優(yōu)解:
其中,E*可以通過以下公式計(jì)算得到,
其中,x=1TΣ-11,y=1TΣ-1E,z=ETΣ-1E。
本發(fā)明提供的這種安卓應(yīng)用的推薦方法,通過獲取和統(tǒng)計(jì)安卓應(yīng)用運(yùn)行時(shí)的產(chǎn)生的網(wǎng)絡(luò)數(shù)據(jù)流量,然后根據(jù)統(tǒng)計(jì)結(jié)果對(duì)安卓網(wǎng)絡(luò)應(yīng)用進(jìn)行評(píng)分和分級(jí),最終根據(jù)最優(yōu)化理論得到安卓網(wǎng)絡(luò)應(yīng)用的排序結(jié)果,并根據(jù)排序結(jié)果進(jìn)行推薦;本發(fā)明方法融合了安卓應(yīng)用的網(wǎng)絡(luò)開銷和流行度,本以此做基礎(chǔ)進(jìn)行安卓應(yīng)用的推薦,因此本發(fā)明方法在對(duì)用戶進(jìn)行應(yīng)用推薦時(shí),能夠有效節(jié)省用戶的移動(dòng)數(shù)據(jù)開銷;而且本發(fā)明方法實(shí)施起來,計(jì)算速度快,處理1000個(gè)安卓應(yīng)用僅耗時(shí)142毫秒,能夠快速在線對(duì)安卓應(yīng)用市場(chǎng)中的海量應(yīng)用進(jìn)行推薦,實(shí)用性極佳。
附圖說明
圖1為背景技術(shù)的某安卓應(yīng)用評(píng)分和請(qǐng)求權(quán)限示意圖。
圖2為本發(fā)明方法的流程圖。
圖3為本發(fā)明的應(yīng)用-訪問主機(jī)二分圖的示意圖。
圖4為本發(fā)明的安卓應(yīng)用的哈希矩陣示意圖。
圖5為本發(fā)明的網(wǎng)絡(luò)流量開銷評(píng)分確定的時(shí)間開銷示意圖。
圖6為本發(fā)明的網(wǎng)絡(luò)流量開銷等級(jí)劃分的時(shí)間開銷示意圖。
圖7為本發(fā)明的安卓應(yīng)用哈希矩陣建立的時(shí)間開銷示意圖。
圖8為本發(fā)明方法與RankNet、RankBoost和ListNet在Precision指標(biāo)下的對(duì)比圖。
圖9為本發(fā)明方法與RankNet、RankBoost和ListNet在NDCG指標(biāo)下的對(duì)比圖。
圖10為本發(fā)明方法與RankNet、RankBoost和ListNet在ERR指標(biāo)下的對(duì)比圖。
圖11為本發(fā)明方法與基于流行度的推薦方法、基于網(wǎng)絡(luò)流量開銷的推薦方法在推薦等級(jí)1的安卓應(yīng)用時(shí)NDCG值的對(duì)比示意圖。
圖12為本發(fā)明方法與基于流行度的推薦方法、基于網(wǎng)絡(luò)流量開銷的推薦方法在推薦等級(jí)3的安卓應(yīng)用時(shí)NDCG值的對(duì)比示意圖。
圖13為本發(fā)明方法與基于流行度的推薦方法、基于網(wǎng)絡(luò)流量開銷的推薦方法在推薦等級(jí)5的安卓應(yīng)用時(shí)NDCG值的對(duì)比示意圖。
具體實(shí)施方式
如圖2所示為本發(fā)明的方法流程圖:本發(fā)明提供的這種安卓應(yīng)用的推薦方法,包括如下步驟:
S1.采用安卓應(yīng)用自動(dòng)執(zhí)行工具執(zhí)行所有需要推薦的安卓應(yīng)用,并使用記錄工具tcpdump捕獲需要推薦的安卓應(yīng)用在執(zhí)行過程中產(chǎn)生的網(wǎng)絡(luò)流量數(shù)據(jù);
這些數(shù)據(jù)分為四類:第一、安卓應(yīng)用和自身服務(wù)器交換數(shù)據(jù)產(chǎn)生的流量;第二、安卓應(yīng)用中嵌入的第三方庫產(chǎn)生的網(wǎng)絡(luò)流量,比如廣告庫;第三、安卓應(yīng)用與CDN或者云服務(wù)器通信產(chǎn)生的網(wǎng)絡(luò)流量,比如Akamai、Amazon;第四、安卓應(yīng)用與其他類型服務(wù)器通信產(chǎn)生的網(wǎng)絡(luò)流量;通過這些信息可以全面的反應(yīng)一個(gè)安卓應(yīng)用在運(yùn)行過程中所產(chǎn)生的網(wǎng)絡(luò)流量開銷;
S2.根據(jù)步驟S1獲取的網(wǎng)絡(luò)流量數(shù)據(jù),從安卓應(yīng)用總體情況、安卓應(yīng)用網(wǎng)絡(luò)流量開銷成分和相同功能的其他安卓應(yīng)用網(wǎng)絡(luò)流量開銷三個(gè)方面,對(duì)需要推薦的安卓應(yīng)用進(jìn)行統(tǒng)計(jì);具體包括如下三類數(shù)據(jù)統(tǒng)計(jì):
1)統(tǒng)計(jì)每一類安卓應(yīng)用的總體流量數(shù)據(jù)情況;
2)根據(jù)訪問服務(wù)器的類型不同,統(tǒng)計(jì)安卓應(yīng)用訪問網(wǎng)絡(luò)的數(shù)據(jù)類別和數(shù)據(jù)流量情況;
3)統(tǒng)計(jì)相同功能的其他安卓應(yīng)用的網(wǎng)絡(luò)流量數(shù)據(jù)情況;
S3.根據(jù)步驟S2得到的統(tǒng)計(jì)數(shù)據(jù)結(jié)果,構(gòu)建安卓應(yīng)用及其網(wǎng)絡(luò)流量開銷的二分圖;
所述的安卓應(yīng)用及其網(wǎng)絡(luò)流量開銷的二分圖如圖3所示,構(gòu)建安卓應(yīng)用及其網(wǎng)絡(luò)流量開銷的二分圖則具體包括如下步驟:
設(shè)G={V,E,W}為二分圖,其中V={Va,Vh}表示結(jié)點(diǎn)集合,Va={a1,a2,...,aM}表示安卓應(yīng)用集合,Vh={h1,h2,...,hN}表示應(yīng)用所訪問的不同類型的主機(jī)集合;E表示邊集合,當(dāng)且僅當(dāng)應(yīng)用ai在操作中和主機(jī)hj建立連接,eij∈E才成立;W表示邊的權(quán)重集合,wij∈W代表每條邊的權(quán)重,同時(shí)也表示安卓應(yīng)用ai在運(yùn)行過程中 可能訪問主機(jī)hj的概率;權(quán)重的計(jì)算公式如下:
其中,fij表示在應(yīng)用類別c中訪問主機(jī)hj的安卓應(yīng)用個(gè)數(shù),參數(shù)P表示在應(yīng)用類別c中每個(gè)安卓應(yīng)用訪問主機(jī)hj所產(chǎn)生的網(wǎng)絡(luò)流量大小占該應(yīng)用類別中所有應(yīng)用訪問主機(jī)hj所產(chǎn)生的網(wǎng)絡(luò)流量大小的比例;
此外,分別對(duì)每個(gè)安卓應(yīng)用和所訪問的主機(jī)類型進(jìn)行向量化,即 和并通過余弦距離公式來計(jì)算兩個(gè)應(yīng)用之間潛在的相似度,計(jì)算公式如下:
類似的,兩個(gè)訪問主機(jī)類型之間的潛在相似度可以定義為
S4.使用規(guī)則化隨機(jī)游走算法對(duì)安卓應(yīng)用的網(wǎng)絡(luò)流量開銷進(jìn)行評(píng)分,具體為:
定義兩類網(wǎng)絡(luò)流量開銷評(píng)分TrafficCost(ai)和TrafficCost(hj);TrafficCost(ai)表示安卓應(yīng)用的網(wǎng)絡(luò)流量開銷評(píng)分,TrafficCost(hj)表示該主機(jī)類型的全局的網(wǎng)絡(luò)流量開銷;
其次,設(shè)計(jì)規(guī)則化框架對(duì)上述的兩類評(píng)分的平滑性進(jìn)行規(guī)則化,并定義開銷函數(shù)如下公式所示:
其中,λ,μ表示規(guī)則化參數(shù),分別表示TrafficCost(ai),TrafficCost(hj),表 示通過外部知識(shí)推導(dǎo)出來的安卓應(yīng)用網(wǎng)絡(luò)流量開銷評(píng)分;上述公式由三個(gè)部分組成:第一部分是被參數(shù)λ所控制,并定義兩類網(wǎng)絡(luò)流量開銷評(píng)分符合先驗(yàn)知識(shí)的約束條件;第二部分是被參數(shù)μ所控制,并定義二分圖中的網(wǎng)絡(luò)流量開銷評(píng)分的整體一致性;第三部分是安卓應(yīng)用和所訪問的主機(jī)類型之間的平滑約束條件,并規(guī)定若一個(gè)安卓應(yīng)用有較大的概率X(所述的概率X根據(jù)所需要進(jìn)行評(píng)價(jià)和推薦的安卓應(yīng)用的具體情況來確定)去訪問一類主機(jī),那么它們的網(wǎng)絡(luò)流量開銷評(píng)分是相似的,而所謂的網(wǎng)絡(luò)流量開銷評(píng)分相似則指的是在下一步驟進(jìn)行等級(jí)劃分時(shí),它們應(yīng)被劃分為一個(gè)等級(jí);
網(wǎng)絡(luò)流量開銷的評(píng)分問題轉(zhuǎn)化為尋找最優(yōu)的的優(yōu)化問題:使用梯度下降法計(jì)算最小化開銷函數(shù)ρ:
采用基于概率的先驗(yàn)信息貝葉斯方法,建立一個(gè)具有參數(shù)θ的貝葉斯模型,參數(shù)θ是服從Beta先驗(yàn)分布,Beta(θ;α0,β0),其概率可以通過下述公式來確定:
其中,M表示數(shù)據(jù)集中安卓應(yīng)用的數(shù)目,xi,j是一個(gè)二元的函數(shù),當(dāng)值為1的時(shí)候表示該安卓應(yīng)用在運(yùn)行時(shí)產(chǎn)生了該類型的網(wǎng)絡(luò)流量開銷,0則表示沒有產(chǎn)生該類型的網(wǎng)絡(luò)流量開銷;安卓應(yīng)用的網(wǎng)絡(luò)流量開銷評(píng)分hj和安卓應(yīng)用ai可以通過和來確定,hk∈ai;并根據(jù)計(jì)算結(jié)果指定 并通過下述兩個(gè)公式來迭代更新這兩個(gè)變量的值直到為0:
在每次迭代之后,的值都要重新標(biāo)準(zhǔn)化;并當(dāng)結(jié)果聚集后,即得到優(yōu)化后的網(wǎng)絡(luò)流量開銷評(píng)分;
S5.根據(jù)步驟S4得到的評(píng)分結(jié)果,采用基于變異系數(shù)的等級(jí)劃分算法對(duì)每個(gè)安卓應(yīng)用的網(wǎng)絡(luò)流量開銷進(jìn)行等級(jí)劃分;
S6.根據(jù)步驟S5得到的等級(jí)劃分結(jié)果、安卓應(yīng)用的流行度和安卓應(yīng)用的網(wǎng)絡(luò)流量開銷對(duì)安卓應(yīng)用進(jìn)行排序,具體為按照步驟S5劃分的等級(jí),在每個(gè)等級(jí)內(nèi)進(jìn)行排序:
基于網(wǎng)絡(luò)流量開銷評(píng)分的排序方式:首先根據(jù)網(wǎng)絡(luò)流量開銷評(píng)分降序來排序安卓應(yīng)用;若某些應(yīng)用具有相同的網(wǎng)絡(luò)流量開銷評(píng)分,那么將對(duì)這類應(yīng)用按照流行度評(píng)分進(jìn)行排序;
基于流行度評(píng)分的排序方式:首先根據(jù)流行度評(píng)分降序來排序安卓應(yīng)用;若某些應(yīng)用具有相同的流行度評(píng)分,那么將對(duì)這類應(yīng)用按照網(wǎng)絡(luò)流量開銷評(píng)分進(jìn)行排序;
S7.構(gòu)造安卓應(yīng)用哈希矩陣(結(jié)構(gòu)如圖4),并根據(jù)構(gòu)造的安卓應(yīng)用哈希矩陣和步驟S6的安卓應(yīng)用排序結(jié)果,采用現(xiàn)代證券投資組合理論完成安卓系統(tǒng)網(wǎng)絡(luò)應(yīng)用的推薦。
所述的采用現(xiàn)代證券投資組合理論完成安卓系統(tǒng)網(wǎng)絡(luò)應(yīng)用的推薦,具體為:
在現(xiàn)代證券投資組合理論中,股票被認(rèn)作安卓應(yīng)用,未來的收益和風(fēng)險(xiǎn)分別認(rèn)作安卓應(yīng)用的流行度和網(wǎng)絡(luò)流量開銷;一個(gè)安卓應(yīng)用的證券投資組合γ可以用一組安卓應(yīng)用來表示,該組包含了n個(gè)安卓應(yīng)用,并且每個(gè)安卓應(yīng)用都有相應(yīng) 的權(quán)重ωi,證券投資組合γ可以通過以下公式計(jì)算得到:
其中,權(quán)重ωi用來確定安卓應(yīng)用的排序,即根據(jù)安卓應(yīng)用的權(quán)重以降序的方式進(jìn)行排序;
對(duì)安卓應(yīng)用組合的未來收益Ε[γ]進(jìn)行定義。
其中Δi表示安卓應(yīng)用ai根據(jù)流行度排序的列表ΛPop;同樣的,根據(jù)以下公式定義安卓應(yīng)用組合的未來風(fēng)險(xiǎn)R[γ]:
其中Γi表示安卓應(yīng)用基于網(wǎng)絡(luò)流量開銷排序的列表ΛTrafficcost,Jij表示安卓應(yīng)用ai和aj之間的網(wǎng)絡(luò)流量開銷相互關(guān)系;
根據(jù)產(chǎn)生的網(wǎng)絡(luò)流量開銷的相似度來確定Jij的值:其中相似度通過以下算式計(jì)算Jaccard系數(shù)來得到:
其中Ni表示安卓應(yīng)用ai在運(yùn)行過程中所生成的不同的網(wǎng)絡(luò)流量類型的數(shù)目,Nij表示兩個(gè)安卓應(yīng)用ai和aj在運(yùn)行過程中所生成共同的網(wǎng)絡(luò)流量類型數(shù)目;
確定一組安卓應(yīng)用的權(quán)重,并以此來確定安卓應(yīng)用組合γ具有最大化的未來收益和最小化的風(fēng)險(xiǎn),計(jì)算公式如下所示:
其中b表示特定的網(wǎng)絡(luò)流量開銷偏好參數(shù),是由給定的網(wǎng)絡(luò)流量開銷等級(jí)L*所定義;通過優(yōu)化權(quán)重ω來得到上述公式的最優(yōu)解:
其中,E*可以通過以下公式計(jì)算得到,
其中,x=1TΣ-11,y=1TΣ-1E,z=ETΣ-1E。
本發(fā)明方法綜合考慮了安卓應(yīng)用運(yùn)行時(shí)可能產(chǎn)生的網(wǎng)絡(luò)流量參數(shù)和安卓應(yīng)用的流行程度,因此能夠綜合兩者指標(biāo)給出負(fù)荷消費(fèi)者需求、而且能夠有效節(jié)省用戶移動(dòng)數(shù)據(jù)開銷的安卓系統(tǒng)網(wǎng)絡(luò)應(yīng)用的推薦結(jié)果。
圖5為本發(fā)明的網(wǎng)絡(luò)流量開銷評(píng)分確定的時(shí)間開銷示意圖,圖6為本發(fā)明的網(wǎng)絡(luò)流量開銷等級(jí)劃分的時(shí)間開銷示意圖,圖7為本發(fā)明的安卓應(yīng)用哈希矩陣建立的時(shí)間開銷示意圖;本發(fā)明的推薦方法主要分為線下分析和線上推薦:安卓應(yīng)用查找可以通過關(guān)鍵字在安卓應(yīng)用哈希矩陣中快速定位得到,因此在線推薦階段處理速度較快,適合在線推薦安卓應(yīng)用給用戶;而在線下分析階段,時(shí)間開銷主要來自三個(gè)部分:網(wǎng)絡(luò)流量開銷評(píng)分確定、網(wǎng)絡(luò)流量開銷等級(jí)劃分和安卓應(yīng)用哈希矩陣建立;圖5~圖7即為線下分析的時(shí)間開銷示意圖,所述的時(shí)間開銷均在一臺(tái)CPU為Intel i5 3.2GHZ,內(nèi)存為8GB的服務(wù)器上完成;其中,x軸表示安卓應(yīng)用數(shù)目,y軸表示時(shí)間開銷。從圖5~圖7可以看到,完成這三個(gè)部分所需要的時(shí)間開銷隨著安卓應(yīng)用數(shù)目的增加呈線性增長,這說明本工作提出這三種方法在離線分析階段具備可擴(kuò)展性,而且總體計(jì)算時(shí)間較短,處理1000個(gè)安卓應(yīng)用最長也僅需耗時(shí)140多毫秒,說明本發(fā)明方法計(jì)算時(shí)間短,能夠有效應(yīng)用于實(shí)際應(yīng)用場(chǎng)合。
如圖8~圖10為本發(fā)明方法與現(xiàn)有的RankNet、RankBoost和ListNet算法在Precision、NDCG和ERR這三個(gè)指標(biāo)上的對(duì)比結(jié)果示意圖。
其中,Precision、NDCG和ERR這三個(gè)指標(biāo)定義如下:
其中,CN,rec表示排序列表里面安卓應(yīng)用的個(gè)數(shù),Cadopted表示排序列表中符合用戶需要的安卓應(yīng)用個(gè)數(shù),N表示用戶在搜索某類型應(yīng)用該應(yīng)用商店提供的應(yīng)用的總數(shù)量。
其中,DCG是用來衡量排序性能的指標(biāo),NDCG就是通過IDCG對(duì)DCG進(jìn)行歸一化后的結(jié)果,reli表示相關(guān)度評(píng)分,即安卓應(yīng)用網(wǎng)絡(luò)流量開銷評(píng)分。NDCG的值越大表示排序結(jié)果越好。
其中,r表示排序列表中的位置,Ri表示相關(guān)度的概率。ERR和NDCG一樣,值越大表示排序方法的性能越好。
如圖8~10可以看到,隨著K值的增加,本發(fā)明提出的方法,即MRTC在三個(gè)指標(biāo)的比較中都要優(yōu)于其他三種方法。在NDCG指標(biāo)的比較中,相比于RankNet,RankBoost和ListNet算法,MRTC分別提升6.01%,1.96%和6.68%。在ERR指標(biāo)的比較中,相比于RankNet,RankBoost和ListNet算法,MRTC分別提升4.63%,17.74%和5.26%。在Precision指標(biāo)的比較中,雖然相比于其他三種方法,MRTC并沒有明顯的提升,但是也和這三種方法保持相似的結(jié)果。該結(jié)果說明本工作提出的方法在對(duì)安卓應(yīng)用進(jìn)行排序的時(shí)候不僅考慮安卓應(yīng)用 在運(yùn)行時(shí)所產(chǎn)生的網(wǎng)絡(luò)流量開銷的因素,同時(shí)也在排序指標(biāo)方面優(yōu)于已有的方法或者與已有的方法保持相似的結(jié)果。
如圖11~13本發(fā)明方法與基于流行度的推薦方法、基于網(wǎng)絡(luò)流量開銷的推薦方法在推薦不同等級(jí)的安卓應(yīng)用時(shí)NDCG值的對(duì)比示意圖:本發(fā)明方法在圖中的示例為recommend by hybid,NDCG_Pop表示基于流行度(Popularity)的推薦結(jié)果的NDCG值,NDCG_TC表示基于網(wǎng)絡(luò)流量開銷的推薦結(jié)果的NDCG值;圖11~13分別對(duì)Level 1、Level 3和Level 5三個(gè)等級(jí)中的安卓應(yīng)用通過三種不同的推薦的策略得到的NDCG指標(biāo)進(jìn)行比較。首先,在基于安卓應(yīng)用流行度的推薦策略下,NDCG_Pop的值要高于NDCG_TC;其次,在基于安卓應(yīng)用網(wǎng)絡(luò)流量開銷的推薦策略下,NDCG_TC的值要高于NDCG_Pop;最后,在基于混合推薦策略下,NDCG_Pop的值和NDCG_TC的值趨于平衡,沒有很大的差別。這說明本工作提出的基于混合的推薦策略能較好的在基于流行度推薦結(jié)果和基于網(wǎng)絡(luò)流量開銷推薦結(jié)果之間取得平衡,為安卓用戶推薦既具有較高流行度的安卓應(yīng)用,同時(shí)具有較低的網(wǎng)絡(luò)流量開銷。