根據昨天的url上報資料生成als模型。之後将模型加載到流式計算中,對實時url的通路使用者進行内容推薦。整個流程隻需要你寫寫sql(做解析),弄弄配置就搞定。
之後的sql就是抽取出userid 和itemid,然後得到一個包含label, features 的表。在streamingpro中,所有的的算法的輸入都會遵循這個規範。對于als算法而言,label 表示userid, features則是userid,itemid,rating 三個按逗号拼接的字元串。對于回歸類算法,則是逗号拼接的數字。
最後通過元件algorithmoutputcompositor 完成模型訓練。
path表示輸出路徑。 algorithm 表示算法。目前隻支援 als,lr(線性回歸),lr2(邏輯回歸)三種算法。後續會不斷添加。
第二組參數則是對應算法的一些配置參數。你可以配置多組,算法自動回選擇最優的一組參數得到模型,并且儲存到對應的path路徑下。
你可以直接運作得到結果:
接着我們要給指定的使用者進行推薦。參看 als-predict。
解析出使用者的邏輯是和上面的是一樣的。裡面的核心子產品是:
path 是模型檔案所在的位置。recommendusersforproductsnum 表示對每個使用者推薦多少内容。outputtablename是輸出的表, 友善後續繼續操作,比如存儲到redis或者資料庫中,友善前端程式做調用。
大家講上面的運作腳本裡的配置檔案路徑調整下,就可以運作起來,看到運作結果,比如我這裡的結果是:
你可以輸入到任何你感興趣的系統中,streamingpro目前支援es,parquet等spark已經支援的格式作為輸出。
即可支援流式。運作腳本如下:
在streamingpro中,一個算法的模型訓練,僅僅被看做一個特殊的存儲。我們完全可以将對應的algothrimoutputcompositor換成 其他的輸出源。
而對于資料的預測,我們僅僅是把它看做一個資料transformer,根據進來的資料,新生成一個prediction字段。
無論是模型訓練還是預測,都是基于sql流來完成的,完美的融入到了資料的流程當中。