基于隱式反饋協同過濾算法的推薦系統及方法
【技術領域】
[0001] 本發明涉及互聯網技術領域,尤其涉及一種基于隱式反饋協同過濾算法的推薦系 統及方法。
【背景技術】
[0002] 電子商務領域中,隨著商品越來越豐富,品類越來越多,人們從海量的商品里找到 自己感興趣商品的時間成本越來越高。為解決這個問題,有效指導用戶在電子商務網站中 購物,電子商務推薦系統應運而生。電子商務推薦系統可以根據已有的用戶信息,向目標用 戶推薦其可能感興趣的產品信息。然而,隨著移動互聯網的到來,以大不同于PC時代的產品 形態面向用戶,商品的展現形式及用戶購物的習慣已呈一個全新的局面,營銷如何更精準、 市場投放如何有更高的回報、長尾商品如何有更多的機會去展現從而提升轉化,這些問題 都是商家和電子商務平臺目前面臨的重大難題,也正是推薦系統亟待解決的問題。發明人 發現目前的推薦系統存在以下缺陷:
[0003] 目前,推薦系統常用算法主要包括三類:基于內容的推薦算法、協同過濾推薦算 法、基于關聯規則的推薦算法。其中被廣泛使用的是協同過濾算法,常用的協同過濾主要分 為基于用戶的協同過濾和基于商品的協同過濾。基于用戶的協同過濾推薦根據相似用戶群 的觀點來產生對目標用戶的推薦,使用統計方法挑選出與目標用戶最相似的若干用戶,稱 為"鄰居",然后根據這些鄰居對與目標商品相似的商品的評分來推測用戶對目標商品的感 興趣程度;基于產品的協同過濾推薦是根據用戶對與目標商品相似的商品的評分來預測該 用戶對目標商品的感興趣程度。顯然,無論是哪種協同過濾,數據都是基于用戶對于商品的 評分,評分通常是用戶對商品的瀏覽次數、點擊次數、購買次數等轉換而來的顯示數據,在 這其中,基于用戶的協同過濾和基于商品的協同過濾都沒有考慮用戶的噪聲行為,例如用 戶購買某件商品可能是送給自己的朋友,或者點擊某個商品可能只是無意點中偶然產生的 行為,使得直接使用這種評分類數據會給用戶的這些噪聲行為更高的權重,而不能反映用 戶真實的興趣,導致推薦效果不佳。
[0004] 另外,在集群受限及算法實現框架的限制下,大部分的推薦系統會采用單機運算, 不僅效率不高,而且沒辦法利用更豐富的數據去建模,推薦效果也會大打折扣。
【發明內容】
[0005] 本發明的目的在于提供一種基于Spark隱式反饋協同過濾算法的產品推薦系統及 方法,在計算資源有限的環境下,大大提升推薦數據計算效率和推薦效果。
[0006] 為解決上述問題,本發明提出一種基于隱式反饋協同過濾算法的推薦方法,包括:
[0007] 步驟1),根據一電子商務網站上的歷史用戶訪問信息,抽取一段時間內的用戶跳 轉行為記錄,形成訓練數據集;
[0008] 步驟2),根據所述訓練數據集調整隱式反饋協同過濾算法基本模型的參數,生成 預測模型;
[0009] 步驟3),根據該電子商務網站的集群的計算能力把用戶分組,整合用戶與被推薦 的產品,生成多個預測數據集,并利用所述預測模型進行并行運算,預測出每組用戶的產品 偏好,形成推薦結果;
[0010] 步驟4),將所述推薦結果索引入所述電子商務網站的搜索引擎中。
[0011] 進一步的,所述電子商務網站為能夠鏈接產品直屬的電子商務網站的第三方電子 商務網站。
[0012]進一步的,所述步驟1)包括:
[0013] 步驟1.1)先通過所述電子商務網站的生產服務器的日志采集系統采集本地日志, 再從所述本地日志中獲取用戶跳轉行為數據后,存入所述生產服務器的消息系統,再由所 述消息系統輸出存放于所述集群中;
[0014] 步驟1.2)建立用戶與跳轉行為的數據模型表,按照一預定義規則對所述數據模型 表進行分區;
[0015] 步驟1.3)通過分區的數據模型表,并行抽取用戶一段時間內的跳轉記錄,匯總生 成訓練數據集。
[0016] 進一步的,所述日志采集系統為flume系統,所述消息系統為Kafka系統,所述集群 為Spark集群,所述數據模型表為hive模型表。
[0017]進一步的,所述步驟2)包括:
[0018] 步驟2.1),設置好用戶對產品的評分維度,建立評分矩陣,形成隱式反饋協同過濾 算法基本模型;
[0019] 步驟2.2),根據所述集群的計算能力,設置隱式反饋協同過濾算法的參數值以及 目標跳轉率,并采用所述訓練數據集訓練所述基本模型;
[0020] 步驟2.3),根據每次訓練結果反復調整各所述參數值,使得產品跳轉率達到所述 目標跳轉率,以獲得所述預測模型。
[0021] 進一步的,所述步驟3)包括:
[0022] 步驟3.1),將所述電子商務網站的用戶拆分成多組,并將每組用戶按一次計算Μ個 用戶的方式進行用戶集合與被推薦產品集合的笛卡爾積運算,生成預測數據集;
[0023] 步驟3.2),所述集群基于所述預測模型對所述預測數據集進行并行運算,每次并 行運算Ν個預測任務,能獲得Μ*Ν個用戶的推薦結果。
[0024]進一步的,所述步驟4)包括:
[0025] 步驟4.1),所述集群的每個分區各自計算,且每個分區分別建立與所述搜索引擎 的鏈接,并通過所述搜索引擎的用戶接口,實時將運算所得的推薦結果索引入所述搜索引 擎中;
[0026] 步驟4.2)所述搜索引擎預設有用于提交推薦結果的索引文檔數量及提交時間,以 自動提交每個推薦結果的索引。
[0027] 進一步的,所述搜索引擎為Solr搜索引擎。
[0028] 本發明還提供一種基于隱式反饋協同過濾算法的推薦系統,包括:
[0029] 數據采集模塊,用于根據一電子商務網站上的歷史用戶訪問信息,抽取一段時間 內的用戶跳轉行為記錄,形成訓練數據集;
[0030] 模型訓練模塊,用于根據所述訓練數據集調整隱式反饋協同過濾算法基本模型的 參數,生成預測模型;
[0031] 并行預測模塊,用于根據該電子商務網站的集群的計算能力把用戶分組,整合用 戶與被推薦的產品,生成多個預測數據集,并利用所述預測模型進行并行運算,預測每組用 戶的產品偏好,形成推薦結果;
[0032] 推薦顯示模塊,用于將所述推薦結果索引入所述電子商務網站的搜索引擎中。
[0033] 進一步的,所述數據采集模塊通過所述電子商務網站的生產服務器的日志采集系 統采集本地日志,以獲取用戶跳轉行為數據,并用于建立用戶與跳轉行為的數據模型表,所 述數據采集模塊按照一預定義規則對所述數據模型表進行分區,并通過分區的數據模型表 來并行抽取用戶一段時間內的跳轉記錄,匯總生成訓練數據集,并通過所述生產服務器的 消息系統將所述訓練數據集存入所述集群中;
[0034] 所述模型訓練模塊包括:基本模型設置單元,用于設置好用戶對產品的評分維度, 建立評分矩陣,形成基本模型;模型訓練單元,用于根據所述集群的計算能力,設置隱式反 饋協同過濾算法的參數值以及目標跳轉率,并采用所述訓練數據集訓練所述基本模型;預 測模型生成單元,用于根據每次訓練結果反復調整所述參數值,使得產品跳轉率達到所述 目標跳轉率,得到所述預測模型;
[0035] 所述并行預測模塊包括:分組單元,用于將所述電子商務網站的用戶拆分成多組, 并根據所述集群的并行運算能力進行用戶集合和被推薦產品集合的笛卡爾積運算,生成所 述的預測數據集;預測單元,用于基于所述預測模型,并根據所述集群的并行運算能力對多 個預測數據集進行并行運算,以獲得推薦結果。
[0036] 與現有技術相比,本發明提供的基于隱式反饋協同過濾算法的推薦系統及方法, 將用戶的跳轉行為作為產品評分的一種參考,合理調整訓練模型參數,大大提升了推薦效 果;同時利用用戶分組實現集群的并行運算,在計算資源有限的環境下,大大提升了計算效 率。經發明人檢驗,8000萬用戶的離線推薦運算以小型集群的計算能力可以在24小時內計 算完成,且實現了產品跳轉率達到60%以上的實際推薦效果。
【附圖說明】
[0037] 圖1是本發明具體實施例的基于隱式反饋協同過濾算法的推薦方法流程圖;
[0038] 圖2是圖1所示的推薦方法中的并行化運算流程圖;