[發(fā)明專利]基于帶屬性異構(gòu)網(wǎng)絡(luò)嵌入的APP啟動(dòng)加速方法有效
| 申請(qǐng)?zhí)枺?/td> | 202010161063.0 | 申請(qǐng)日: | 2020-03-10 |
| 公開(公告)號(hào): | CN111381902B | 公開(公告)日: | 2021-04-13 |
| 發(fā)明(設(shè)計(jì))人: | 周逸菲;李少勇;劉亞萍 | 申請(qǐng)(專利權(quán))人: | 中南大學(xué) |
| 主分類號(hào): | G06F9/445 | 分類號(hào): | G06F9/445;G06N3/04;G06N3/08;H04L29/08 |
| 代理公司: | 長沙中科啟明知識(shí)產(chǎn)權(quán)代理事務(wù)所(普通合伙) 43226 | 代理人: | 匡治兵 |
| 地址: | 410083 *** | 國省代碼: | 湖南;43 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 基于 屬性 網(wǎng)絡(luò) 嵌入 app 啟動(dòng) 加速 方法 | ||
1.一種基于帶屬性異構(gòu)網(wǎng)絡(luò)嵌入的APP啟動(dòng)加速方法,其特征在于使用一種帶屬性異構(gòu)網(wǎng)絡(luò)嵌入的APP啟動(dòng)預(yù)測方法預(yù)測下一個(gè)可能啟動(dòng)的應(yīng)用,利用安卓系統(tǒng)提供的各種服務(wù)進(jìn)程實(shí)現(xiàn)應(yīng)用的提前載入,具體包含如下步驟:
第一步,構(gòu)建基于帶屬性異構(gòu)網(wǎng)絡(luò)嵌入的應(yīng)用啟動(dòng)加速系統(tǒng),該系統(tǒng)由兩層構(gòu)成:第一層是運(yùn)行于移動(dòng)終端上的數(shù)據(jù)處理模塊,第二層是運(yùn)行于云端的模型訓(xùn)練系統(tǒng);
數(shù)據(jù)處理模塊安裝在移動(dòng)終端,與移動(dòng)終端中安卓系統(tǒng)的服務(wù)層進(jìn)行交互,收集、存儲(chǔ)應(yīng)用使用相關(guān)記錄,并對(duì)記錄進(jìn)行預(yù)處理操作后生成訓(xùn)練相關(guān)數(shù)據(jù)存儲(chǔ)在移動(dòng)終端,然后與云端模型訓(xùn)練系統(tǒng)交互,將訓(xùn)練相關(guān)數(shù)據(jù)發(fā)送給云端,從云端獲取根據(jù)訓(xùn)練相關(guān)數(shù)據(jù)生成的應(yīng)用啟動(dòng)預(yù)測模型實(shí)現(xiàn)應(yīng)用啟動(dòng)預(yù)測及應(yīng)用加速;數(shù)據(jù)處理模塊由數(shù)據(jù)收集模塊、數(shù)據(jù)預(yù)處理模塊、數(shù)據(jù)上傳模塊、應(yīng)用啟動(dòng)預(yù)測模塊、應(yīng)用啟動(dòng)加速模塊、終端數(shù)據(jù)庫組成;服務(wù)層是數(shù)據(jù)處理模塊需要從安卓系統(tǒng)得到的相關(guān)服務(wù),包括ActiveManager、ActiveManagerService、TelephonyManager、WiFiManager、BatteryService五個(gè)服務(wù)進(jìn)程;
終端數(shù)據(jù)庫存儲(chǔ)應(yīng)用使用相關(guān)記錄以及預(yù)處理之后的應(yīng)用使用相關(guān)記錄,包含三類表,一類存儲(chǔ)應(yīng)用使用相關(guān)記錄,一類存儲(chǔ)經(jīng)過預(yù)處理之后的應(yīng)用使用相關(guān)記錄,最后一類存儲(chǔ)應(yīng)用啟動(dòng)預(yù)測模型相關(guān)信息;
應(yīng)用使用相關(guān)記錄包括應(yīng)用使用記錄表、基站信息表、WiFi信息表、移動(dòng)終端配置信息表四個(gè)表;應(yīng)用使用記錄表包含四個(gè)數(shù)據(jù)域,分別為應(yīng)用使用記錄標(biāo)識(shí)ID、應(yīng)用名稱、應(yīng)用啟動(dòng)時(shí)間戳、應(yīng)用使用時(shí)長,其中:應(yīng)用使用記錄標(biāo)識(shí)ID是表明應(yīng)用使用記錄的唯一標(biāo)識(shí);應(yīng)用名稱使用應(yīng)用對(duì)應(yīng)的安裝包名稱標(biāo)識(shí);應(yīng)用啟動(dòng)時(shí)間戳記錄應(yīng)用啟動(dòng)的時(shí)間;應(yīng)用使用時(shí)長是應(yīng)用從啟動(dòng)到結(jié)束的時(shí)長;基站信息表包含兩個(gè)數(shù)據(jù)域,分別為基站標(biāo)識(shí)ID、基站信息獲取時(shí)間戳,其中:基站標(biāo)識(shí)ID是加密之后的基站ID;基站信息獲取時(shí)間戳記錄從移動(dòng)終端獲取基站信息時(shí)的時(shí)間;WiFi信息表包含四個(gè)域,分別為WiFi信息獲取時(shí)間戳、服務(wù)集標(biāo)識(shí)SSID、MAC地址BSSID、WiFi速率,其中:WiFi信息獲取時(shí)間戳是從移動(dòng)終端獲取WiFi信息時(shí)的時(shí)間;服務(wù)集標(biāo)識(shí)SSID以及MAC地址BSSID都是用來標(biāo)記WiFi的標(biāo)識(shí);WiFi速率記錄當(dāng)前時(shí)間的網(wǎng)絡(luò)速率;移動(dòng)終端配置信息表包含五個(gè)域,分別為移動(dòng)終端配置記錄標(biāo)識(shí)ID、移動(dòng)終端電量、移動(dòng)終端是否處于充電狀態(tài)、移動(dòng)終端是否已經(jīng)充滿電、配置信息獲取時(shí)間戳,其中:移動(dòng)終端配置記錄標(biāo)識(shí)ID是移動(dòng)終端配置信息記錄的唯一標(biāo)識(shí);移動(dòng)終端電量表明當(dāng)前移動(dòng)終端電量的多少;移動(dòng)終端是否處于充電狀態(tài)說明移動(dòng)終端是否正在充電;移動(dòng)終端是否已經(jīng)充滿電表明移動(dòng)終端是否電已充滿;配置信息獲取時(shí)間戳記錄獲取配置信息的時(shí)間;
預(yù)處理之后的應(yīng)用使用相關(guān)記錄包含終端節(jié)點(diǎn)屬性表、終端訓(xùn)練數(shù)據(jù)表兩個(gè)表;終端節(jié)點(diǎn)屬性表存儲(chǔ)帶屬性的異構(gòu)網(wǎng)絡(luò)的節(jié)點(diǎn)的相關(guān)信息,帶屬性的異構(gòu)網(wǎng)絡(luò)包含時(shí)間、位置、應(yīng)用三種節(jié)點(diǎn),還包含時(shí)間與應(yīng)用、位置與應(yīng)用、前序應(yīng)用與應(yīng)用三種邊關(guān)系;終端節(jié)點(diǎn)屬性表包含四個(gè)域,分別為節(jié)點(diǎn)標(biāo)識(shí)ID、節(jié)點(diǎn)名稱、節(jié)點(diǎn)屬性、節(jié)點(diǎn)類型;節(jié)點(diǎn)標(biāo)識(shí)ID是節(jié)點(diǎn)在異構(gòu)網(wǎng)絡(luò)中的唯一標(biāo)識(shí),根據(jù)每一個(gè)節(jié)點(diǎn)名稱生成;應(yīng)用節(jié)點(diǎn)名稱是應(yīng)用使用記錄表中的應(yīng)用名稱,節(jié)點(diǎn)類型使用數(shù)值1標(biāo)記,節(jié)點(diǎn)屬性使用應(yīng)用類別對(duì)應(yīng)的獨(dú)熱編碼表示;時(shí)間節(jié)點(diǎn)名稱使用hour of day標(biāo)識(shí),形式為YYYYMMDDHH,表示某年某月某日的某個(gè)小時(shí),節(jié)點(diǎn)類型使用數(shù)值2標(biāo)記,節(jié)點(diǎn)屬性使用時(shí)間節(jié)點(diǎn)所在的星期幾表示,表示為數(shù)值1到7;位置節(jié)點(diǎn)名稱使用基站標(biāo)識(shí)ID表示,同一個(gè)基站表示同一個(gè)位置,節(jié)點(diǎn)類型使用數(shù)值3標(biāo)記,節(jié)點(diǎn)屬性使用基站對(duì)應(yīng)的獨(dú)熱編碼表示;終端訓(xùn)練數(shù)據(jù)表中存儲(chǔ)訓(xùn)練數(shù)據(jù),即預(yù)處理之后的應(yīng)用使用記錄,包含四個(gè)域,分別為應(yīng)用節(jié)點(diǎn)標(biāo)識(shí)ID、時(shí)間節(jié)點(diǎn)標(biāo)識(shí)ID、位置節(jié)點(diǎn)標(biāo)識(shí)ID、前序應(yīng)用節(jié)點(diǎn)標(biāo)識(shí)ID,其中:應(yīng)用節(jié)點(diǎn)標(biāo)識(shí)ID、時(shí)間結(jié)點(diǎn)標(biāo)識(shí)ID、位置節(jié)點(diǎn)標(biāo)ID、前序應(yīng)用節(jié)點(diǎn)標(biāo)識(shí)ID均從終端節(jié)點(diǎn)屬性表獲得,前序應(yīng)用節(jié)點(diǎn)表示使用當(dāng)前應(yīng)用之前的應(yīng)用;
終端數(shù)據(jù)庫第三類表存儲(chǔ)應(yīng)用啟動(dòng)預(yù)測模型相關(guān)信息,從云端獲取的應(yīng)用啟動(dòng)預(yù)測模型以文件的形式存儲(chǔ)在移動(dòng)終端,使用終端模型索引表存儲(chǔ)模型文件在移動(dòng)終端的位置信息;終端模型索引表記錄應(yīng)用啟動(dòng)預(yù)測模型相關(guān)信息,包含三個(gè)域,分別為模型存儲(chǔ)時(shí)間戳、模型文件名稱、模型文件位置,其中:模型存儲(chǔ)時(shí)間戳是移動(dòng)終端存儲(chǔ)從云端獲取啟動(dòng)預(yù)測模型的時(shí)間;模型文件名稱以“模型名稱_時(shí)間戳”形式表示,模型名稱指啟動(dòng)預(yù)測模型的命名;模型文件位置記錄存儲(chǔ)啟動(dòng)預(yù)測模型的文件在移動(dòng)終端上的位置;
云服務(wù)器上安裝有模型訓(xùn)練系統(tǒng),模型訓(xùn)練系統(tǒng)負(fù)責(zé)訓(xùn)練數(shù)據(jù)的接收與存儲(chǔ)、啟動(dòng)預(yù)測模型的訓(xùn)練以及訓(xùn)練后的啟動(dòng)預(yù)測模型的下發(fā),由應(yīng)用記錄存儲(chǔ)模塊、模型訓(xùn)練模塊、模型交互模塊以及云端數(shù)據(jù)庫組成;
云端數(shù)據(jù)庫包含云端訓(xùn)練數(shù)據(jù)表、云端節(jié)點(diǎn)屬性表、云端模型索引表三個(gè)表;云端訓(xùn)練數(shù)據(jù)表與終端數(shù)據(jù)庫中的終端訓(xùn)練數(shù)據(jù)表對(duì)應(yīng),存儲(chǔ)終端用戶上傳到云端的訓(xùn)練數(shù)據(jù),包含五個(gè)域,分別為用戶標(biāo)識(shí)ID、應(yīng)用節(jié)點(diǎn)標(biāo)識(shí)ID、時(shí)間節(jié)點(diǎn)標(biāo)識(shí)ID、位置節(jié)點(diǎn)標(biāo)識(shí)ID、前序應(yīng)用節(jié)點(diǎn)標(biāo)識(shí)ID,其中:用戶標(biāo)識(shí)ID是移動(dòng)終端對(duì)應(yīng)用戶的唯一標(biāo)識(shí);應(yīng)用節(jié)點(diǎn)標(biāo)識(shí)ID、時(shí)間結(jié)點(diǎn)標(biāo)識(shí)ID、位置節(jié)點(diǎn)標(biāo)ID、前序應(yīng)用標(biāo)識(shí)ID與終端節(jié)點(diǎn)屬性表中的相同;云端節(jié)點(diǎn)屬性表包含五個(gè)域,分別為用戶標(biāo)識(shí)ID、節(jié)點(diǎn)標(biāo)識(shí)ID、節(jié)點(diǎn)名稱、節(jié)點(diǎn)屬性、節(jié)點(diǎn)類型,其中用戶標(biāo)識(shí)ID與云端訓(xùn)練數(shù)據(jù)表中的相同,節(jié)點(diǎn)標(biāo)識(shí)ID、節(jié)點(diǎn)名稱、節(jié)點(diǎn)屬性、節(jié)點(diǎn)類型與終端節(jié)點(diǎn)屬性表中的相同;云端模型索引表記錄云端生成的啟動(dòng)預(yù)測模型對(duì)應(yīng)的索引信息,包含四個(gè)域,分別為用戶標(biāo)識(shí)ID、模型創(chuàng)建時(shí)間戳、模型存儲(chǔ)文件名稱、模型存儲(chǔ)文件位置,其中:用戶標(biāo)識(shí)ID與云端訓(xùn)練數(shù)據(jù)表中的相同;模型創(chuàng)建時(shí)間戳是云端生成啟動(dòng)預(yù)測模型的時(shí)間;模型存儲(chǔ)文件名稱以“用戶標(biāo)識(shí)ID_模型名稱_時(shí)間戳”形式表示,其中的“模型名稱_時(shí)間戳”與終端模型索引表中的相同;模型文件位置記錄存儲(chǔ)啟動(dòng)預(yù)測模型的文件在云端的位置;
數(shù)據(jù)收集模塊與終端數(shù)據(jù)庫、服務(wù)進(jìn)程ActivityManager、服務(wù)進(jìn)程TelephonyManager、服務(wù)進(jìn)程WiFiManager、服務(wù)進(jìn)程BatteryService相連;數(shù)據(jù)收集模塊利用這4個(gè)服務(wù)進(jìn)程從移動(dòng)終端收集用戶的應(yīng)用使用記錄,包括應(yīng)用啟動(dòng)時(shí)間戳、應(yīng)用使用時(shí)長、當(dāng)前使用的基站信息、當(dāng)前連接的WiFi信息、設(shè)備配置信息,并將收集的信息分別存儲(chǔ)到終端數(shù)據(jù)庫的應(yīng)用使用記錄表、基站信息表、WiFi信息表、移動(dòng)設(shè)備配置信息表;
數(shù)據(jù)預(yù)處理模塊與數(shù)據(jù)上傳模塊、終端數(shù)據(jù)庫相連,數(shù)據(jù)預(yù)處理模塊對(duì)從終端數(shù)據(jù)庫中獲取的應(yīng)用使用記錄表、基站信息表讀取的數(shù)據(jù)進(jìn)行預(yù)處理,生成與啟動(dòng)預(yù)測模型匹配的終端節(jié)點(diǎn)屬性表、終端訓(xùn)練數(shù)據(jù)表,向數(shù)據(jù)上傳模塊發(fā)送第一數(shù)據(jù)上傳請(qǐng)求,第一數(shù)據(jù)上傳請(qǐng)求中包含終端訓(xùn)練數(shù)據(jù)表中的N條記錄、終端節(jié)點(diǎn)屬性表中的M條記錄,N和M均為正整數(shù);
數(shù)據(jù)上傳模塊與數(shù)據(jù)預(yù)處理模塊、云端的應(yīng)用記錄存儲(chǔ)模塊相連,用于向云端上傳與啟動(dòng)預(yù)測模型匹配的訓(xùn)練數(shù)據(jù)以及節(jié)點(diǎn)屬性信息;數(shù)據(jù)上傳模塊從數(shù)據(jù)預(yù)處理模塊接收數(shù)據(jù)上傳請(qǐng)求,從中提取訓(xùn)練數(shù)據(jù)以及節(jié)點(diǎn)屬性信息,獲取用戶標(biāo)識(shí)ID,向云端的應(yīng)用記錄存儲(chǔ)模塊發(fā)送第二數(shù)據(jù)上傳請(qǐng)求,第二數(shù)據(jù)上傳請(qǐng)求中包含用戶標(biāo)識(shí)ID、終端訓(xùn)練數(shù)據(jù)表中的N條記錄、終端節(jié)點(diǎn)屬性表中的M條記錄;
應(yīng)用記錄存儲(chǔ)模塊與數(shù)據(jù)上傳模塊、云端數(shù)據(jù)庫相連,用于接收移動(dòng)終端上傳的訓(xùn)練數(shù)據(jù)、節(jié)點(diǎn)屬性并存儲(chǔ)到云端數(shù)據(jù)庫中;應(yīng)用記錄存儲(chǔ)模塊接收數(shù)據(jù)上傳模塊的第二數(shù)據(jù)上傳請(qǐng)求,從第二數(shù)據(jù)上傳請(qǐng)求中提取用戶標(biāo)識(shí)ID、訓(xùn)練數(shù)據(jù)、節(jié)點(diǎn)屬性,將訓(xùn)練數(shù)據(jù)存入云端數(shù)據(jù)庫的云端訓(xùn)練數(shù)據(jù)表,將節(jié)點(diǎn)屬性存入云端節(jié)點(diǎn)屬性表;
模型訓(xùn)練模塊與云端數(shù)據(jù)庫相連,從云端數(shù)據(jù)庫的云端訓(xùn)練數(shù)據(jù)表獲取訓(xùn)練數(shù)據(jù),從云端節(jié)點(diǎn)屬性表獲取節(jié)點(diǎn)屬性,訓(xùn)練并存儲(chǔ)應(yīng)用啟動(dòng)預(yù)測模型,應(yīng)用啟動(dòng)預(yù)測模型由帶屬性異構(gòu)網(wǎng)絡(luò)嵌入模型以及神經(jīng)網(wǎng)絡(luò)模型構(gòu)成;云端預(yù)設(shè)有一個(gè)“云端模型文件夾”來存儲(chǔ)模型文件;模型訓(xùn)練模塊從云端訓(xùn)練數(shù)據(jù)表獲取用戶對(duì)應(yīng)的訓(xùn)練數(shù)據(jù),將云端訓(xùn)練數(shù)據(jù)表中每一條記錄拆分成三個(gè)節(jié)點(diǎn)對(duì),根據(jù)節(jié)點(diǎn)對(duì)表示的信息構(gòu)建帶屬性的異構(gòu)網(wǎng)絡(luò),并計(jì)算節(jié)點(diǎn)對(duì)出現(xiàn)的頻率作為異構(gòu)網(wǎng)絡(luò)中邊的權(quán)重;拆解異構(gòu)網(wǎng)絡(luò)生成訓(xùn)練樣本對(duì),從云端節(jié)點(diǎn)屬性表中根據(jù)節(jié)點(diǎn)標(biāo)識(shí)ID獲取訓(xùn)練樣本對(duì)對(duì)應(yīng)的節(jié)點(diǎn)屬性信息;構(gòu)建一個(gè)帶屬性異構(gòu)網(wǎng)絡(luò)嵌入模型,并采用拆解得到的每一個(gè)訓(xùn)練樣本對(duì)對(duì)帶屬性異構(gòu)網(wǎng)絡(luò)嵌入模型進(jìn)行訓(xùn)練;將帶屬性異構(gòu)網(wǎng)絡(luò)嵌入模型以文件的形式存儲(chǔ)在“云端模型文件夾”中,將帶屬性異構(gòu)網(wǎng)絡(luò)嵌入模型的索引信息存儲(chǔ)到云端模型索引表;構(gòu)建一個(gè)單隱層的神經(jīng)網(wǎng)絡(luò)模型,根據(jù)帶屬性異構(gòu)網(wǎng)絡(luò)嵌入方法得到云端訓(xùn)練數(shù)據(jù)表中的每一條記錄對(duì)應(yīng)的時(shí)間、位置、前序應(yīng)用節(jié)點(diǎn)對(duì)應(yīng)的嵌入表示向量,融合三個(gè)嵌入表示向量作為輸入訓(xùn)練神經(jīng)網(wǎng)絡(luò)模型,將神經(jīng)網(wǎng)絡(luò)模型以文件的形式存儲(chǔ)在“云端模型文件夾”中,將神經(jīng)網(wǎng)絡(luò)模型的索引信息存儲(chǔ)到云端模型索引表;
模型交互模塊與云端數(shù)據(jù)庫、應(yīng)用啟動(dòng)預(yù)測模塊相連,模型交互模塊從應(yīng)用啟動(dòng)預(yù)測模塊接收參數(shù)為用戶標(biāo)識(shí)ID的應(yīng)用啟動(dòng)預(yù)測模型請(qǐng)求,根據(jù)用戶標(biāo)識(shí)ID從云端數(shù)據(jù)庫的云端模型索引表中獲取應(yīng)用啟動(dòng)預(yù)測模型即帶屬性異構(gòu)網(wǎng)絡(luò)嵌入模型以及神經(jīng)網(wǎng)絡(luò)模型的索引信息,提取兩個(gè)模型存儲(chǔ)文件位置信息,并將兩個(gè)模型文件發(fā)送給應(yīng)用啟動(dòng)預(yù)測模塊;
應(yīng)用啟動(dòng)預(yù)測模塊與模型交互模塊、終端數(shù)據(jù)庫、應(yīng)用啟動(dòng)加速模塊、服務(wù)層相連;應(yīng)用啟動(dòng)預(yù)測模塊在移動(dòng)終端預(yù)設(shè)有“終端模型文件夾”來存儲(chǔ)模型文件;應(yīng)用啟動(dòng)預(yù)測模塊向模型交互模塊發(fā)送應(yīng)用啟動(dòng)預(yù)測模型請(qǐng)求,接收來自模型交互模塊的應(yīng)用啟動(dòng)預(yù)測模型文件,構(gòu)建當(dāng)前時(shí)間、位置、前序應(yīng)用節(jié)點(diǎn)及對(duì)應(yīng)屬性信息,采用帶屬性異構(gòu)網(wǎng)絡(luò)嵌入模型得到三個(gè)節(jié)點(diǎn)對(duì)應(yīng)的嵌入表示向量,采用神經(jīng)網(wǎng)絡(luò)模型對(duì)串聯(lián)三個(gè)節(jié)點(diǎn)對(duì)應(yīng)的嵌入表示向量進(jìn)行處理得到概率向量,概率向量中的每一個(gè)值代表對(duì)應(yīng)應(yīng)用可能是下一個(gè)啟動(dòng)應(yīng)用的概率,應(yīng)用啟動(dòng)預(yù)測模塊將預(yù)測結(jié)果即根據(jù)概率向量提取最大概率值對(duì)應(yīng)的應(yīng)用名稱傳遞給應(yīng)用啟動(dòng)加速模塊;
應(yīng)用啟動(dòng)加速模塊與應(yīng)用啟動(dòng)預(yù)測模塊、服務(wù)進(jìn)程ActiveManagerService相連,應(yīng)用啟動(dòng)加速模塊接收應(yīng)用啟動(dòng)預(yù)測模塊的預(yù)測結(jié)果,向服務(wù)進(jìn)程ActiveManagerService發(fā)送Intent請(qǐng)求,請(qǐng)求提前載入應(yīng)用;
第二步,基于帶屬性異構(gòu)網(wǎng)絡(luò)嵌入的應(yīng)用啟動(dòng)加速系統(tǒng)為每個(gè)用戶構(gòu)建應(yīng)用啟動(dòng)預(yù)測模型,即構(gòu)建帶屬性異構(gòu)網(wǎng)絡(luò)嵌入模型以及神經(jīng)網(wǎng)絡(luò)模型,方法為:
2.1數(shù)據(jù)收集模塊利用安卓系統(tǒng)提供的服務(wù)進(jìn)程從移動(dòng)終端收集用戶的應(yīng)用使用記錄,包括應(yīng)用啟動(dòng)時(shí)間戳、應(yīng)用使用時(shí)長、當(dāng)前使用的基站信息、當(dāng)前連接的WiFi信息、設(shè)備配置信息,并將收集的信息分別存儲(chǔ)到終端數(shù)據(jù)庫的應(yīng)用使用記錄表、基站信息表、WiFi信息表、移動(dòng)設(shè)備配置信息表;
2.2數(shù)據(jù)預(yù)處理模塊從終端數(shù)據(jù)庫的應(yīng)用使用記錄表讀取用戶的應(yīng)用名稱、應(yīng)用啟動(dòng)時(shí)間戳、應(yīng)用使用時(shí)長,從基站信息表讀取基站標(biāo)識(shí)ID、基站信息獲取時(shí)間戳,從移動(dòng)終端配置信息表中讀取移動(dòng)設(shè)備電量、移動(dòng)終端是否處于充電狀態(tài)、移動(dòng)終端是否已經(jīng)充滿電、配置信息獲取時(shí)間戳,對(duì)讀取的信息進(jìn)行預(yù)處理,提取出應(yīng)用、時(shí)間、位置三類上下文信息,將這三類信息作為異構(gòu)網(wǎng)絡(luò)中的三類節(jié)點(diǎn),構(gòu)建三類節(jié)點(diǎn)對(duì)應(yīng)的節(jié)點(diǎn)屬性信息,生成終端節(jié)點(diǎn)屬性表;繼續(xù)解析從終端數(shù)據(jù)庫中讀取出來的數(shù)據(jù),提取出應(yīng)用節(jié)點(diǎn)、時(shí)間節(jié)點(diǎn)、位置節(jié)點(diǎn)、前序應(yīng)用節(jié)點(diǎn)組成一條訓(xùn)練數(shù)據(jù);根據(jù)所有訓(xùn)練數(shù)據(jù)、終端節(jié)點(diǎn)屬性表生成終端訓(xùn)練數(shù)據(jù)表,并將包含終端訓(xùn)練數(shù)據(jù)表中所有記錄、終端節(jié)點(diǎn)屬性表中所有記錄的第一數(shù)據(jù)上傳請(qǐng)求發(fā)送給數(shù)據(jù)上傳模塊;
2.3數(shù)據(jù)上傳模塊接收來自數(shù)據(jù)預(yù)處理模塊的第一數(shù)據(jù)上傳請(qǐng)求,獲取終端對(duì)應(yīng)用戶的用戶標(biāo)識(shí)ID,將用戶標(biāo)識(shí)ID和第一數(shù)據(jù)上傳請(qǐng)求拼成第二數(shù)據(jù)上傳請(qǐng)求,將第二數(shù)據(jù)上傳請(qǐng)求發(fā)送給云端應(yīng)用記錄存儲(chǔ)模塊;
2.4云端應(yīng)用記錄存儲(chǔ)模塊接收來自終端數(shù)據(jù)上傳模塊的第二數(shù)據(jù)上傳請(qǐng)求,從第二數(shù)據(jù)上傳請(qǐng)求中提取出用戶標(biāo)識(shí)ID、訓(xùn)練數(shù)據(jù)、節(jié)點(diǎn)屬性,將訓(xùn)練數(shù)據(jù)存入云端訓(xùn)練數(shù)據(jù)表中,將節(jié)點(diǎn)屬性存入云端節(jié)點(diǎn)屬性表中;
2.5令云端訓(xùn)練數(shù)據(jù)表中不同用戶的數(shù)量為U;
2.6初始化變量u=1;
2.7模型訓(xùn)練模塊將訓(xùn)練數(shù)據(jù)轉(zhuǎn)換成為一個(gè)帶屬性的異構(gòu)網(wǎng)絡(luò),根據(jù)三類邊關(guān)系將帶屬性的異構(gòu)網(wǎng)絡(luò)劃分為三個(gè)子網(wǎng)絡(luò),利用節(jié)點(diǎn)對(duì)及其對(duì)應(yīng)的屬性信息分別訓(xùn)練這三個(gè)子網(wǎng)絡(luò),通過這三個(gè)子網(wǎng)絡(luò)得到時(shí)間節(jié)點(diǎn)、位置節(jié)點(diǎn)、前序應(yīng)用節(jié)點(diǎn)的有效嵌入表示向量,構(gòu)建一個(gè)帶屬性異構(gòu)網(wǎng)絡(luò)嵌入模型,方法為:
2.7.1根據(jù)第u個(gè)用戶標(biāo)識(shí)ID從云端節(jié)點(diǎn)屬性表提取出所有節(jié)點(diǎn)標(biāo)識(shí)ID,每個(gè)節(jié)點(diǎn)標(biāo)識(shí)ID分為應(yīng)用節(jié)點(diǎn)、時(shí)間節(jié)點(diǎn)、位置節(jié)點(diǎn)三類,將這三類節(jié)點(diǎn)作為異構(gòu)網(wǎng)絡(luò)中的節(jié)點(diǎn);根據(jù)第u個(gè)用戶標(biāo)識(shí)ID從云端訓(xùn)練數(shù)據(jù)表獲取相應(yīng)用戶的訓(xùn)練數(shù)據(jù),將每條訓(xùn)練數(shù)據(jù)拆分成三個(gè)節(jié)點(diǎn)對(duì),分別為(應(yīng)用節(jié)點(diǎn)標(biāo)識(shí)ID,時(shí)間節(jié)點(diǎn)標(biāo)識(shí)ID,1)、(應(yīng)用節(jié)點(diǎn)標(biāo)識(shí)ID,位置節(jié)點(diǎn)標(biāo)識(shí)ID,2)、(應(yīng)用節(jié)點(diǎn)標(biāo)識(shí)ID,前序應(yīng)用節(jié)點(diǎn)標(biāo)識(shí)ID,3),其中數(shù)值1、2、3表示的是節(jié)點(diǎn)對(duì)類型,也是邊類型;其中:節(jié)點(diǎn)對(duì)(應(yīng)用節(jié)點(diǎn)標(biāo)識(shí)ID,時(shí)間節(jié)點(diǎn)標(biāo)識(shí)ID,1)表示在時(shí)間節(jié)點(diǎn)標(biāo)識(shí)ID表示的時(shí)間使用過應(yīng)用節(jié)點(diǎn)標(biāo)識(shí)ID表示的應(yīng)用,在異構(gòu)網(wǎng)絡(luò)中連接該應(yīng)用節(jié)點(diǎn)與時(shí)間節(jié)點(diǎn);節(jié)點(diǎn)對(duì)(應(yīng)用節(jié)點(diǎn)標(biāo)識(shí)ID,位置節(jié)點(diǎn)標(biāo)識(shí)ID,2)表示在位置節(jié)點(diǎn)標(biāo)識(shí)ID表示的位置使用過應(yīng)用節(jié)點(diǎn)標(biāo)識(shí)ID表示的應(yīng)用,在異構(gòu)網(wǎng)絡(luò)中連接該應(yīng)用節(jié)點(diǎn)與位置節(jié)點(diǎn);節(jié)點(diǎn)對(duì)(應(yīng)用節(jié)點(diǎn)標(biāo)識(shí)ID,前序應(yīng)用節(jié)點(diǎn)標(biāo)識(shí)ID,3)表示在使用應(yīng)用節(jié)點(diǎn)標(biāo)識(shí)ID表示的應(yīng)用之前使用的前序應(yīng)用節(jié)點(diǎn)標(biāo)識(shí)ID表示的應(yīng)用,在異構(gòu)網(wǎng)絡(luò)中連接該應(yīng)用節(jié)點(diǎn)與前序應(yīng)用節(jié)點(diǎn);同時(shí)記錄相同節(jié)點(diǎn)對(duì)的出現(xiàn)頻次作為邊的權(quán)重;根據(jù)上述操作將訓(xùn)練數(shù)據(jù)轉(zhuǎn)化成了一個(gè)異構(gòu)網(wǎng)絡(luò),包括應(yīng)用節(jié)點(diǎn)、時(shí)間節(jié)點(diǎn)、位置節(jié)點(diǎn)三類節(jié)點(diǎn),以及應(yīng)用節(jié)點(diǎn)與時(shí)間節(jié)點(diǎn)、應(yīng)用節(jié)點(diǎn)與位置節(jié)點(diǎn)、應(yīng)用節(jié)點(diǎn)與前序應(yīng)用節(jié)點(diǎn)三類邊連接關(guān)系,根據(jù)三種邊連接關(guān)系將異構(gòu)網(wǎng)絡(luò)劃分為三個(gè)子網(wǎng)絡(luò);在數(shù)據(jù)轉(zhuǎn)換成異構(gòu)網(wǎng)絡(luò)的過程中,分別記錄異構(gòu)網(wǎng)絡(luò)中三個(gè)子網(wǎng)絡(luò)的節(jié)點(diǎn),將子網(wǎng)絡(luò)中所有節(jié)點(diǎn)標(biāo)識(shí)ID分別存儲(chǔ)在集合NS1、NS2、NS3中,分別記錄集合中節(jié)點(diǎn)個(gè)數(shù)為M1、M2、M3,下標(biāo)1、2、3分別對(duì)應(yīng)邊類型;
2.7.2采用隨機(jī)游走算法生成鏈路:根據(jù)2.7.1步生成的異構(gòu)網(wǎng)絡(luò),依據(jù)三種邊連接關(guān)系劃分為三個(gè)子網(wǎng)絡(luò),分別以異構(gòu)網(wǎng)絡(luò)中三個(gè)子網(wǎng)絡(luò)中的每一個(gè)節(jié)點(diǎn)為開始節(jié)點(diǎn),生成第一鏈路列表LIST1、第二鏈路列表LIST2、第三鏈路列表LIST3,LISTr存放邊類型為r的子網(wǎng)絡(luò)中NSr個(gè)節(jié)點(diǎn)生成的NSr×20條長度為10的鏈路,1≤r≤3;
2.7.3采用skip-gram方法生成訓(xùn)練樣本對(duì),將訓(xùn)練樣本對(duì)存入臨時(shí)文件data_train.txt中;
2.7.4采用帶屬性的網(wǎng)絡(luò)嵌入方法即GATNE方法利用訓(xùn)練樣本對(duì)和根據(jù)節(jié)點(diǎn)標(biāo)識(shí)ID從云端節(jié)點(diǎn)屬性表獲取的對(duì)應(yīng)節(jié)點(diǎn)屬性值構(gòu)建一個(gè)帶屬性異構(gòu)網(wǎng)絡(luò)嵌入模型,為網(wǎng)絡(luò)中每一個(gè)節(jié)點(diǎn)都生成嵌入表示向量;如公式一所示,在邊類型為r的子網(wǎng)絡(luò)中,節(jié)點(diǎn)i的嵌入表示為向量vi,r:
其中:xi是節(jié)點(diǎn)i的屬性值;hz(xi)是一個(gè)變換函數(shù),其作用是計(jì)算xi在節(jié)點(diǎn)的嵌入表示中的影響;根據(jù)自注意力機(jī)制,ai,r是作為在邊類型為r的子網(wǎng)絡(luò)中的節(jié)點(diǎn)i的邊嵌入向量的權(quán)重,根據(jù)公式計(jì)算得到,實(shí)際上是一個(gè)簡單前饋神經(jīng)網(wǎng)絡(luò),Wr是轉(zhuǎn)化矩陣,需要模型訓(xùn)練優(yōu)化得到,Ui在自注意力機(jī)制中表示隱藏層狀態(tài),tanh()是WrUi的激活函數(shù),softmax()是一個(gè)歸一化函數(shù),將在負(fù)無窮到正無窮上的結(jié)果轉(zhuǎn)換為0-1概率;Ui是節(jié)點(diǎn)i在三個(gè)子網(wǎng)絡(luò)中的邊嵌入向量拼接成的一個(gè)向量,表示節(jié)點(diǎn)i與其鄰居節(jié)點(diǎn)的關(guān)系,每個(gè)節(jié)點(diǎn)在每一個(gè)子網(wǎng)絡(luò)中都聚合固定數(shù)量鄰居節(jié)點(diǎn)的屬性均值作為該節(jié)點(diǎn)在該子網(wǎng)絡(luò)中的邊嵌入向量,Ui由節(jié)點(diǎn)i在三個(gè)子網(wǎng)絡(luò)中得到的邊嵌入向量串聯(lián)而成;Mr是邊嵌入向量的轉(zhuǎn)換矩陣,表示Mr的轉(zhuǎn)置,Mr中的第i個(gè)一維向量表示節(jié)點(diǎn)i在邊類型為r的子網(wǎng)絡(luò)中的邊嵌入向量對(duì)節(jié)點(diǎn)i的嵌入表示的影響;αr表示在邊類型為r的子網(wǎng)絡(luò)中每個(gè)節(jié)點(diǎn)的邊嵌入向量對(duì)于節(jié)點(diǎn)的嵌入表示的影響系數(shù);Dz是節(jié)點(diǎn)i對(duì)應(yīng)節(jié)點(diǎn)類型z的屬性轉(zhuǎn)換矩陣,其目的是為了計(jì)算新節(jié)點(diǎn)的嵌入表示向量,新節(jié)點(diǎn)與網(wǎng)絡(luò)中的所有節(jié)點(diǎn)都是隔離的,Dz從節(jié)點(diǎn)屬性相似性的角度表示節(jié)點(diǎn)i與網(wǎng)絡(luò)中所有節(jié)點(diǎn)的相似關(guān)系,是Dz的轉(zhuǎn)置;βr表示在邊類型為r的子網(wǎng)絡(luò)中,子網(wǎng)絡(luò)中的節(jié)點(diǎn)屬性之間的相似關(guān)系對(duì)于節(jié)點(diǎn)嵌入的影響系數(shù);
2.7.5采用訓(xùn)練樣本對(duì)以及節(jié)點(diǎn)的嵌入表示向量vi,r,使用NCE損失函數(shù)對(duì)帶屬性異構(gòu)網(wǎng)絡(luò)嵌入模型進(jìn)行訓(xùn)練,優(yōu)化公式一中的轉(zhuǎn)換矩陣以及ai,r,得到異構(gòu)網(wǎng)絡(luò)中每個(gè)節(jié)點(diǎn)的有效嵌入表示向量;時(shí)間節(jié)點(diǎn)的有效嵌入表示向量使用vi,t表示,位置節(jié)點(diǎn)的有效嵌入表示向量使用vi,l表示,前序應(yīng)用節(jié)點(diǎn)的有效嵌入表示向量使用vi,p表示;
2.7.6以文件的形式將帶屬性異構(gòu)網(wǎng)絡(luò)嵌入模型存儲(chǔ)在“云端模型文件夾”中,命名為“用戶標(biāo)識(shí)ID_GATNE_時(shí)間戳”,其中“用戶標(biāo)識(shí)ID”使用實(shí)際的mac地址標(biāo)識(shí),“時(shí)間戳”使用實(shí)際的時(shí)間戳標(biāo)識(shí);
2.7.7構(gòu)建帶屬性異構(gòu)網(wǎng)絡(luò)嵌入模型索引信息,使用移動(dòng)終端實(shí)際的mac地址作為用戶標(biāo)識(shí)ID,使用當(dāng)前時(shí)間作為模型創(chuàng)建時(shí)間戳,“用戶標(biāo)識(shí)ID_GATNE_時(shí)間戳”是模型存儲(chǔ)文件名稱,“云端模型文件夾”在云端的位置/用戶標(biāo)識(shí)ID_GATNE_時(shí)間戳”作為模型存儲(chǔ)文件位置,分別將上述信息存儲(chǔ)到云端模型索引表中對(duì)應(yīng)的用戶標(biāo)識(shí)ID、模型創(chuàng)建時(shí)間戳、模型存儲(chǔ)文件名稱、模型存儲(chǔ)文件位置域中;
2.8模型訓(xùn)練模塊構(gòu)建神經(jīng)網(wǎng)絡(luò)模型,融合時(shí)間、位置、前序應(yīng)用三類上下文信息進(jìn)行應(yīng)用啟動(dòng)預(yù)測,方法是:
2.8.1以節(jié)點(diǎn)類型域值為1檢索云端節(jié)點(diǎn)屬性表,提取出節(jié)點(diǎn)類型域值為1的所有的應(yīng)用節(jié)點(diǎn)標(biāo)識(shí)ID,對(duì)提取的節(jié)點(diǎn)標(biāo)識(shí)ID進(jìn)行獨(dú)熱編碼,得到每個(gè)節(jié)點(diǎn)標(biāo)識(shí)ID對(duì)應(yīng)的獨(dú)熱編碼值,根據(jù)應(yīng)用節(jié)點(diǎn)標(biāo)識(shí)ID-應(yīng)用獨(dú)熱編碼值的關(guān)系存入字典D中;
2.8.2根據(jù)第u個(gè)用戶標(biāo)識(shí)ID從云端訓(xùn)練數(shù)據(jù)表獲取相應(yīng)用戶的訓(xùn)練記錄;
2.8.3初始化輸入向量列表INPUT_LIST、實(shí)際輸出向量列表OUTPUT_LIST為空,OUTPUT_LIST中的實(shí)際輸出向量是指在當(dāng)前時(shí)間、位置、前序應(yīng)用的情景下使用的應(yīng)用對(duì)應(yīng)的獨(dú)熱編碼值向量;
2.8.4獲取參數(shù)變量n=1;
2.8.5提取第n條記錄中的時(shí)間節(jié)點(diǎn)標(biāo)識(shí)ID、位置節(jié)點(diǎn)標(biāo)識(shí)ID、前序應(yīng)用標(biāo)識(shí)ID,根據(jù)節(jié)點(diǎn)標(biāo)識(shí)ID從云端節(jié)點(diǎn)屬性表中獲取對(duì)應(yīng)的節(jié)點(diǎn)屬性,將三個(gè)節(jié)點(diǎn)標(biāo)識(shí)ID以及對(duì)應(yīng)的節(jié)點(diǎn)屬性作為帶屬性異構(gòu)網(wǎng)絡(luò)嵌入模型的輸入,按照公式一計(jì)算三個(gè)節(jié)點(diǎn)對(duì)應(yīng)的嵌入表示向量,分別表示為vn,t、vn,l、vn,p,其中vn,t表示在第n條記錄中時(shí)間節(jié)點(diǎn)對(duì)應(yīng)的有效嵌入表示向量,vn,l表示在第n條記錄中位置節(jié)點(diǎn)對(duì)應(yīng)的有效嵌入表示向量,vn,p表示在第n條記錄中前序應(yīng)用節(jié)點(diǎn)對(duì)應(yīng)的有效嵌入表示向量;融合vn,t、vn,l、vn,p,串聯(lián)組成vn=(vn,t,vn,l,vn,p),存入輸入列表INPUT_LIST;
2.8.6提取第n條記錄中的應(yīng)用節(jié)點(diǎn)標(biāo)識(shí)ID,根據(jù)應(yīng)用節(jié)點(diǎn)標(biāo)識(shí)ID從字典D中獲取對(duì)應(yīng)的獨(dú)熱編碼值,記為pn,存入實(shí)際輸出列表OUTPUT_LIST;
2.8.7若n≤N,令n=n+1,轉(zhuǎn)到2.8.5;若nN,轉(zhuǎn)到2.8.8;
2.8.8結(jié)合應(yīng)用啟動(dòng)預(yù)測場景,構(gòu)建單隱層的神經(jīng)網(wǎng)絡(luò)模型,即如公式二所描述的數(shù)學(xué)模型,通過神經(jīng)網(wǎng)絡(luò)模型計(jì)算第n個(gè)概率向量qn:
qn=W(2)·sigmoid(vn·W(1)+b1)+b2公式二,
其中:W(1)、W(2)分別是神經(jīng)網(wǎng)絡(luò)模型中隱藏層和輸出層的轉(zhuǎn)換矩陣;vn表示INPUT_LIST中的第n個(gè)向量,融合了第n條記錄中時(shí)間節(jié)點(diǎn)、位置節(jié)點(diǎn)、前序應(yīng)用節(jié)點(diǎn)的嵌入表示向量;b1、b2分別是神經(jīng)網(wǎng)絡(luò)模型中隱藏層和輸出層的偏置向量;sigmoid函數(shù)是隱藏層的激活函數(shù);概率向量qn表示根據(jù)第n條記錄得到的預(yù)測結(jié)果,qn中的第i個(gè)概率值表示獨(dú)熱編碼值向量中第i個(gè)位置值為1對(duì)應(yīng)的應(yīng)用的啟動(dòng)概率;
2.8.9采用輸入列表INPUT_LIST以及實(shí)際輸出列表OUTPUT_LIST訓(xùn)練神經(jīng)網(wǎng)絡(luò)模型,INPUT_LIST中的每一條輸入向量按照公式二計(jì)算,得到輸入對(duì)應(yīng)的概率向量,然后根據(jù)公式三的交叉熵?fù)p失函數(shù)H計(jì)算神經(jīng)網(wǎng)絡(luò)模型的輸出即概率向量與OUTPUT_LIST中實(shí)際輸出的差異,根據(jù)隨機(jī)梯度下降算法優(yōu)化公式二中的W(1)、W(2)、b1、b2四個(gè)變量:
在公式三中:A表示第u個(gè)用戶已安裝的應(yīng)用數(shù)量;表示第n條記錄中的實(shí)際應(yīng)用對(duì)應(yīng)的獨(dú)熱編碼值向量的第j個(gè)元素;表示第n條記錄中根據(jù)輸入以及神經(jīng)網(wǎng)絡(luò)模型計(jì)算得到的概率向量的第j個(gè)元素;
2.8.10以文件的形式將神經(jīng)網(wǎng)絡(luò)模型存儲(chǔ)在“云端模型文件夾”中,命名為“用戶標(biāo)識(shí)ID_NEURAL_時(shí)間戳”,其中“用戶標(biāo)識(shí)ID”使用實(shí)際的mac地址標(biāo)識(shí),“時(shí)間戳”使用實(shí)際的時(shí)間戳標(biāo)識(shí);
2.8.11構(gòu)建神經(jīng)網(wǎng)絡(luò)模型索引信息,包括用戶標(biāo)識(shí)ID、模型創(chuàng)建時(shí)間戳、模型存儲(chǔ)文件名稱、模型存儲(chǔ)文件位置,將索引信息存儲(chǔ)到云端模型索引表;
2.9若u≤U,令u=u+1,轉(zhuǎn)到2.7;若uU,轉(zhuǎn)第三步;
第三步,移動(dòng)終端根據(jù)最新的應(yīng)用啟動(dòng)預(yù)測模型進(jìn)行應(yīng)用預(yù)測并根據(jù)最新預(yù)測結(jié)果執(zhí)行應(yīng)用啟動(dòng)加速,方法是:
3.1應(yīng)用啟動(dòng)預(yù)測模塊按周期訪問云端,保證終端預(yù)測使用的是最新的應(yīng)用啟動(dòng)預(yù)測模型,分別構(gòu)造帶屬性異構(gòu)網(wǎng)絡(luò)嵌入模型和神經(jīng)網(wǎng)絡(luò)模型的輸入,得到預(yù)測結(jié)果,具體方法是:
3.1.1應(yīng)用啟動(dòng)預(yù)測模塊使用安卓系統(tǒng)內(nèi)置定時(shí)器,按周期T1向模型交互模塊發(fā)送下載模型請(qǐng)求,下載模型請(qǐng)求參數(shù)為用戶標(biāo)識(shí)ID;
3.1.2模型交互模塊從下載模型請(qǐng)求中提取出用戶標(biāo)識(shí)ID,根據(jù)用戶標(biāo)識(shí)ID從云端模型索引表獲取用戶對(duì)應(yīng)的最新的應(yīng)用啟動(dòng)預(yù)測模型索引記錄,即最新的帶屬性異構(gòu)網(wǎng)絡(luò)嵌入模型以及神經(jīng)網(wǎng)絡(luò)模型的索引記錄,根據(jù)記錄中的模型存儲(chǔ)文位置從“云端模型文件夾”中提取文件信息,將兩個(gè)模型發(fā)送給應(yīng)用啟動(dòng)預(yù)測模塊;
3.1.3應(yīng)用啟動(dòng)預(yù)測模塊將從模型交互模塊得到的兩個(gè)模型以文件的形式存儲(chǔ)在“終端模型文件夾”中,將帶屬性異構(gòu)網(wǎng)絡(luò)嵌入模型文件命名為“GATNE_時(shí)間戳”,神經(jīng)網(wǎng)絡(luò)模型命名為“NEURAL_時(shí)間戳”,其中“時(shí)間戳”使用當(dāng)前接收模型所處的時(shí)間戳;應(yīng)用啟動(dòng)預(yù)測模塊構(gòu)建兩個(gè)模型的索引信息,使用當(dāng)前接收模型所處的時(shí)間戳作為兩個(gè)模型索引記錄的模型存儲(chǔ)時(shí)間戳,使用“GATNE_時(shí)間戳”字符串作為帶屬性異構(gòu)網(wǎng)絡(luò)嵌入模型索引記錄的模型文件名稱,使用“云端模型文件夾”在終端的位置/GATNE_時(shí)間戳”作為帶屬性異構(gòu)網(wǎng)絡(luò)嵌入模型索引記錄的模型文件位置,使用“NEURAL_時(shí)間戳”字符串作為神經(jīng)網(wǎng)絡(luò)模型索引記錄的模型文件名稱,使用“云端模型文件夾”在終端的位置/NEURAL_時(shí)間戳”作為神經(jīng)網(wǎng)絡(luò)模型索引記錄的模型文件位置,將兩個(gè)模型的索引信息存儲(chǔ)到終端模型索引表中;
3.1.4應(yīng)用啟動(dòng)預(yù)測模塊使用安卓系統(tǒng)內(nèi)置定時(shí)器,按周期T2從終端模型索引表獲取最新的帶屬性異構(gòu)網(wǎng)絡(luò)嵌入模型以及神經(jīng)網(wǎng)絡(luò)模型的索引記錄;根據(jù)帶屬性異構(gòu)網(wǎng)絡(luò)嵌入模型索引記錄中的模型文件名稱、模型文件位置在終端對(duì)應(yīng)位置找到對(duì)應(yīng)的帶屬性異構(gòu)網(wǎng)絡(luò)嵌入模型文件,根據(jù)神經(jīng)網(wǎng)絡(luò)模型索引記錄中的模型文件名稱、模型文件位置在終端對(duì)應(yīng)位置找到對(duì)應(yīng)的神經(jīng)網(wǎng)絡(luò)模型文件,從文件中提取出帶屬性異構(gòu)網(wǎng)絡(luò)嵌入模型與神經(jīng)網(wǎng)絡(luò)模型;
3.1.5應(yīng)用啟動(dòng)預(yù)測模塊從安卓系統(tǒng)服務(wù)進(jìn)程TelephonyManager獲取當(dāng)前所處基站標(biāo)識(shí)ID,根據(jù)基站標(biāo)識(shí)ID從終端節(jié)點(diǎn)屬性表中得到對(duì)應(yīng)位置節(jié)點(diǎn)的節(jié)點(diǎn)標(biāo)識(shí)ID作為位置節(jié)點(diǎn)標(biāo)識(shí)ID,以及節(jié)點(diǎn)屬性作為位置節(jié)點(diǎn)屬性;應(yīng)用啟動(dòng)預(yù)測模塊從終端應(yīng)用使用記錄表中獲取最新的應(yīng)用使用記錄,從中提取應(yīng)用名稱,根據(jù)應(yīng)用名稱從終端節(jié)點(diǎn)屬性表中獲取應(yīng)用節(jié)點(diǎn)的節(jié)點(diǎn)標(biāo)識(shí)ID作為前序應(yīng)用節(jié)點(diǎn)標(biāo)識(shí)ID,以及節(jié)點(diǎn)屬性作為前序應(yīng)用節(jié)點(diǎn)屬性;應(yīng)用啟動(dòng)預(yù)測模塊獲取當(dāng)前時(shí)間戳,從時(shí)間戳中提取出年、月、日、小時(shí)的信息,構(gòu)建“YYYYMMDDHH”形式的字符串作為時(shí)間節(jié)點(diǎn)名稱,根據(jù)節(jié)點(diǎn)名稱從終端節(jié)點(diǎn)屬性表中查找對(duì)應(yīng)記錄,若記錄存在則從記錄中提取出節(jié)點(diǎn)標(biāo)識(shí)ID作為時(shí)間節(jié)點(diǎn)標(biāo)識(shí)ID,以及節(jié)點(diǎn)屬性作為時(shí)間節(jié)點(diǎn)屬性;若記錄不存在則計(jì)算當(dāng)前時(shí)間戳屬于星期幾,并構(gòu)建時(shí)間節(jié)點(diǎn)屬性,在終端節(jié)點(diǎn)屬性表中新建一條記錄,分別將“YYYYMMDDHH”形式的字符串、星期幾、3記錄在終端節(jié)點(diǎn)屬性表中的節(jié)點(diǎn)名稱、節(jié)點(diǎn)屬性、節(jié)點(diǎn)類型域中;
3.1.6根據(jù)公式一以及3.1.5步得到的時(shí)間節(jié)點(diǎn)標(biāo)識(shí)ID、時(shí)間節(jié)點(diǎn)屬性、位置節(jié)點(diǎn)標(biāo)識(shí)ID、位置節(jié)點(diǎn)屬性、前序應(yīng)用節(jié)點(diǎn)標(biāo)識(shí)ID、前序應(yīng)用節(jié)點(diǎn)屬性,利用公式一計(jì)算當(dāng)前時(shí)間節(jié)點(diǎn)、位置節(jié)點(diǎn)、前序應(yīng)用節(jié)點(diǎn)的有效嵌入表示vt、vl、vp;串聯(lián)vt、vl、vp生成v=(vt,vl,vp),v作為神經(jīng)網(wǎng)絡(luò)模型的輸入,根據(jù)公式二計(jì)算概率向量,概率向量中存在NA個(gè)元素,其中第j個(gè)元素值表示獨(dú)熱編碼值向量中第j個(gè)元素為1的應(yīng)用對(duì)應(yīng)的概率值,表示該應(yīng)用可能的是下一個(gè)啟動(dòng)應(yīng)用的概率,NA為正整數(shù);
3.1.7應(yīng)用啟動(dòng)預(yù)測模塊對(duì)概率向量中的每一個(gè)元素按照從大到小的順序進(jìn)行排序,選擇概率最大的元素值,令該元素值處于概率向量的第x個(gè)位置,找到獨(dú)熱編碼值向量第x個(gè)元素值為1的應(yīng)用,即為預(yù)測結(jié)果,將預(yù)測結(jié)果發(fā)送給應(yīng)用啟動(dòng)加速模塊;
3.2應(yīng)用啟動(dòng)加速模塊從應(yīng)用啟動(dòng)預(yù)測模塊接收預(yù)測得到的應(yīng)用名稱,根據(jù)預(yù)測得到的應(yīng)用請(qǐng)求系統(tǒng)創(chuàng)建應(yīng)用進(jìn)程,并且將應(yīng)用資源提前載入到內(nèi)存:
3.2.1應(yīng)用啟動(dòng)加速模塊根據(jù)得到的應(yīng)用名稱構(gòu)建相關(guān)Intent請(qǐng)求,發(fā)送給服務(wù)進(jìn)程ActivityManagerService;
3.2.2服務(wù)進(jìn)程ActivityManagerService調(diào)用PackageManagerService解析應(yīng)用相關(guān)信息,使用容器類ResolveInfo保存解析出來的信息;
3.2.3應(yīng)用啟動(dòng)加速模塊調(diào)用服務(wù)進(jìn)程ActivityManagerService進(jìn)一步對(duì)應(yīng)用授予的權(quán)限進(jìn)行檢查,并新建一個(gè)保存Activity信息的數(shù)據(jù)結(jié)構(gòu)ActivityRecord,包括當(dāng)前Activity的進(jìn)程標(biāo)識(shí)launchedFromPid、當(dāng)前Activity進(jìn)程的創(chuàng)建者launchedFromUid、當(dāng)前Activity進(jìn)程的安裝包launchedFromPackage、意圖請(qǐng)求Intent、當(dāng)前Activity的狀態(tài)state,并通過ActivityRecord管理活動(dòng);
3.2.4應(yīng)用啟動(dòng)加速模塊為Activity分配任務(wù)棧:首先綜合計(jì)算活動(dòng)的啟動(dòng)模式;調(diào)用安卓系統(tǒng)的getReusableIntentActivity()方法查找是否有可以重用的活動(dòng)進(jìn)程,如果有可重用的活動(dòng)進(jìn)程,把原來活動(dòng)進(jìn)程信息替換成當(dāng)前活動(dòng)的信息,如果沒有可重用的活動(dòng)進(jìn)程,尋找可以重用的任務(wù)進(jìn)程,如果沒有可以重用的任務(wù)進(jìn)程,新建一個(gè)TaskRecord類存儲(chǔ)任務(wù)棧的描述信息;
3.2.5應(yīng)用啟動(dòng)加速模塊創(chuàng)建進(jìn)程對(duì)應(yīng)的實(shí)體ProcessRecord以記錄進(jìn)程信息的對(duì)象,委托ZygoteProcess進(jìn)程將所有啟動(dòng)參數(shù)都通過socket的寫入流發(fā)送給Zygote;服務(wù)進(jìn)程Zygote接收請(qǐng)求后孵化一個(gè)子進(jìn)程;
3.2.6應(yīng)用啟動(dòng)加速模塊調(diào)用安卓系統(tǒng)的handleChildProc()方法初始化安卓系統(tǒng)中應(yīng)用的運(yùn)行環(huán)境Runtime,包括未捕捉異常、Java虛擬機(jī)的堆內(nèi)存利用率等的設(shè)置,然后調(diào)用安卓應(yīng)用進(jìn)程的初始類ActivityThread初始化主線程;
3.2.7應(yīng)用啟動(dòng)加速模塊調(diào)用安卓系統(tǒng)的ActivityThread類的attah()方法將服務(wù)進(jìn)程Zygote孵化出的子進(jìn)程注冊(cè)到SystemServer服務(wù)進(jìn)程;
3.2.8應(yīng)用啟動(dòng)加速模塊通知應(yīng)用創(chuàng)建Application,初始化應(yīng)用的上下文以及各種資源;
3.2.9應(yīng)用啟動(dòng)加速模塊調(diào)用ActivityThread類初始化WindowManagerGlobal類以及相關(guān)顯示資源,然后調(diào)用安卓系統(tǒng)的類加載器加載對(duì)應(yīng)的Activity對(duì)應(yīng)的類并在系統(tǒng)內(nèi)存中實(shí)例化應(yīng)用資源;
3.2.10應(yīng)用啟動(dòng)加速模塊初始化活動(dòng)的窗口,新建相關(guān)的視圖,向系統(tǒng)請(qǐng)求分配顯示資源;
3.2.11應(yīng)用啟動(dòng)加速模塊調(diào)用AMS服務(wù)進(jìn)程,將載入的應(yīng)用狀態(tài)設(shè)置為暫停。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于中南大學(xué),未經(jīng)中南大學(xué)許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202010161063.0/1.html,轉(zhuǎn)載請(qǐng)聲明來源鉆瓜專利網(wǎng)。
- 網(wǎng)絡(luò)和網(wǎng)絡(luò)終端
- 網(wǎng)絡(luò)DNA
- 網(wǎng)絡(luò)地址自適應(yīng)系統(tǒng)和方法及應(yīng)用系統(tǒng)和方法
- 網(wǎng)絡(luò)系統(tǒng)及網(wǎng)絡(luò)至網(wǎng)絡(luò)橋接器
- 一種電力線網(wǎng)絡(luò)中根節(jié)點(diǎn)網(wǎng)絡(luò)協(xié)調(diào)方法和系統(tǒng)
- 一種多網(wǎng)絡(luò)定位方法、存儲(chǔ)介質(zhì)及移動(dòng)終端
- 網(wǎng)絡(luò)裝置、網(wǎng)絡(luò)系統(tǒng)、網(wǎng)絡(luò)方法以及網(wǎng)絡(luò)程序
- 從重復(fù)網(wǎng)絡(luò)地址自動(dòng)恢復(fù)的方法、網(wǎng)絡(luò)設(shè)備及其存儲(chǔ)介質(zhì)
- 神經(jīng)網(wǎng)絡(luò)的訓(xùn)練方法、裝置及存儲(chǔ)介質(zhì)
- 網(wǎng)絡(luò)管理方法和裝置





