用于智能設(shè)備的混合推薦系統(tǒng)及其方法
【專利摘要】提供一種為智能設(shè)備推薦應用程序的混合推薦系統(tǒng)和方法。所述混合推薦系統(tǒng)基于云平臺的分布式架構(gòu),包括:日志導入和解析器,從數(shù)據(jù)庫導入應用程序訪問日志,并且對導入的應用程序訪問日志進行解析,提取關(guān)于應用程序使用狀況的信息;用戶建模器,用于創(chuàng)建包括多個應用程序項的應用程序表,并且用于使用日志導入和解析器提取的信息,基于MapReduce編程模型分布式地為各用戶進行用戶建模;混合推薦器,分別為每個用戶生成基于項目的協(xié)同過濾算法的第一候選推薦數(shù)據(jù)、Top-N推薦的第二候選推薦數(shù)據(jù)以及基于內(nèi)容的協(xié)同過濾算法的第三候選推薦數(shù)據(jù),然后按照預定的推薦條目總數(shù)以及第一、第二和第三比例,生成混合推薦數(shù)據(jù)。
【專利說明】用于智能設(shè)備的混合推薦系統(tǒng)及其方法
【技術(shù)領(lǐng)域】
[0001]本申請涉及一種為智能設(shè)備提供應用程序推薦的推薦系統(tǒng)和方法,尤其涉及一種在基于云平臺的分布式系統(tǒng)架構(gòu)中,使用應用程序訪問日志的信息分別生成基于項目的協(xié)同過濾推薦數(shù)據(jù)、基于內(nèi)容的推薦數(shù)據(jù)以及基于用戶國別的Top-N推薦數(shù)據(jù),并且按照預定比例將生成的所述推薦數(shù)據(jù)進行融合,從而生成混合推薦數(shù)據(jù)的技術(shù)。
【背景技術(shù)】
[0002]隨著科技的發(fā)展,具有操作系統(tǒng)、用戶可以自由安裝和卸載應用程序的智能設(shè)備越來越多,比如智能手機、智能電視、平板電腦等。以電視為例,現(xiàn)在的電視機已經(jīng)不只具有放電視的功能了,智能電視可像電腦一樣具有開放的平臺并搭載操作系統(tǒng)。用戶可通過智能電視上網(wǎng)、玩游戲、自由安裝和卸載軟件或游戲等第三方服務商提供的程序。由于智能設(shè)備用戶的選擇越來越多,用戶有效確定自己感興趣的應用程序越來越困難,需要花費大量的時間和精力。然而,智能設(shè)備記錄了用戶幾乎所有的使用日志。我們可以通過對日志的分析和模式挖掘來發(fā)現(xiàn)各個用戶感興趣的應用程序,然后將一組用戶最可能感興趣的應用程序推薦給用戶,以有效解決信息過載和信息迷失的問題,節(jié)省用戶的時間。
[0003]推薦的概念可被定義為:任何能夠產(chǎn)生個性化推薦作為輸出或在可能選項很大的空間中能夠以個性化的方式有效引導用戶到感興趣或有用的對象的系統(tǒng)。在電子商務中,推薦系統(tǒng)就是了解和學習客戶的需求與愛好,為用戶提供商品信息和建議,推薦其可能感興趣的商品,實現(xiàn)信息服務的個性化。
[0004]目前,常用的推薦技術(shù)有協(xié)同過濾的推薦、基于內(nèi)容的推薦、基于效用的推薦、基于知識的推薦和基于規(guī)則的推薦等。上述每種推薦技術(shù)有其各自的優(yōu)點和缺點。例如,協(xié)同過濾的推薦能夠處理復雜的非結(jié)構(gòu)化對象、提供個性化推薦數(shù)據(jù)、推薦質(zhì)量可隨時間提高、有助發(fā)現(xiàn)用戶的潛在興趣等優(yōu)點,但同時,協(xié)同過濾的推薦在應付數(shù)據(jù)稀疏問題方面、擴展性方面、新用戶冷啟動問題方面以及新項目冷啟動問題方面等都不理想。又例如,基于內(nèi)容的推薦技術(shù)能夠提供直觀、易解釋的推薦結(jié)果,不存在新項目的冷啟動問題,也不需要以來用戶評價數(shù)據(jù)等,但是卻不能有效地解決新用戶的冷啟動問題,不能夠很好地解決屬性復雜的項目,而且需要依賴大量的歷史數(shù)據(jù)等等。
[0005]當涉及推薦智能設(shè)備的應用程序時,還需要考慮以下幾點:
[0006]1.智能設(shè)備對許多用戶都是新事物,當前使用智能電視的用戶中使用應用程序的用戶占少數(shù),而且用戶評價的項目數(shù)只占項目總數(shù)很小的一部分,所以需要考慮數(shù)據(jù)稀疏問題。
[0007]2.在世界范圍內(nèi),每天都會增加大量的新用戶,雖然他們沒有歷史使用記錄,但是有必要為他們產(chǎn)生推薦,即新用戶的冷啟動問題。
[0008]3.現(xiàn)在有第三方參與智能設(shè)備應用程序的開發(fā)。當新應用程序推出以后,必須能夠?qū)⑺鼈兺扑]給用戶,即新項目的冷啟動問題。
[0009]4.智能設(shè)備的應用程序的規(guī)模相對于智能設(shè)備的用戶來說小很多。為了推薦系統(tǒng)的效率,必須考慮數(shù)據(jù)規(guī)模和可擴展性。
[0010]5.個性化的推薦,以增強用戶的體驗。
[0011]因此,需要一種為各種用戶提供有用的、個性化推薦的推薦系統(tǒng)。
【發(fā)明內(nèi)容】
[0012]本發(fā)明的目的在于提供一種分布式地進行智能設(shè)備的應用程序的推薦處理,并且生成融合了多種推薦技術(shù)的優(yōu)點的混合推薦數(shù)據(jù),從而能夠針對不同類型的用戶以及新推出/已使用過的應用程序都能夠生成相關(guān)性較強的推薦數(shù)據(jù)。
[0013]根據(jù)本發(fā)明的一方面,提供一種為智能設(shè)備推薦應用程序的混合推薦系統(tǒng),所述混合推薦系統(tǒng)基于云平臺的分布式架構(gòu),包括:日志導入和解析器,從數(shù)據(jù)庫導入應用程序訪問日志,并且基于MapReduce編程模型對導入的應用程序訪問日志進行解析,提取關(guān)于應用程序使用狀況的信息;用戶建模器,用于創(chuàng)建包括多個應用程序項的應用程序表,每個應用程序項包括應用程序標識以及多個屬性,所述屬性包括應用程序類型、付費類型以及至少一個關(guān)鍵詞,并且用于使用日志導入和解析器提取的信息,基于MapReduce編程模型分布式地為各用戶進行用戶建模,為每個用戶構(gòu)建包括用戶對應用程序的至少一個屬性的偏好數(shù)據(jù)的用戶模型;混合推薦器,用于使用日志導入和解析器提取的信息以及用戶建模器創(chuàng)建的應用程序表和每個用戶的用戶模型,分別為每個用戶生成基于項目的協(xié)同過濾算法的第一候選推薦數(shù)據(jù)、包括在用戶所屬國家使用頻率高的應用程序的第二候選推薦數(shù)據(jù)以及基于內(nèi)容的協(xié)同過濾算法的第三候選推薦數(shù)據(jù),然后按照預定的推薦條目總數(shù)以及第一、第二和第三比例,分別從每個用戶生成的第一候選推薦數(shù)據(jù)、第二候選推薦數(shù)據(jù)和第三候選推薦數(shù)據(jù)選取符合相應比例的數(shù)量的推薦數(shù)據(jù)條目,并且將分別選取的推薦數(shù)據(jù)條目合并作為所述用戶的混合推薦數(shù)據(jù)。
[0014]混合推薦器可包括:第一推薦器,用于基于MapReduce從日志導入和解析器提取的信息取得各用戶對各應用程序的使用頻率作為項目輸入,根據(jù)預定的基于項目的協(xié)同過濾算法為每個用戶生成第一候選推薦數(shù)據(jù);第二推薦器,用于使用日志導入和解析器提取的信息,生成包括在各個國家各應用程序使用次數(shù)的國家應用程序列表,取得每個用戶所屬國家的信息,統(tǒng)計每個用戶使用應用程序的歷史數(shù)據(jù),并且基于上述信息為每個用戶生成第二候選推薦數(shù)據(jù);第三推薦器,用于根據(jù)混合推薦器創(chuàng)建的應用程序表,為未使用過的應用程序生成特征向量,基于生成的特征向量和各用戶的用戶模型計算各應用程序的相似度,并且為每個用戶生成第三候選推薦數(shù)據(jù)。
[0015]所述基于項目的協(xié)同過濾算法可以是Apache Mahout機器學習庫中實現(xiàn)的基于項目的協(xié)同過濾算法。
[0016]所述第一、第二和第三比例可分別是60%、20%和20%。
[0017]所述混合推薦系統(tǒng)可還包括:用戶應用程序接口,用于根據(jù)智能設(shè)備的鑒權(quán)請求執(zhí)行用戶鑒權(quán),建立與智能設(shè)備的安全會話,在安全會話期間將為智能設(shè)備的用戶生成的混合推薦數(shù)據(jù)發(fā)送給所述智能設(shè)備。
[0018]根據(jù)本發(fā)明的另一方面,提供一種為智能設(shè)備推薦應用程序的混合推薦方法,所述混合推薦方法包括,在基于云平臺的分布式系統(tǒng)架構(gòu)中:從數(shù)據(jù)庫導入應用程序訪問日志,并且對導入的應用程序訪問日志進行解析,提取關(guān)于應用程序使用狀況的信息;創(chuàng)建包括多個應用程序項的應用程序表,每個應用程序項包括應用程序標識以及多個屬性,所述屬性包括應用程序類型、付費類型以及至少一個關(guān)鍵詞;使用從應用程序訪問日志提取的信息,基于MapReduce編程模型分布式地為各用戶進行用戶建模,為每個用戶構(gòu)建包括用戶對應用程序的至少一個屬性的偏好數(shù)據(jù)的用戶模型;用于使用從應用程序訪問日志提取的信息、創(chuàng)建的應用程序表以及為每個用戶構(gòu)建的用戶模型,分別為每個用戶生成基于項目的協(xié)同過濾算法的第一候選推薦數(shù)據(jù)、包括在用戶所屬國家使用頻率高的應用程序的第二候選推薦數(shù)據(jù)以及基于內(nèi)容的協(xié)同過濾算法的第三候選推薦數(shù)據(jù);按照預定的推薦條目總數(shù)以及第一、第二和第三比例,分別從為每個用戶生成的第一候選推薦數(shù)據(jù)、第二候選推薦數(shù)據(jù)和第三候選推薦數(shù)據(jù)選取符合相應比例的數(shù)量的推薦數(shù)據(jù)條目,并且將分別選取的推薦數(shù)據(jù)條目合并作為所述每個用戶的混合推薦數(shù)據(jù)。
[0019]可通過并行地執(zhí)行以下處理,為每個用戶生成第一候選推薦數(shù)據(jù)、第二候選推薦數(shù)據(jù)和第三候選推薦數(shù)據(jù):基于MapReduce從應用程序訪問日志提取的信息取得各用戶對各應用程序的使用頻率作為項目輸入,根據(jù)預定的基于項目的協(xié)同過濾算法為每個用戶生成第一候選推薦數(shù)據(jù);使用從應用程序訪問日志提取的信息,生成包括在各個國家各應用程序使用次數(shù)的國家應用程序列表,取得每個用戶所屬國家的信息,統(tǒng)計每個用戶使用應用程序的歷史數(shù)據(jù),并且基于上述信息為每個用戶生成第二候選推薦數(shù)據(jù);根據(jù)混合推薦器創(chuàng)建的應用程序表,為未使用過的應用程序生成特征向量,基于生成的特征向量和各用戶的用戶模型計算各應用程序的相似度,并且為每個用戶生成第三候選推薦數(shù)據(jù)。
[0020]所述基于項目的協(xié)同過濾算法可以是Apache Mahout機器學習庫中實現(xiàn)的基于項目的協(xié)同過濾算法。
[0021]所述第一、第二和第三比例可分別是60%、20%和20%。
[0022]所述混合推薦方法可還包括:根據(jù)智能設(shè)備的鑒權(quán)請求,執(zhí)行用戶鑒權(quán),建立與智能設(shè)備的安全會話,在安全會話期間將為智能設(shè)備的用戶生成的混合推薦數(shù)據(jù)發(fā)送給所述智能設(shè)備。
【專利附圖】
【附圖說明】
[0023]通過下面結(jié)合附圖進行的描述,本發(fā)明的上述和其他目的和特點將會變得更加清楚,其中:
[0024]圖1是示出根據(jù)本發(fā)明的混合推薦系統(tǒng)的結(jié)構(gòu)框圖;
[0025]圖2是示出根據(jù)本發(fā)明的混合推薦方法的總體操作的流程圖;
[0026]圖3是示出根據(jù)本發(fā)明的混合推薦系統(tǒng)執(zhí)行用戶建模的流程圖;
[0027]圖4是示出根據(jù)本發(fā)明的混合推薦系統(tǒng)根據(jù)基于項目的協(xié)同過濾推薦算法生成第一候選推薦數(shù)據(jù)的流程圖;
[0028]圖5是示出根據(jù)本發(fā)明的混合推薦系統(tǒng)根據(jù)Top-N算法生成第二候選推薦數(shù)據(jù)的流程圖;
[0029]圖6是示出根據(jù)本發(fā)明的混合推薦系統(tǒng)使用基于內(nèi)容的推薦算法生成第三候選推薦數(shù)據(jù)的流程圖;
[0030]圖7是示出根據(jù)本發(fā)明的混合推薦系統(tǒng)基于用戶鑒權(quán)處理用戶請求的流程圖?!揪唧w實施方式】
[0031]以下,參照附圖來詳細說明本發(fā)明的實施例。
[0032]本發(fā)明的為智能設(shè)備推薦應用程序的混合推薦系統(tǒng)基于云平臺的分布式架構(gòu),分布式地執(zhí)行本發(fā)明涉及的各種推薦計算和處理,從而提高大量數(shù)據(jù)的處理速度和效率。
[0033]圖1是示出根據(jù)本發(fā)明的混合推薦系統(tǒng)的結(jié)構(gòu)框圖。參照圖1,根據(jù)本發(fā)明的為智能設(shè)備推薦應用程序的混合推薦系統(tǒng)包括:日志導入和解析器110、用戶建模器130、混合推薦器140以及用戶API服務器150。
[0034]日志導入和解析器110從(例如日志服務器存儲的)數(shù)據(jù)庫導入應用程序訪問日志,并且基于MapReduce編程模型對導入的應用程序訪問日志進行解析,提取關(guān)于應用程序使用狀況的的信息。
[0035]根據(jù)本發(fā)明的示例性實施例,日志導入和解析器110可使用提取的信息創(chuàng)建包括用戶標識(userid)、應用程序標識(AppID)、用戶所屬國家(CountryID)和時間(time)等字段的Hive表cnt_log。
[0036]根據(jù)本發(fā)明的示例性實施例,日志導入和解析器110在導入應用程序訪問日志時,將相關(guān)的日志文件復制到臨時文件夾中。日志導入和解析器110在解析應用程序訪問日志時,將所述提取的信息或者Hive表cnt_log存入指定的文件夾下。
[0037]用戶建模器130創(chuàng)建包括多個應用程序項的應用程序表,每個應用程序項包括應用程序標識以及多個屬性,所述屬性包括應用程序類型、付費類型以及至少一個關(guān)鍵詞。用戶建模器130還使用日志導入和解析器110提取的信息,基于MapReduce編程模型分布式地為各用戶進行用戶建模,為每個用戶生成包括用戶對應用程序的至少一個屬性的偏好數(shù)據(jù)的用戶模型,所述屬性包括應用程序類型、付費類型以及至少一個關(guān)鍵詞。稍后將參照圖3詳細描述根據(jù)本發(fā)明示例性實施例進行用戶建模的具體操作。
[0038]混合推薦器140用于使用日志導入和解析器110提取的信息以及用戶建模器130創(chuàng)建的應用程序表和構(gòu)建的用戶模型分別生成基于項目的協(xié)同過濾的候選推薦數(shù)據(jù)(第一候選推薦數(shù)據(jù))、Top-N候選推薦數(shù)據(jù)(第二候選推薦數(shù)據(jù))以及基于內(nèi)容的候選推薦數(shù)據(jù)(第三候選推薦數(shù)據(jù))。之后,混合推薦器140按照預定的推薦條目總數(shù)以及第一、第二和第三比例,分別從生成的第一候選推薦數(shù)據(jù)、第二候選推薦數(shù)據(jù)和第三候選推薦數(shù)據(jù)選取符合相應比例的數(shù)量的推薦數(shù)據(jù)條目,并且將分別選取的推薦數(shù)據(jù)條目合并作為所述用戶的混合推薦數(shù)據(jù)。根據(jù)本發(fā)明的優(yōu)選實施例,所述第一、第二和第三比例分別為60%、20%和20%,但是所述比例可根據(jù)需要進行調(diào)整。此外,可將所述預定的推薦條目總數(shù)以及第一、第二和第三比例作為系統(tǒng)配置信息的一部分存儲在系統(tǒng)配置文件中。
[0039]根據(jù)本發(fā)明的示例性實施例,混合推薦器140包括第一推薦器141、第二推薦器142和第三推薦器143,其分別用于生成第一候選推薦數(shù)據(jù)、第二候選推薦數(shù)據(jù)和第三候選推薦數(shù)據(jù)。
[0040]第一推薦器141用于基于MapReduce從日志導入和解析器110提取的信息取得各用戶對各應用程序的使用頻率作為項目輸入,根據(jù)預定的基于項目的協(xié)同過濾算法為每個用戶生成第一候選推薦數(shù)據(jù)。
[0041]第二推薦器142用于使用日志導入和解析器110提取的信息,生成包括在各個國家各應用程序使用次數(shù)的國家應用程序列表,取得每個用戶所屬國家的信息,統(tǒng)計每個用戶使用應用程序的歷史數(shù)據(jù),并且基于上述信息為每個用戶生成第二候選推薦數(shù)據(jù)。
[0042]第三推薦器143用于根據(jù)創(chuàng)建的應用程序表,為未使用過的應用程序生成特征向量,基于生成的特征向量和各用戶的用戶模型計算各應用程序的相似度,并且為每個用戶生成第三候選推薦數(shù)據(jù)。
[0043]用戶API服務器150用于根據(jù)智能設(shè)備的鑒權(quán)請求執(zhí)行用戶鑒權(quán),建立與智能設(shè)備的安全會話,在安全會話期間將為智能設(shè)備的用戶生成的混合推薦數(shù)據(jù)發(fā)送給所述智能設(shè)備。圖7示出用戶API服務器150根據(jù)客戶機的請求進行用戶鑒權(quán)以及通過用戶接口提供推薦數(shù)據(jù)的處理,在此不再給予具體的描述。
[0044]圖2是示出根據(jù)本發(fā)明的混合推薦方法的總體操作的流程圖。
[0045]參照圖2,在步驟S210,混合推薦系統(tǒng)的日志導入和解析器110從數(shù)據(jù)庫導入應用程序訪問日志,并且對導入的應用程序訪問日志進行解析,提取關(guān)于應用程序使用狀況的信息。在步驟S220,混合推薦系統(tǒng)的用戶建模器130創(chuàng)建包括多個應用程序項的應用程序表,每個應用程序項包括應用程序標識以及多個屬性,所述屬性包括應用程序類型、付費類型以及至少一個關(guān)鍵詞。
[0046]根據(jù)本發(fā)明的示例性實施例,所述應用程序表被創(chuàng)建為Hive表APP_INF0,該表可包含應用程序的標識、名稱、應用程序類型(Category)、付費類型(Free/Paid),關(guān)鍵字列表等。
[0047]雖然根據(jù)本發(fā)明的示例性實施例,由用戶建模器130創(chuàng)建應用程序表,但是可由其他模塊,如混合推薦器140或單獨的模塊執(zhí)行創(chuàng)建應用程序表的操作。
[0048]在步驟S230,混合推薦系統(tǒng)的用戶建模器130使用從應用程序訪問日志提取的信息,基于MapReduce編程模型分布式地為各用戶進行用戶建模,為每個用戶構(gòu)建包括用戶對應用程序的至少一個屬性的偏好數(shù)據(jù)的用戶模型。
[0049]在步驟240,混合推薦系統(tǒng)的混合推薦器140通過第一推薦器141、第二推薦器142和第三推薦器143分別為每個用戶生成第一候選推薦數(shù)據(jù)、第二候選推薦數(shù)據(jù)和第三候選推薦數(shù)據(jù)。
[0050]在步驟S250,混合推薦系統(tǒng)的混合推薦器140按照預定的推薦條目總數(shù)以及第一、第二和第三比例,分別從為每個用戶生成的第一候選推薦數(shù)據(jù)、第二候選推薦數(shù)據(jù)和第三候選推薦數(shù)據(jù)選取符合相應比例的數(shù)量的推薦數(shù)據(jù)條目,并且將分別選取的推薦數(shù)據(jù)條目合并作為所述每個用戶的混合推薦數(shù)據(jù)。所述第一、第二和第三比例可以分別是60%、20%和 20%。
[0051]根據(jù)本發(fā)明的有選實施例,所述基于項目的協(xié)同過濾算法采用Apache Mahout機器學習庫中實現(xiàn)的基于項目的協(xié)同過濾算法。
[0052]以下將參照圖3描述根據(jù)本發(fā)明的混合推薦系統(tǒng)中的用戶建模器130的建模操作。圖3是示出根據(jù)本發(fā)明的混合推薦系統(tǒng)執(zhí)行用戶建模的流程圖。本發(fā)明的混合推薦系統(tǒng)以從應用程序訪問日志提取的信息(“以下簡稱為日志信息”)作為輸入,采用統(tǒng)計的方法,基于MapReduce實現(xiàn)分布式用戶建模。
[0053]參照圖3,在步驟S242,對各用戶的應用程序使用進行統(tǒng)計。具體為:從日志信息提取事件為應用程序的記錄,輸出“userlD,appID,count”(分別為用戶標識、應用程序標識、使用次數(shù))形式的結(jié)果。例如:Map函數(shù)輸出的key為userID,輸出的value為appID ;Reduce函數(shù)的輸出key為“userID, appID”,輸出value為統(tǒng)計次數(shù)“count”(計數(shù)),分隔符可以為空格或其他特定字符。然后,基于上述輸出結(jié)果創(chuàng)建Hive表USER_APP_STA,該表可包含三個字段,分別是userID、appID和count。
[0054]此后,在步驟S244,用戶建模器統(tǒng)計各用戶對應用程序的付費類型的偏好。例如,通過關(guān)聯(lián)Hive表APP_INF0和USER_APP_STA得到應用程序付費類型的統(tǒng)計,“userID,F(xiàn)ree/Paid count”(用戶標識、免費/付費計數(shù));然后統(tǒng)計各用戶對Free (免費)與Paid (付費)類型的應用程序的偏好,例如,Map函數(shù)輸出的key為userID,輸出的value為 “Free count” 或 “Paid count”,而 Reduce 函數(shù)的輸出 key 為 userID,輸出 value 為概率“Free prob”和“Paid prob”,分隔符可為空格。
[0055]在步驟S246,用戶建模器統(tǒng)計各用戶對應用程序類型(Category)的偏好。具體地講,通過關(guān)聯(lián)Hive表APP_INF0和USER_APP_STA得到應用程序類型的統(tǒng)計,結(jié)果表中的字段為“userID,category,count”(用戶標識、應用程序類型、計數(shù));然后,統(tǒng)計用戶對各類型應用程序的偏好,例如,Map函數(shù)的輸出key為userID,輸出value為“category, count”;Reduce函數(shù)的輸出key為userID,輸出value為“category, prob”,分隔符可為空格。
[0056]然后,在步驟S248,用戶建模器統(tǒng)計各用戶對應用程序關(guān)鍵字的偏好。具體地,首先關(guān)聯(lián)Hi ve表APP_INF0和USER_APP_STA得到應用程序關(guān)鍵字的統(tǒng)計,結(jié)果表中字段為“userID, keywords, count”(用戶標識、關(guān)鍵詞、計數(shù));然后統(tǒng)計用戶對各關(guān)鍵詞(keyword)的偏好情況。比如:Map函數(shù)輸出key為userID,輸出value為“keyword, count”;Reduce函數(shù)的輸出key為userID,輸出value為“keyword prob” (關(guān)鍵詞、概率)。
[0057]最后,在步驟S249,用戶建模器使用從前述步驟得到的各個用戶的信息構(gòu)造用戶模型,即合并各個用戶對應用程序特征的偏好。具體為,通過Hive表APP_INF0統(tǒng)計keyword列表,通過Hive表APP_INF0統(tǒng)計category (應用程序類型)列表,然后為每個用戶提取包含F(xiàn)ree/Paid、keyword、category的信息,并且根據(jù)日志信息構(gòu)造用戶模型。
[0058]圖4是示出根據(jù)本發(fā)明的混合推薦系統(tǒng)根據(jù)基于項目的協(xié)同過濾推薦算法生成第一候選推薦數(shù)據(jù)的流程圖。
[0059]本發(fā)明示例性實施例的第一推薦器采用Apache Mahout庫實現(xiàn)的算法(ItembasedCollaborative Filtering)進行基于項目的協(xié)同過濾推薦,但是本發(fā)明的設(shè)計構(gòu)思不限于此,可以采用任何其他基于項目的協(xié)同過濾算法來生成第一候選推薦數(shù)據(jù),在此僅描述使用Apache Mahout庫的實施方式。
[0060]由于在Apache Mahout庫的協(xié)同過濾推薦算法中,用戶(user)和項目(item)都表示為長整形,因此在解析應用程序訪問日志并提取用戶、項目信息時需要將它們轉(zhuǎn)換成長整形;通過該算法生成推薦后,又需要將其表示長整形的數(shù)據(jù)轉(zhuǎn)換成通常格式(如字符串)。以下本示例性實施例的具體步驟,其中用到的表名、字段名、字段類型、數(shù)據(jù)形式等都是本實施例中采用的形式,不是必須如此:
[0061]在步驟S2511,第一推薦器執(zhí)行運行所述推薦算法的輸入準備,也就是從應用程序訪問日志提取各用戶對各應用程序的使用頻率(用戶對應用程序的使用情況),并將其中的用戶字符串轉(zhuǎn)換成長整形。輸入形如:“userlndex ItemID pref ”,其中,userlndex為轉(zhuǎn)換后的長整型的用戶標識,ItemID為應用程序的標識,本身就是長整型。Pref為該用戶對該項目的偏好值,為浮點型數(shù)據(jù)。[0062]在步驟S2512,第一推薦器運行Mahout庫中的基于項目的協(xié)同過濾推薦算法,產(chǎn)生形如:“userIndex,appList”的推薦結(jié)果,其中appList中包含了推薦的項目和預測的偏好值。
[0063]在步驟S2513,第一推薦器使用日志信息統(tǒng)計使用應用程序的用戶,并生成形如:“userlndex,userID,null”數(shù)據(jù),其中 userlndex 為 key 的值,userID,null 為 value 的值。
[0064]在步驟S2515,第一推薦器將所述推薦結(jié)果轉(zhuǎn)換成需要的形式,在本實施例中會將它轉(zhuǎn)換成“userID, appList”的形式。具體地,首先,將推薦結(jié)果轉(zhuǎn)換成形如:“userlndex,null, appList” 的形式,其中 null, appList 為 value 的值,userlndex 為 key 的值。然后,合并上述步驟和步驟S2513生成的數(shù)據(jù),生成形如“userID,appList”作為第一候選推薦數(shù)據(jù),其中,userID為key的值,appList為value的值。
[0065]圖5是示出根據(jù)本發(fā)明的混合推薦系統(tǒng)根據(jù)Top-N算法生成第二候選推薦數(shù)據(jù)的流程圖。
[0066]本發(fā)明的第二推薦器按照國家統(tǒng)計該國用戶使用應用程序的情況,生成包括在各個國家各應用程序的使用次數(shù)的國家應用程序列表,取得每個用戶所屬國家的信息,統(tǒng)計每個用戶使用應用程序的歷史數(shù)據(jù),并且基于上述信息為每個用戶生成第二候選推薦數(shù)據(jù)。以下是根據(jù)本發(fā)明示例性實施例的生成第二候選推薦數(shù)據(jù)的具體實施步驟,其中的表名、字段名、字段類型、數(shù)據(jù)形式等都是本實施例中采用的形式,不是必須如此:
[0067]參照圖5,在步驟S2521,第二推薦器統(tǒng)計日志中各國各應用程序的使用次數(shù),生成每條的形式為“country,appID,count”的數(shù)據(jù),將生成的數(shù)據(jù)合并并排序,得到各國使用應用程序列表,并按使用次數(shù)高低排序,創(chuàng)建國家應用程序列表,如包括country STRING和apps STRING 字段的 Hive 表 topn_country_apps。
[0068]在步驟S2523,使用日志信息,取得每個用戶所屬國家的信息。具體為,創(chuàng)建包括userid STRING、country STRING 等字段的 Hive 表 topn_up_log,基于 topn_up_log 抽取不同用戶所屬的國家信息,并創(chuàng)建Hive表topn_user_country。該表包含兩個字段:userSTRING, country STRING。
[0069]在步驟S2525,基于步驟S2521和S2523生成的國家應用程序列表和用戶所屬國家信息生成用戶候選推薦數(shù)據(jù)。具體為,關(guān)聯(lián)Hive表topn_country_apps與topn_user_country,以創(chuàng)建新的包括字段 user STRING, apps STRING 的 Hive 表 topn_user_apps。
[0070]在步驟S2527,使用日志信息統(tǒng)計各用戶的應用程序使用歷史數(shù)據(jù),得到形如“userid, usedAppList” 的數(shù)據(jù),其中 “usedAppList” 可以是“appIDl~appID2~...” 的形式。
[0071]此后,在步驟S2528,從在步驟S2525生成的用戶候選推薦數(shù)據(jù)去除在步驟S2527生成的各用戶的應用程序使用歷史數(shù)據(jù),然后從剩余的應用程序列表中選取前面的若干個應用程序作為第二候選推薦數(shù)據(jù)。
[0072]圖6是示出根據(jù)本發(fā)明的混合推薦系統(tǒng)使用基于內(nèi)容的推薦算法生成第三候選推薦數(shù)據(jù)的流程圖。
[0073]基于內(nèi)容的推薦方法通過計算項目的內(nèi)容描述和用戶模型(profile)之間的相似度來生成包括預定數(shù)量的最相似的項目作為推薦數(shù)據(jù)。在上文中已描述了用戶建模器創(chuàng)建包括多個應用程序項的應用程序表,并且構(gòu)建為每個用戶構(gòu)建用戶模型的處理。
[0074]以下是根據(jù)本發(fā)明的示例性實施例生成第二候選推薦數(shù)據(jù)的具體實施步驟,其中使用的表名、字段名、字段類型、數(shù)據(jù)形式等都是本實施例中采用的形式,而不是必須如此:
[0075]參照圖6,在步驟S2531,第三推薦器通過關(guān)聯(lián)Hive表App_Info和cnt_log獲取關(guān)于各用戶未使用過的應用程序的信息,例如可構(gòu)建包括所述信息的Hive表cnt_unused_apps ο
[0076]在步驟S2533,第三推薦器為所述每個用戶未使用過的應用程序的各個屬性生成特征向量。也就是說,生成以例如應用程序類型、付費類型、關(guān)鍵詞的屬性為變量的特征向量。
[0077]在步驟S2535,第三推薦器基于未使用應用程序的特征向量和用戶模型計算兩者之間的相似度。
[0078]例如,可使用向量余弦方法計算所述相似度:
【權(quán)利要求】
1.一種為智能設(shè)備推薦應用程序的混合推薦系統(tǒng),所述混合推薦系統(tǒng)基于云平臺的分布式架構(gòu),包括: 日志導入和解析器,從數(shù)據(jù)庫導入應用程序訪問日志,并且基于MapReduce編程模型對導入的應用程序訪問日志進行解析,提取關(guān)于應用程序使用狀況的信息; 用戶建模器,用于創(chuàng)建包括多個應用程序項的應用程序表,每個應用程序項包括應用程序標識以及多個屬性,所述屬性包括應用程序類型、付費類型以及至少一個關(guān)鍵詞,并且用于使用日志導入和解析器提取的信息,基于MapReduce編程模型分布式地為各用戶進行用戶建模,為每個用戶構(gòu)建包括用戶對應用程序的至少一個屬性的偏好數(shù)據(jù)的用戶模型; 混合推薦器,用于使用日志導入和解析器提取的信息以及用戶建模器創(chuàng)建的應用程序表和每個用戶的用戶模型,分別為每個用戶生成基于項目的協(xié)同過濾算法的第一候選推薦數(shù)據(jù)、包括在用戶所屬國家使用頻率高的應用程序的第二候選推薦數(shù)據(jù)以及基于內(nèi)容的協(xié)同過濾算法的第三候選推薦數(shù)據(jù),然后按照預定的推薦條目總數(shù)以及第一、第二和第三比例,分別從每個用戶生成的第一候選推薦數(shù)據(jù)、第二候選推薦數(shù)據(jù)和第三候選推薦數(shù)據(jù)選取符合相應比例的數(shù)量的推薦數(shù)據(jù)條目,并且將分別選取的推薦數(shù)據(jù)條目合并作為所述用戶的混合推薦數(shù)據(jù)。
2.權(quán)利要求1所述的混合推薦系統(tǒng),其中,混合推薦器包括: 第一推薦器,用于基于MapReduce從日志導入和解析器提取的信息取得各用戶對各應用程序的使用頻率作為項目輸入,根據(jù)預定的基于項目的協(xié)同過濾算法為每個用戶生成第一候選推薦數(shù)據(jù); 第二推薦器,用于使用日志導入和解析器提取的信息,生成包括在各個國家各應用程序使用次數(shù)的國家應用程序列表,取得每個用戶所屬國家的信息,統(tǒng)計每個用戶使用應用程序的歷史數(shù)據(jù),并且基于上述信息為每個用戶生成第二候選推薦數(shù)據(jù); 第三推薦器,用于根據(jù)混合推薦器創(chuàng)建的應用程序表,為未使用過的應用程序生成特征向量,基于生成的特征向量和各用戶的用戶模型計算各應用程序的相似度,并且為每個用戶生成第三候選推薦數(shù)據(jù)。
3.如權(quán)利要求2所述的混合推薦系統(tǒng),其中,所述基于項目的協(xié)同過濾算法是ApacheMahout機器學習庫中實現(xiàn)的基于項目的協(xié)同過濾算法。
4.如權(quán)利要求1所述的混合推薦系統(tǒng),其中,所述第一、第二和第三比例分別是60%、20%和 20%。
5.如權(quán)利要求1所述的混合推薦系統(tǒng),還包括: 用戶應用程序接口,用于根據(jù)智能設(shè)備的鑒權(quán)請求執(zhí)行用戶鑒權(quán),建立與智能設(shè)備的安全會話,在安全會話期間將為智能設(shè)備的用戶生成的混合推薦數(shù)據(jù)發(fā)送給所述智能設(shè)備。
6.一種為智能設(shè)備推薦應用程序的混合推薦方法,所述混合推薦方法包括,在基于云平臺的分布式系統(tǒng)架構(gòu)中: 從數(shù)據(jù)庫導入應用程序訪問日志,并且對導入的應用程序訪問日志進行解析,提取關(guān)于應用程序使用狀況的信息; 創(chuàng)建包括多個應用程序項的應用程序表,每個應用程序項包括應用程序標識以及多個屬性,所述屬性包括應用程序類型、付費類型以及至少一個關(guān)鍵詞;使用從應用程序訪問日志提取的信息,基于MapReduce編程模型分布式地為各用戶進行用戶建模,為每個用戶構(gòu)建包括用戶對應用程序的至少一個屬性的偏好數(shù)據(jù)的用戶模型; 用于使用從應用程序訪問日志提取的信息、創(chuàng)建的應用程序表以及為每個用戶構(gòu)建的用戶模型,分別為每個用戶生成基于項目的協(xié)同過濾算法的第一候選推薦數(shù)據(jù)、包括在用戶所屬國家使用頻率高的應用程序的第二候選推薦數(shù)據(jù)以及基于內(nèi)容的協(xié)同過濾算法的第三候選推薦數(shù)據(jù); 按照預定的推薦條目總數(shù)以及第一、第二和第三比例,分別從為每個用戶生成的第一候選推薦數(shù)據(jù)、第二候選推薦數(shù)據(jù)和第三候選推薦數(shù)據(jù)選取符合相應比例的數(shù)量的推薦數(shù)據(jù)條目,并且將分別選取的推薦數(shù)據(jù)條目合并作為所述每個用戶的混合推薦數(shù)據(jù)。
7.如權(quán)利要求6所述的混合推薦方法,其中,通過并行地執(zhí)行以下處理,為每個用戶生成第一候選推薦數(shù)據(jù)、第二候選推薦數(shù)據(jù)和第三候選推薦數(shù)據(jù): 基于MapReduce從應用程序訪問日志提取的信息取得各用戶對各應用程序的使用頻率作為項目輸入,根據(jù)預定的基于項目的協(xié)同過濾算法為每個用戶生成第一候選推薦數(shù)據(jù); 使用從應用程序訪問日志提取的信息,生成包括在各個國家各應用程序使用次數(shù)的國家應用程序列表,取得每個用戶所屬國家的信息,統(tǒng)計每個用戶使用應用程序的歷史數(shù)據(jù),并且基于上述信息為每個用戶生成第二候選推薦數(shù)據(jù); 根據(jù)混合推薦器創(chuàng)建的應用程序表,為未使用過的應用程序生成特征向量,基于生成的特征向量和各用戶的用戶模型計算各應用程序的相似度,并且為每個用戶生成第三候選推薦數(shù)據(jù)。
8.如權(quán)利要求7所述的混合推薦方法,所述基于項目的協(xié)同過濾算法是ApacheMahout機器學習庫中實現(xiàn)的基于項目的協(xié)同過濾算法。
9.如權(quán)利要求6所述的混合推薦方法,其中,所述第一、第二和第三比例分別是60%、20%和 20%。
10. 如權(quán)利要求6所述的混合推薦方法,還包括:根據(jù)智能設(shè)備的鑒權(quán)請求,執(zhí)行用戶鑒權(quán),建立與智能設(shè)備的安全會話,在安全會話期間將為智能設(shè)備的用戶生成的混合推薦數(shù)據(jù)發(fā)送給所述智能設(shè)備。
【文檔編號】G06Q30/02GK103578007SQ201210253651
【公開日】2014年2月12日 申請日期:2012年7月20日 優(yōu)先權(quán)日:2012年7月20日
【發(fā)明者】周進華, 熊張亮, 李雄鋒, 劉欣, 張勇, 呂光華 申請人:三星電子(中國)研發(fā)中心, 三星電子株式會社