本發(fā)明涉及應用軟件管理領域,具體而言,涉及一種應用推薦方法、裝置及服務器。
背景技術:
:現(xiàn)目前,應用商店在推薦應用(Application,APP)時的常用方法是,通過計算整個應用商店中每個應用的下載量,并按照下載量對應用進行排序,然后把排序靠前的應用推薦給用戶。這種基于排行榜的應用推薦方式會對所有用戶或者某一類用戶推薦相同的應用,忽視了不同用戶對應用需求的個體差異。造成應用推薦準確度不高,用戶對推薦的應用滿意度不高,從而影響軟件的下載量及用戶的使用體驗。技術實現(xiàn)要素:有鑒于此,本發(fā)明一較佳實施例的目的在于提供一種能根據(jù)不同用戶的應用需求推薦相應應用的方法,該方法包括:根據(jù)所述歷史應用列表得到所述用戶的特征向量;根據(jù)多個所述用戶的特征向量訓練得到應用對應的各個標簽的預測模型;及基于用戶的特征向量以及所述各個標簽的預測模型生成所述用戶的推薦應用序列。本發(fā)明另一較佳實施例還提供一種應用推薦裝置,所述裝置包括:特征向量生成模塊,用于根據(jù)用戶的歷史應用列表計算得到所述用戶的特征向量;及預測模型生成模塊,用于根據(jù)多個所述用戶的特征向量訓練得到應用對應的各個標簽的預測模型;及推薦應用序列生成模塊,用于基于用戶的特征向量以及所述各個標簽的預測模型生成所述用戶的推薦應用序列。本發(fā)明另一較佳實施例還提供一種服務器,包括存儲器、處理器以及應用推薦裝置。所述應用推薦裝置安裝或存儲于所述存儲器由所述處理器控制應用推薦裝置各功能模塊的執(zhí)行。與現(xiàn)有技術相比,本發(fā)明實施例提供的應用推薦方法及裝置,基于用戶的使用習慣構建用戶的特征向量;并通過采用用戶的特征向量生成所述用戶的推薦應用序列。在生成用戶的推薦應用序列時考慮用戶之前的使用習慣,在進行應用推薦時會將與用戶之前使用習慣相關性大的應用推薦給用戶,從而實現(xiàn)不同用戶之間應用的個性化推薦,推薦準確率高,有助于提高應用下載量,提升用戶的使用體驗。為使本發(fā)明的上述目的、特征和優(yōu)點能更明顯易懂,下文特舉較佳實施例,并配合所附附圖,作詳細說明如下。附圖說明為了更清楚地說明本發(fā)明實施例的技術方案,下面將對實施例中所需要使用的附圖作簡單地介紹,應當理解,以下附圖僅示出了本發(fā)明的某些實施例,因此不應被看作是對范圍的限定,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他相關的附圖。圖1是本發(fā)明較佳實施例提供的服務器與至少一用戶終端進行通信的交互示意圖。圖2是圖1所示的服務器的方框示意圖。圖3是本發(fā)明較佳實施例提供的圖2中所示的應用推薦裝置的一種功能模塊框圖。圖4是本發(fā)明較佳實施例提供的圖2中所示的應用推薦裝置的另一種功能模塊框圖。圖5是本發(fā)明較佳實施例提供的一種應用推薦方法的具體流程圖。圖6是圖5中步驟S113包括的子步驟流程示意圖。圖7是本發(fā)明較佳實施例提供的另一種應用推薦方法的具體流程圖。主要元件符號說明服務器100用戶終端200網(wǎng)絡300應用推薦裝置110存儲器111處理器112存儲控制器113特征向量生成模塊1101預測模型生成模塊1102推薦應用序列生成模塊1103標簽序列生成子模塊11031推薦應用序列生成子模塊11032應用序列推薦模塊1104具體實施方式下面將結合本發(fā)明實施例中附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例。通常在此處附圖中描述和示出的本發(fā)明實施例的組件可以以各種不同的配置來布置和設計。因此,以下對在附圖中提供的本發(fā)明的實施例的詳細描述并非旨在限制要求保護的本發(fā)明的范圍,而是僅僅表示本發(fā)明的選定實施例?;诒景l(fā)明的實施例,本領域技術人員在沒有做出創(chuàng)造性勞動的前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。應注意到:相似的標號和字母在下面的附圖中表示類似項,因此,一旦某一項在一個附圖中被定義,則在隨后的附圖中不需要對其進行進一步定義和解釋。同時,在本發(fā)明的描述中,術語“第一”、“第二”等僅用于區(qū)分描述,而不能理解為指示或暗示相對重要性。請參照圖1,是本發(fā)明較佳實施例提供的服務器100與至少一用戶終端200進行通信的交互示意圖。所述用戶終端200可通過網(wǎng)絡300訪問服務器100,以獲得服務器100提供的應用(Application,APP)推薦服務。本實施例中,所述服務器100可以是,但不限于,web(網(wǎng)站)服務器。所述用戶終端200可以是,但不限于,智能手機、個人電腦(personalcomputer,PC)、平板電腦、個人數(shù)字助理(personaldigitalassistant,PDA)、移動上網(wǎng)設備(mobileInternetdevice,MID)等。所述網(wǎng)絡300可以是,但不限于,有線網(wǎng)絡或無線網(wǎng)絡。請參照圖2,是圖1所示的服務器100的方框示意圖。所述服務器100包括應用推薦裝置110、存儲器111、處理器112及通信單元113。所述存儲器111、處理器112及通信單元113的各元件相互之間直接或間接地電性連接,以實現(xiàn)數(shù)據(jù)的傳輸或交互。例如,這些元件相互之間可通過一條或多條通訊總線或信號線實現(xiàn)電性連接。其中,所述存儲器111可以是,但不限于,隨機存取存儲器(RandomAccessMemory,RAM),只讀存儲器(ReadOnlyMemory,ROM),可編程只讀存儲器(ProgrammableRead-OnlyMemory,PROM),可擦除只讀存儲器(ErasableProgrammableRead-OnlyMemory,EPROM),電可擦除只讀存儲器(ElectricErasableProgrammableRead-OnlyMemory,EEPROM)等。其中,存儲器111用于存儲程序,所述處理器112在接收到執(zhí)行指令后,執(zhí)行所述程序。所述通信單元113用于通過所述網(wǎng)絡300建立所述服務器100與所述用戶終端200之間的通信連接,并用于通過所述網(wǎng)絡300接收和發(fā)送數(shù)據(jù)。所述應用推薦裝置110包括至少一個可以軟件或固件(firmware)的形式存儲于所述存儲器111中或固化在所述服務器100的操作系統(tǒng)(operatingsystem,OS)中的軟件功能模塊。所述處理器112用于執(zhí)行所述存儲器111中存儲的可執(zhí)行模塊,例如應用推薦裝置110所包括的軟件功能模塊及計算機程序等。本實施例中,所述應用推薦裝置110為服務器100提供針對不同用戶的個性化應用推薦服務,具體的方法在后續(xù)進行詳細說明。請參照圖3,是本發(fā)明較佳實施例提供的圖2所示應用推薦裝置110的功能模塊框圖。所述應用推薦裝置110包括特征向量生成模塊1101、預測模型生成模塊1102及推薦應用序列生成模塊1103。所述特征向量生成模塊1101,用于根據(jù)用戶的歷史應用列表計算得到所述用戶的特征向量。在本實施例中,所述歷史應用列表可以包括所述用戶終端200的已安裝應用列表、預設時間內(nèi)(比如,最近一段時間)的下載應用列表、預設時間內(nèi)的瀏覽應用列表及預設時間內(nèi)的更新應用列表。下面具體介紹所述特征向量生成模塊1101根據(jù)用戶的歷史應用列表計算得到所述用戶的特征向量的過程。首先,所述特征向量生成模塊1101計算得到歷史應用列表中每個應用的分值。所述特征向量生成模塊1101獲取每個用戶已安裝應用列表、預設時間內(nèi)的下載應用列表、預設時間內(nèi)的瀏覽應用列表及預設時間內(nèi)的更新應用列表。對每個應用列表中的所有應用的分值進行計算。分值計算方法如下:針對更新應用列表,應用的分值為:update_app_scorei=update_appi×wupdate;針對瀏覽應用列表,應用的分值為:view_app_scorei=view_appi×wviewe;針對下載應用列表,應用的分值為:download_app_scorei=download_appi×wdownload;針對對安裝應用列表,應用的分值為:install_app_scorei=install_appi×winstadll。其中,update_appi、view_appi、download_appi和install_appi分別表示應用i的更新次數(shù)、瀏覽次數(shù)、下載次數(shù)和安裝次數(shù);wupdate、wview、wdownload和winstall分別表示更新次數(shù)的權重、瀏覽次數(shù)的權重、下載次數(shù)的權重和安裝次數(shù)的權重,可為預設值。以用戶i為例,用戶i的應用的分值分布參照表1。表1所述特征向量生成模塊1101為歷史應用列表中每個應用賦予標簽。具體地,所述特征向量生成模塊1101從應用與標簽的映射表中查詢應用所對應的標簽,并擴展表1,為每個應用帶上標簽從而得到表2。表2所述特征向量生成模塊1101計算單個用戶的標簽的概率分布值。具體地,所述特征向量生成模塊1101對每個用戶同一標簽下的應用分值進行求和,得到每一用戶的各類標簽分值,請參照表3。表3進行歸一化得到該用戶的標簽概率分布,用戶i的標簽j的概率分布值表示為p(cj|ui),請參照表4。表4所述特征向量生成模塊1101計算所有用戶的標簽的概率分布值。具體地,所述特征向量生成模塊1101對所有用戶求和統(tǒng)計各個標簽分值,并進行歸一化為所有用戶的標簽概率分布值,所有用戶的各個標簽j的概率分布值表示為p(cj),具體請參照表5。標簽p(cj)音樂3.03%網(wǎng)購16.16%社交15.29%.......0.15%.......0.42%.......0.09%.......0.30%.......0.54%表5所述特征向量生成模塊1101根據(jù)所述單個用戶的標簽的概率分布值及所有用戶的標簽的概率分布值得到用戶的特征向量。具體地,所述特征向量生成模塊1101計算每個用戶的特征向量,計算用戶i的特征向量的公式為:Vi=[vi,1,vi,2,...,vi,j,...,vi,N],其中:N代表標簽的數(shù)量。用戶i的特征向量中的特征值vi,j與標簽關系請參照表6。標簽vi,j社交2.18網(wǎng)購2.06音樂播放11.00表6在本實施例中,也可以基于用戶i的特征向量Vi=[vi,1,vi,2,...,vi,j,...,vi,N],采用機器學習的方法重新獲得新的特征向量來表征用戶i的特征。所述預測模型生成模塊1102,用于根據(jù)多個所述用戶的特征向量訓練得到應用對應的各個標簽的預測模型。在本實施例中,所述預測模型生成模塊1102先生成每個標簽下應用的訓練樣本集,所述訓練樣本集生成的方法如下。若在t天內(nèi)生成的用戶i的特征向量為Vi=[vi,1,vi,2,...,vi,j,...,vi,N],且在第t+1天下載了標簽為L的應用,則該用戶的訓練樣本數(shù)據(jù)為Si=[vi,1,vi,2,...,vi,j,...,vi,N,1];否則,記為Si=[vi,1,vi,2,...,vi,j,...,vi,N,0]。其中,最后一個維度為訓練目標。對所有用戶生成訓練樣本,得到包括所有用戶訓練樣本的訓練樣本集{Si}。所述預測模型生成模塊1102采用決策樹模型對所有用戶在標簽L下的訓練樣本集{Si}進行訓練,得到針對標簽L的決策樹預測模型ML。所述預測模型生成模塊1102再針對所有標簽采用上述方法進行訓練,得到包括所有標簽的預測模型的預測模型集{ML}。所述推薦應用序列生成模塊1103用于基于用戶的特征向量以及所述各個標簽的預測模型生成所述用戶的推薦應用序列。請參照圖4,在本實施例中,所述推薦應用序列生成模塊1103可以包括標簽序列生成子模塊11031及推薦應用序列生成子模塊11032。生成所述用戶的推薦應用序列的具體方式可以通過上述子模塊實現(xiàn),具體實現(xiàn)方式如下。所述標簽序列生成子模塊11031用于將所述用戶的特征向量分別輸入到各個標簽的預測模型中,得到所述用戶的預測標簽序列。所述標簽序列生成子模塊11031將每個用戶的特征向量輸入到各個標簽的預測模型中,得到每個用戶的預測標簽序列Ui={Lj}。所述標簽序列生成子模塊11031根據(jù)每個用戶的預測標簽序列生成包括所有用戶的預測標簽序列的標簽序列集。所述推薦應用序列生成子模塊11032,用于根據(jù)所述預測標簽序列與所述預測標簽下的應用生成所述用戶的推薦應用序列。所述推薦應用序列生成子模塊11032對用戶的預測標簽序列進行排序。在本實施例中,按照用戶對標簽的基尼值(gini值)大小對該預測標簽序列中的各個標簽進行排序。具體地,可以按照基尼值從小到大進行排序。所述推薦應用序列生成子模塊11032對標簽下所有應用進行排序,得到該標簽下應用的推薦序列。在本實施例中,對標簽下所有應用按照在預設時間內(nèi)的下載次數(shù)進行排序,具體地可以按照推薦序列中應用的下載次數(shù)從大到小進行排序。所述推薦應用序列生成子模塊11032根據(jù)每個用戶的預測標簽序列中各標簽的序列號及各標簽下應用的推薦序列號,得到每個用戶的推薦應用序列。在本實施例中,所述推薦應用序列生成子模塊11032對所述預測標簽序列中的各個標簽進行排序;和對各個標簽下所有應用進行排序。根據(jù)每個用戶的預測標簽序列中各個標簽的排序及各個標簽下的應用的排序,計算得到每個用戶的推薦應用序列。具體地,所述推薦應用序列生成子模塊11032計算得到每個用戶的推薦應用序列的方式為:將每個用戶的預測標簽序列中各標簽的序列號及各標簽下應用的推薦序列號相乘,并根據(jù)乘積對應用排序(如采用升序方式進行排序),得到該用戶的推薦應用序列。所述推薦應用序列生成子模塊11032還根據(jù)每個用戶的推薦應用序列生成包括所有用戶的推薦應用序列的推薦應用序列集。請再次參照圖4,在本實施例中,所述應用推薦裝置110還可以包括應用序列推薦模塊1104,所述應用序列推薦模塊1104用于在用戶訪問應用商店時,將所述用戶的推薦應用序列中的應用推薦給所述用戶。具體地,應用序列推薦模塊1104可以將所述推薦應用序列中排列靠前(比如,排名前三)的應用推薦給用戶,以供用戶進行選擇下載。請參照圖5,是本發(fā)明較佳實施例提供的應用于圖2所示服務器100的信息復制方法的流程圖。所述方法相關的流程定義的方法步驟可以由所述處理器113實現(xiàn)。下面對圖5所示的具體流程進行詳細闡述。步驟S111,根據(jù)用戶的歷史應用列表計算得到所述用戶的特征向量。在本實施例中,所述歷史應用列表包括已安裝應用列表、預設時間內(nèi)的下載應用列表、預設時間內(nèi)的瀏覽應用列表及預設時間內(nèi)的更新應用列表。所述步驟S111包括:計算得到歷史應用列表中每個應用的分值;為歷史應用列表中每個應用賦予標簽;計算單個用戶的標簽的概率分布值;計算所有用戶的標簽的概率分布值;及根據(jù)所述單個用戶的標簽的概率分布值及所有用戶的標簽的概率分布值得到用戶的特征向量。上述步驟S111所描述的過程可以由特征向量生成模塊1101執(zhí)行并實現(xiàn)。步驟S112,根據(jù)多個所述用戶的特征向量訓練得到應用對應的各個標簽的預測模型。具體地,步驟S112包括:生成每個標簽下應用的訓練樣本集。對所述訓練樣本集采用決策樹模型進行訓練得到每個標簽的預測模型,并根據(jù)每個標簽的預測模型生成包括所有標簽的預測模型的預測模型集。上述步驟S112所描述的過程可以由預測模型生成模塊1102執(zhí)行并實現(xiàn)。步驟S113,基于用戶的特征向量以及所述各個標簽的預測模型生成所述用戶的推薦應用序列。請參照圖6,在本實施例中,所述步驟S113可以包括子步驟S1131及子步驟S1132。子步驟S1131,將所述用戶的特征向量分別輸入到各個標簽的預測模型中,得到所述用戶的預測標簽序列。上述子步驟S1131所描述的過程可以由標簽序列生成子模塊11031執(zhí)行并實現(xiàn)。子步驟S1132,根據(jù)所述預測標簽序列與所述預測標簽下的應用生成所述用戶的推薦應用序列。具體地,所述子步驟S1132包括:對所述預測標簽序列中的各個標簽進行排序;對各個標簽下所有應用進行排序;及根據(jù)每個用戶的預測標簽序列中各個標簽的排序及各個標簽下的應用的排序,計算得到每個用戶的推薦應用序列。其中,在所述預測標簽序列中標簽按照所述用戶對標簽的基尼值大小進行排序。其中,計算得到每個用戶的推薦應用序列的步驟可以包括:根據(jù)每個用戶的預測標簽序列中各標簽的序列號及各標簽下應用的推薦序列號,得到每個用戶的推薦應用序列。上述子步驟S1132所描述的過程可以由推薦應用序列生成子模塊11032執(zhí)行并實現(xiàn)。請參照圖7,在本實施例中,所述應用推薦方法還可以包括步驟S114。步驟S114,在用戶訪問應用商店時,將所述用戶的推薦應用序列中的應用推薦給所述用戶。具體地,服務器100可以將所述推薦應用序列中排列靠前(比如,排名前三)的應用推薦給用戶,以供用戶進行選擇下載。上述步驟S114所描述的過程可以由應用序列推薦模塊1104執(zhí)行并實現(xiàn)。綜上所述,本發(fā)明實施例提供的應用推薦方法及裝置,基于用戶的使用習慣構建用戶的特征向量;并通過采用用戶的特征向量對應用所對應的標簽進行訓練得到標簽的預測模型集;再根據(jù)所述用戶的特征向量和標簽的預測模型集得到預測標簽序列集;最后根據(jù)預測標簽序列集生成所有用戶的推薦應用序列集。在生成用戶的推薦應用序列時考慮了用戶之前的使用習慣,在進行應用推薦時會將與用戶之前使用習慣相關性大的應用推薦給用戶,從而實現(xiàn)不同用戶之間應用的個性化推薦,推薦準確率高,有助于提高應用下載量,提升用戶的使用體驗。在本申請所提供的幾個實施例中,應該理解到,所揭露的設備和方法,也可以通過其它的方式實現(xiàn)。以上所描述的設備實施例僅僅是示意性的,例如,附圖中的流程圖和框圖顯示了根據(jù)本發(fā)明的多個實施例的設備、方法和計算機程序產(chǎn)品的可能實現(xiàn)的體系架構、功能和操作。在這點上,流程圖或框圖中的每個方框可以代表一個模塊、程序段或代碼的一部分,所述模塊、程序段或代碼的一部分包含一個或多個用于實現(xiàn)規(guī)定的邏輯功能的可執(zhí)行指令。也應當注意,在有些作為替換的實現(xiàn)方式中,方框中所標注的功能也可以以不同于附圖中所標注的順序發(fā)生。例如,兩個連續(xù)的方框實際上可以基本并行地執(zhí)行,它們有時也可以按相反的順序執(zhí)行,這依所涉及的功能而定。也要注意的是,框圖和/或流程圖中的每個方框、以及框圖和/或流程圖中的方框的組合,可以用執(zhí)行規(guī)定的功能或動作的專用的基于硬件的系統(tǒng)來實現(xiàn),或者可以用專用硬件與計算機指令的組合來實現(xiàn)。另外,在本發(fā)明各個實施例中的各功能模塊可以集成在一起形成一個獨立的部分,也可以是各個模塊單獨存在,也可以兩個或兩個以上模塊集成形成一個獨立的部分。所述功能如果以軟件功能模塊的形式實現(xiàn)并作為獨立的產(chǎn)品銷售或使用時,可以存儲在一個計算機可讀取存儲介質中?;谶@樣的理解,本發(fā)明的技術方案本質上或者說對現(xiàn)有技術做出貢獻的部分或者該技術方案的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品存儲在一個存儲介質中,包括若干指令用以使得一臺計算機設備(可以是個人計算機,服務器,或者網(wǎng)絡設備等)執(zhí)行本發(fā)明各個實施例所述方法的全部或部分步驟。而前述的存儲介質包括:U盤、移動硬盤、只讀存儲器(ROM,Read-OnlyMemory)、隨機存取存儲器(RAM,RandomAccessMemory)、磁碟或者光盤等各種可以存儲程序代碼的介質。需要說明的是,在本文中,諸如第一和第二等之類的關系術語僅僅用來將一個實體或者操作與另一個實體或操作區(qū)分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關系或者順序。而且,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設備中還存在另外的相同要素。以上所述僅為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明,對于本領域的技術人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內(nèi)。應注意到:相似的標號和字母在下面的附圖中表示類似項,因此,一旦某一項在一個附圖中被定義,則在隨后的附圖中不需要對其進行進一步定義和解釋。以上所述,僅為本發(fā)明的具體實施方式,但本發(fā)明的保護范圍并不局限于此,任何熟悉本
技術領域:
的技術人員在本發(fā)明揭露的技術范圍內(nèi),可輕易想到變化或替換,都應涵蓋在本發(fā)明的保護范圍之內(nèi)。因此,本發(fā)明的保護范圍應所述以權利要求的保護范圍為準。當前第1頁1 2 3