機(jī)器學(xué)習(xí)是LinkedIn公司關(guān)聯(lián)營銷的關(guān)鍵組成部分。他們使用機(jī)器學(xué)習(xí)為feed、廣告、推薦系統(tǒng)(比如People You May Know)、郵件優(yōu)化、搜索引擎等訓(xùn)練排序算法。更深一點(diǎn)的例子可以看LinkedIn的feed流實(shí)現(xiàn)[部分一,部分二],涉及到如何把機(jī)器學(xué)習(xí)應(yīng)用到feed流排序中。
這些算法在提升用戶體驗(yàn)時(shí)起重要的作用,因此,他們需要提供給工程師們一個(gè)簡單易使用的機(jī)器學(xué)習(xí)工具,使得工程師能創(chuàng)建高質(zhì)量的機(jī)器學(xué)習(xí)模型并且模型能夠快速應(yīng)用到大數(shù)據(jù)集。為了滿足這種需求,LinkedIn開發(fā)了Photon機(jī)器學(xué)習(xí)。Photon機(jī)器學(xué)習(xí)支持Apache Spark,通過結(jié)合Spark快速處理海量數(shù)據(jù)的能力和強(qiáng)大的模型訓(xùn)練和診斷工具,Photon機(jī)器學(xué)習(xí)提供給研究型工程師更多的信息來決策使用哪類推薦系統(tǒng)算法。
Photon機(jī)器學(xué)習(xí)在許多不同的領(lǐng)域?yàn)檠芯啃凸こ處熖峁V泛的價(jià)值,現(xiàn)在已開源。
Photon機(jī)器學(xué)習(xí)是什么?
Photon機(jī)器學(xué)習(xí)提供支持大規(guī)模回歸,支持帶L1、L2和elastic-net正則化的線性回歸、邏輯回歸和泊松回歸。Photon機(jī)器學(xué)習(xí)提供可選擇的模型診斷,創(chuàng)建表格來幫助診斷模型和擬合的優(yōu)化問題。Photon機(jī)器學(xué)習(xí)實(shí)現(xiàn)了實(shí)驗(yàn)性質(zhì)的廣義混合效應(yīng)模型,下面會詳細(xì)介紹。
在LinkedIn如何應(yīng)用Photon機(jī)器學(xué)習(xí)?
典型的機(jī)器學(xué)習(xí)系統(tǒng)以下面的流程圖表示。第一階段是數(shù)據(jù)預(yù)處理,從在線系統(tǒng)清晰數(shù)據(jù),創(chuàng)建數(shù)據(jù)表,特征提取。接下來的階段是應(yīng)用機(jī)器學(xué)習(xí)算法為推薦系統(tǒng)或者搜索系統(tǒng)學(xué)習(xí)得到好的評分函數(shù),進(jìn)而選擇最好的模型。最后,最優(yōu)模型進(jìn)行在線A/B test發(fā)布,來測試其對用戶體驗(yàn)的影響。
Photon機(jī)器學(xué)習(xí)是LinkedIn公司模型訓(xùn)練的核心,可作為其它機(jī)器學(xué)習(xí)庫的熱插拔替代。在上面的流程圖中,圓圈代表行為,圓柱體代表數(shù)據(jù)集。
如何在集群中運(yùn)行Photon機(jī)器學(xué)習(xí)?
在LinkedIn公司,Photon機(jī)器學(xué)習(xí)運(yùn)行使用Spark on Yarn模式,與其它Hadoop MapReduce應(yīng)用共用同一個(gè)集群。我們可以很容易在同一個(gè)工作流中混合使用Photon機(jī)器學(xué)習(xí)和傳統(tǒng)的Hadoop MapReduce程序或者腳本。模型訓(xùn)練從Hadoop MapReduce遷移到Spark on Yarn可提速10到30x倍。為了更好的使用Spark,機(jī)器學(xué)習(xí)算法團(tuán)隊(duì)貢獻(xiàn)了支持Spark的Dr. Elephant。
Spark和Hadoop工作流共用同一個(gè)集群,可支持LinkedIn已有的機(jī)器學(xué)習(xí)輸入和輸出格式,極大的提高Photon機(jī)器學(xué)習(xí)在LinkedIn的推廣。現(xiàn)在許多團(tuán)隊(duì)在開發(fā)關(guān)聯(lián)應(yīng)用和安全數(shù)據(jù)科學(xué)時(shí)使用Photon機(jī)器學(xué)習(xí),一些團(tuán)隊(duì)也在線上使用。
Photon機(jī)器學(xué)習(xí)的發(fā)展方向:GAME
作者開源Photon機(jī)器學(xué)習(xí)到社區(qū),對其他人構(gòu)建和應(yīng)用機(jī)器學(xué)習(xí)會有工業(yè)級別的影響。雖然當(dāng)前有許多開源的機(jī)器學(xué)習(xí)庫,但作者認(rèn)為Photon機(jī)器學(xué)習(xí)是相當(dāng)重要的補(bǔ)充。Photon機(jī)器學(xué)習(xí)提供廣義混合效應(yīng)模型(GAME)。
當(dāng)前,Photon機(jī)器學(xué)習(xí)實(shí)現(xiàn)GAME,支持廣義線性混合效應(yīng)模型(GLMix)。GLMix模型由固定效應(yīng)和多隨機(jī)效應(yīng)模型組成。固定效應(yīng)模型對應(yīng)傳統(tǒng)模型和廣義線性模型,假設(shè)每個(gè)觀測變量是獨(dú)立的。隨機(jī)效應(yīng)在固定效應(yīng)的留存中附加多粒度參數(shù)(users, items, segments)獲取額外的異質(zhì)性。一般規(guī)則化是用來避免過擬合。并且,隨機(jī)效應(yīng)會引起觀測變量的邊際依賴。
GAME采用坐標(biāo)下降法依次解決每個(gè)系數(shù)。
我們使用坐標(biāo)下降法優(yōu)化所有問題,單步按序調(diào)試每個(gè)效應(yīng),使用合適的優(yōu)化器解決子問題。對于固定效應(yīng)坐標(biāo),我們使用分布式回歸算法按列分區(qū)數(shù)據(jù)。Spark的RDD每次迭代利用本地?cái)?shù)據(jù)優(yōu)勢,在不用shuffle數(shù)據(jù)的情況下快速優(yōu)化。為了有效地解決隨機(jī)效應(yīng)坐標(biāo),我們根據(jù)隨機(jī)變量分區(qū)數(shù)據(jù),用單機(jī)算法解決隨機(jī)效應(yīng)坐標(biāo)。
GAME模型提供精確的圖表來輔助研究型工程師定位問題。作者希望使用這些技術(shù)更廣泛的提高推薦系統(tǒng)的算法。LinkedIn公司內(nèi)部使用A/B test顯示Photon機(jī)器學(xué)習(xí)訓(xùn)練GLMix模型在工作推薦中提高了百分之十五到百分之三十,在郵件推薦中提高百分之十到百分之二十(基于點(diǎn)擊率)。雖然這些test只是在早期階段,但得到的結(jié)果表明Photon機(jī)器學(xué)習(xí)能顯著的提高推薦效果。
Photon機(jī)器學(xué)習(xí)提供的GAME算法訓(xùn)練模型,作者后續(xù)將持續(xù)提高它的穩(wěn)健性和易用性。除了廣義線性模型外,作者已經(jīng)開發(fā)了分解式隨機(jī)效應(yīng)模型試驗(yàn)性代碼,利用矩陣分解來和隨機(jī)效應(yīng)交互。在未來,作者將會繼續(xù)用廣義混合框架實(shí)現(xiàn)其它的機(jī)器學(xué)習(xí)算法。
英文原文:Open Sourcing Photon ML:LinkedIn’s Scalable Machine Learning Library for Spark
譯者介紹:俠天,專注于大數(shù)據(jù)、機(jī)器學(xué)習(xí)和數(shù)學(xué)相關(guān)的內(nèi)容,并有個(gè)人公眾號:bigdata_ny分享相關(guān)技術(shù)文章。