ALS算法應(yīng)用場景
ALS屬于數(shù)據(jù)挖掘,可以做推薦系統(tǒng),比如電影推薦,商品推薦,廣告推薦等.
原理就是給各個指標(biāo),判定等加權(quán)重,然后將這些訓(xùn)練集輸入ALS,包括其他的參數(shù),內(nèi)部進(jìn)行矩陣相乘,根據(jù)這些權(quán)重,給用戶對未知,未點擊的商品也給一個分?jǐn)?shù),就是喜好程度. 然后把喜好程度高的商品推薦給用戶,假如用戶不喜歡,從線上觀察效果不好,那這個模型就有問題,需要修改參數(shù),修改權(quán)重,或者添加權(quán)重,使之達(dá)到一個理想的效果!
最近項目中用到了這個算法,算是做個總結(jié)吧,粗淺的總結(jié),等以后有機(jī)會有更深的理解再來填充,修改!
ALS算法輸入的參數(shù)
我們的推薦系統(tǒng)是基于ALS算法中的train方法,我們之前的統(tǒng)計的一些指標(biāo)都是為了這個推薦系統(tǒng),把合適的商品推薦給需要的人群,提高用戶體驗和銷售額,和京東淘寶的推薦也是類似的; ALS推薦基于隱語義模型, ALS算法共輸入4個參數(shù)
參數(shù)一: 訓(xùn)練集
用戶對我們這件商品的評分,用戶點擊了這件商品,我們就給一個評分,然后點擊了這個商品的下一步又是多少評分,訂單又是多少分,還有訪問步長也有加權(quán)分,訪問時常也有加權(quán)分,到最后付款,一共1分.
每一步的評分其實就是一個權(quán)重.也可以理解為用戶對商品合適程度,喜好程度.用戶和商品就組成了一個矩陣,只要用戶點擊了商品,就對這個商品有個評分了,而有的卻沒有點擊,它是空白的,我們要做的就是填充這些空白,在空白處根據(jù)之前的權(quán)重預(yù)測一個評分.然后推薦.
假如預(yù)測分和真是分不匹配,我們就優(yōu)化參數(shù),線上觀察效果,再優(yōu)化權(quán)重分,參數(shù).
訓(xùn)練集是用戶,物品鲤屡,評分.,是一個double類型
參數(shù)二: 特征值
給一個特征值,也是double類型的,可以很多參數(shù),可以很少,這個是模型了,看你的模型設(shè)計了,如0.1,然后矩陣與特征相乘,所有的特征值與矩陣相乘的分相加,就得到了一個預(yù)測分.
假如預(yù)測分與實際分不同的話, 那就是特征值給的有問題了,可以修改特征值參數(shù),直到和預(yù)測分類似即可.這就是那些算法工程師一直線上看效果,然后調(diào)參數(shù)了
參數(shù)三: 迭代參數(shù)
這個參數(shù)是讓模型趨近于平穩(wěn),也是一個double值,也就是它的標(biāo)準(zhǔn)差越來越平穩(wěn),迭代之后會產(chǎn)生一個預(yù)測分,((預(yù)測分-真實分)的平方+預(yù)測分) / n 在發(fā)個方,這就是標(biāo)準(zhǔn)差,只要標(biāo)準(zhǔn)差越來越平穩(wěn),也就是收斂,就這OK了,.迭代參數(shù)就好了
參數(shù)四: 防過擬合參數(shù)
這個參數(shù)也是一個和double值,過擬合比如給機(jī)器看一個紅色的蘋果,突然給一張青色的蘋果讓它識別, 它就不認(rèn)識這是一個蘋果了,就是為了滿足盡可能復(fù)雜的任務(wù),我們給它的一個參數(shù). 不妨參數(shù)的話,他就像一個單調(diào)函數(shù),無法涵蓋所有的點,而我們的目的就是為了涵蓋大多數(shù)的點,如下圖所示
下次有了更深的體會再來補(bǔ)充...