天天看點

《建構實時機器學習系統》一第1章 實時機器學習綜述 1.1 什麼是機器學習...

第1章

實時機器學習綜述

1.1 什麼是機器學習

相信本書的讀者都已經接觸過一點機器學習了,或者聽說過各種新奇的機器學習方法,或者通過相關新聞了解過機器學習的應用場景。那麼,大家是否了解機器學習的定義呢?事實上,對它的定義層出不窮,不同領域的大咖往往都會有一個從自己角度出發的特别“機靈”的定義。比如,吳恩達(Andrew Ng)是深度學習的先驅者之一,他對機器學習的定義是從計算機從業者的角度出發的,他的定義是:

機器學習是一門科學,它旨在讓計算機自主化工作,而不需要刻意程式設計。

而從統計和資料分析的角度出發,世界領先的統計軟體公司 SAS 對機器學習的定義是:

機器學習是一種方法,它旨在用資料分析自動化模型的建立。

筆者個人從學術和工業界應用的角度出發,認為機器學習的定義應該包括以下三個方面。

用資料說話:在正常計算機程式設計中,所有的邏輯都是人為設定的。而機器學習方法是試圖讓觀測到的資料和現象成為編撰邏輯的依據,不同模型之間的衡量标準也試圖盡量達到标準化,以使得人為幹預最小化。

高度自動化:機器學習模型往往會在工業應用中不斷重複更新,是以機器學習模組化生存期中的每個步驟往往都是可以高度自動化的。

魯棒性:雖然教科書中很少提及,但魯棒性(又稱穩定性,Robustness)确實是機器學習方法論中隐含的一個巨大要求。由于模型建立高度自動化,是以我們需要運用的機器學習模型在面對極端資料的時候隻會受到較少影響,不需要人為排錯。

根據筆者的經驗,以上三點是一個組織成功運用機器學習的必要條件,但是一定要以使用者體驗為出發點來進行均衡。

在工業應用中,上面這三點的重要性總是在不斷得到印證。下面就通過兩個應用中的有名案例來體會一下。

  1. 谷歌通過機器學習和人工幹預進行網頁篩查

    谷歌等搜尋引擎公司每天需要處理上百萬個新網頁資訊。為了向使用者快速提供這些資訊,谷歌多年來通過不懈的努力開發出了 Caffeine 平台,将提供實時新聞搜尋結果的延遲從一天縮短到了若幹分鐘。機器學習資料驅動、高度自動化的特點讓谷歌使用者受益不少。就連微軟在通過記者釋出會宣布發行Windows10 的時候,谷歌搜尋引擎也比微軟自有的必應搜尋引擎更快地呈現了與Windows10 相關的資訊。同時為了滿足魯棒性的要求,谷歌通過第三方人工服務,不斷進行人工抽樣審查了大量的網頁内容。

  2. Yelp 機器學習模型的失敗

    Yelp 類似于國内的大衆點評網,其内容多為使用者生成,對餐館、娛樂、家裝等行業都有很全面的覆寫。由于大量商家的成敗都取決于 Yelp,是以市場上出現了冒充消費者進行刷點的評論師。評論師會按照商家的要求對商戶進行不公正的點評,進而對消費者産生誤導。Yelp 意識到了這樣的問題,并且建立了機器學習模型進行自動化偵測。但可能是模組化資料出現了問題(比如,模組化的時候使用了評論師的資料),是以生成的模型并沒有阻擋評論師的進攻,真正的使用者所産生的評論反而會被屏蔽掉,使用者體驗大打折扣。

通過這樣的案例,我們可以意識到基本資料采集對機器學習模型的重要性。如果資料出現了問題,那麼後面的模型、架構再強大也沒有辦法産生效益。

繼續閱讀