【ML專欄】不同應用場景下ML煉丹工的不同生活
TL;DR
- 現有的大數據量監督學習方案更適合用戶不太關心單次結果的場景,如廣告、推薦。
- 場景的特性和產品形態有關,自動診斷要求很苛刻,但輔助診斷系統的要求就要低得多。
- 目前的ML方案對於高準確性+無人值守,這種用戶會就單個case投訴的場景還有些無力。
前言
長期的職位一般都需要提供某種業務價值,單純的試水而不打算落地的研究崗位其實是很少的。
而不同場景下,為了實現各自的業務價值,各位煉丹工所關注的需求和做的事情也是有很大差異的。
場景1:關注平均效果而不太關心單次質量
例如廣告、商品推薦、feed流類內容推薦。
共性是單次請求內容差也不會有太大的問題,用戶本身不太依賴這個,這時候更關注的是平均效果。
這時候相對重要的事就是調模型,尋找和發掘新特徵,更好的線上評估系統,更低的模型線上應用成本(時間、硬體成本)等。
無論是線上還是線下,對請求/樣本的重視程度都要差一些,丟一些數據很多時候無所謂。
場景2:離線或半離線的自動分類
- 用戶上傳數據或爬取數據的自動審核/分類/標註:主要目的是替代人工分類,降低分類的成本。而且發現錯誤時候可以直接修改數據,快速更正。
- 輔助診斷、決策系統:主要是為人工決策提供參考信息,一般會由專家對結果進行確認後才會生效,一般能減少人工的偶然錯誤,降低專家的工作強度。出現不合理結果時候可以依賴人工進行修正。
重點也是模型平均效果,不過在效果-成本的權衡中要更傾向於效果。由於沒有線上准實時性的要求,可以上很重的模型,拿python+tensorflow直接上線都不是事。評估相對更容易,因為數據一般都是線下全部可用的。
總得來說是模型黨的天堂,可以快速做模型,快速拿到業務收益。依靠DL的通用性和泛化能力,能解決的問題也更多樣一些。
但業務場景里無法完全排除人工,無論是生效前審核還是發現badcase的事後干預。所以要配一個給運營人員的人工干預系統。
對請求/樣本要更為重視,每個樣本也明顯要貴的多,雖然未必到全事務系統的程度,但上一個相對可靠性的存儲系統(如傳統SQL資料庫)還是有必要的。
場景3:需要移動端部署,模型更新需求不會特別快
例如手機端上的各種圖像、語音、NLP的模型。
這方面我不太了解。但基本上模型設計時就得考慮inference成本,模型壓縮、量化都是很重要的。此外,還得做各種移動端的適配,C++和移動端指令集優化都是很常見的技能。
由於模型是在移動端,部署成本相對於伺服器端成本更新就高得多。雖然說對模型準確率有要求,但應該不會有人成天拿各種長尾badcase讓你幾個工作日內就修復的情況出現。
或者說對準確率有極高要求的場景一般也不會完全在端上落地。(無人車哭死在廁所)
其他場景:
剩下的場景就要相對胃疼一些,或者叫ML模型只是整個問題的一小部分。
- 無人值守+高準確率+query太稀疏無法完全離線建庫。例如各種地圖App上的導航路線規劃。這種情況下如何修badcase就是個很重要的問題,可能策略/演算法的80%以上人工都在和badcase作鬥爭。
- 高實時性要求場景。這時候模型的效果-線上代價的平衡就變得非常重要。對於一個長序列場景來說LSTM類的方案可能都難以接受。
- 模型依賴的特徵快速變化,線上也要實現快速更新。現在的ML方案基本都是一種統計類的方案,只是他們的「直方圖」的分桶方式是在訓練過程中自動學習的,而且現在有一種莫名的端到端大統一模型的趨勢——減少人工特徵構造,直接使用原始特徵。這時候如果模型依賴的特徵出現快速的變化,就會出現來不及訓練新的模型上線的情況。
- 優化目標尚不明確。這時候往往連怎麼評估工作的產出都要一直扯皮……
- 沒有大量、廉價、有label的數據。拼標註團隊規模的領域,恩……
等等,歡迎大家補充。
而我的業務方向現在就在同時面對上面1,2,3的問題,為自己心疼1秒……
推薦閱讀:
※如何向普通人解釋機器學習、數據挖掘
※機器學習篇:XGB為啥這麼萬能
※人工智慧技術在聲紋識別方面的應用 | 解讀技術
TAG:機器學習 |