熱線電話:13121318867

登錄
首頁精彩閱讀構建機器學習系統的20個經驗教訓
構建機器學習系統的20個經驗教訓
2016-01-05
收藏

構建機器學習系統的20個經驗教訓

數據科學家對優化算法和模型以進一步發掘數據價值的追求永無止境。在這個過程中他們不僅需要總結前人的經驗教訓,還需要有自己的理解與見地,雖然后者取決于人的靈動性,但是前者卻是可以用語言來傳授的。最近Devendra Desale就在KDnuggets上發表了一篇文章,總結了Quora的工程副總裁Xavier AmatriainNetflixQuora從事推薦系統機器學習工作時所總結的20條經驗教訓。 

更多的數據 & 更好的模型

并不是數據越多結果就越好,高質量的數據才能產生高質量的結果。多并不意味著好,事實上,有些情況下較少的數據反而效果更好,因此數據要適量,質量要高。

可能并不需要所有的大數據

組織可能積累了不同種類的大數據,但是并不是每一個場景都會用到所有的數據。大部分情況下,通過一些樣本數據就能獲得比較好甚至是比使用全量數據更好的效果。

有時候更復雜的模型并沒有帶來任何提升,但這并不意味著就不需要它了

如果將一個線性模型的特征數據作為另一個更復雜模型(例如非線性模型)的輸入,而復雜模型產生的結果并沒有任何提升,那并不意味著這個復雜模型就毫無意義。因為通常情況下只有更復雜的特征數據才需要更復雜的模型,對于簡單的特征數據復雜模型往往難以發揮出自身優勢。

學會處理展現偏見

系統通常會將那些預測的比較正確的結果展示給用戶,用戶會選擇性的查看,但是用戶不看的那部分并不一定就毫無吸引力。更好的選擇是通過關注模型或者MAB分析用戶的點擊概率,合理地呈現內容。

認真思考訓練數據

構建訓練和測試數據的時候需要充分考慮結果和各種不同的場景。例如,如果要訓練一個預測用戶是否喜歡某部電影的分類器,那么產生數據的可能場景包括:用戶看完電影并給出了一星的評價,用戶看了5分鐘、15分鐘或者一小時之后離開,用戶再次查看電影等,如何選擇這些數據是需要經過深思熟慮的。

UI是用戶與算法通信的唯一方式

系統通過UI展現算法結果,用戶通過UI提供算法反饋,它們應該是相互對應的關系,任何一個發生變化另一個也需要進行改變。 數據和模型是否已經足夠好了?

要有正確的評估方法

產品決策始終應該是數據驅動的。對于不同的問題,要選擇正確的評估方法,例如,通過A/B測試來衡量不同特征數據,不同算法的優劣;通過脫機測試使用 (IR) 度量測試模型的性能。

分布式算法重要,但是理解它的分布式程度更重要

分布式/并行算法分三級:第一級針對總體的每一個子集,第二級針對超參數的每一種組合,第三級針對訓練數據的每一個子集,每一級都有不同的要求。

慎重地選擇超參數

要選擇正確的度量標準自動化超參數的優化。 有些事情能線下做,有些不能,有些介于兩者之間,為此需要支持多層次的機器學習。

隱式信號幾乎總是打敗顯式信號

許多數據科學家認為隱式反饋更有用。但真的是這樣么?實際上有些情況下結合不同形式的隱式和顯式信號能更好地表示長期目標。

模型會學習你教給他的內容

機器學習算法并不是一個隨意的過程,它的每一步都涉及到科學方法。模型要從訓練數據、目標函數和度量中學習。

有監督 + 無監督的學習

開發模型的時候不能簡單地選擇有監督的或者無監督的學習,它們各有長處,適用場景不同,用戶需要根據具體情況同時迭代地使用它們,通過兩種方法的融合獲得更好的效果。

所有的事情都是一種集成(Ensemble

使用機器學習的大部分應用程序都是一個集合體。你可以添加完全不同的方法(例如CF和基于內容的方式),你也可以在集成層使用許多不同的模型(例如LR、GDBT、RFANN)。

一個模型的輸出可能是另一個模型的輸入

確保模型的輸出具有良好的數據依賴關系,例如可以容易地改變值的分布而不影響依賴它的其他模型。要盡量避免反饋循環,因為這樣會在管道中造成依賴和瓶頸。另外,機器學習的模式設計也需要遵循最佳的軟件工程實踐,例如封裝、抽象、高內聚和松耦合。

特征工程的失與得

良好的機器學習特征可重用、可轉換、可解釋并且可靠。捕獲的特征越好,結果越精確。為了量化數據的屬性必須將維度翻譯成特征。

機器學習基礎設施的兩面性

任何機器學習基礎設施都需要考慮兩種不同的模式。模式1:機器學習實驗需要擴展性、易用性和可重用性。模式2:機器學習產品不僅需要模式1的特性,還需要性能和可伸縮性。理想情況下,應該保持這兩種模式盡可能地相近。

要能回答有關于模型的問題

必須能夠向產品所有者解釋模型的行為,知道如何使用模型,它需要哪些特征,導致失敗的原因是什么;同時還需要知道產品所有者或投資者的期望,能夠向他們介紹模型為產品帶來了什么價值。

不需要分發機器學習算法

Hadoop/Spark這些容易的分布式計算平臺也有一些陷阱,例如成本和網絡延遲,實際上有些情況不使用它們也能很好的完成工作,通過智能數據樣本、離線模式以及高效的并行代碼等方法訓練模型所花費的時間甚至比這些分布式平臺要少的多。

數據科學 vs. 機器學習工程不為人知的故事

擁有強大的能夠挖掘數據價值的數據科學家是非常值得的。但是既懂數據又有扎實工程技能的數據科學家非常稀少,通常情況下,構建數據科學家團隊和機器學習工程團隊并讓他們通力配合才是比較好的方案。

數據分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數據分析師資訊
更多

OK
客服在線
立即咨詢
日韩人妻系列无码专区视频,先锋高清无码,无码免费视欧非,国精产品一区一区三区无码
客服在線
立即咨詢