Spark 2.2.0 文檔中文版 Collaborative Filtering 協同過濾 JAVA推薦系統

  協同過濾經常使用於推薦系統,這項技術旨在填補 丟失的user-item關聯矩陣 的條目,spark.ml目前支持基於模型的協同過濾(用一些丟失條目的潛在因素在描述用戶和產品)。spark.ml使用ALS(交替最小二乘法)去學習這些潛在因素。在spark.ml中的實現有如下參數:java

numBlocks:塊的數量,user和item將被分紅多少塊,以並行計算。(默認10)apache

ranK:模型隱含因素的個數。(默認10)api

maxIter:模型的最大迭代次數。(默認10)app

regParam :ALS的正則化參數。(默認1.0)dom

implicitPrefs :使用顯式反饋仍是隱式反饋。(默認false,即顯式反饋)ide

alpha:信心權重所應達到的基準線。(默認1.0)學習

nonnegative :是否使用非負數的約束。(默認false)
測試

  注意:基於dataFrame - API的ALS目前只支持整數型的userID和itemID,其餘數字類型也支持,可是取值範圍必須在整數以內。ui

顯式反饋VS隱式反饋

  標準的基於矩陣分解的協同過濾方法對待user-item矩陣的條目項 是顯式地給出user對item的偏好,例如,用戶給電影評級。this

  而現實生活中常見案例是隻能有隱式反饋(例如:視圖,點擊鼠標,購買,喜歡,分享……)。在spark.ml中使用的方法是:對隱式反饋數據集的協同過濾。實際上,這種方法不是直接對數據矩陣進行建模,而是將數據視爲表明用戶行爲意願強度的數字(例如點擊的次數或某人累積觀看電影的時間)。而後,這些數字與觀察到的用戶偏好的置信水平相關,而不是給予項目的明確評級。 而後,該模型嘗試找到可用於預測用戶對項目的預期偏好的潛在因素。

相關文章
相關標籤/搜索