機器學習門下,有哪些在工業界應用較多,前景較好的小方向?

舉個例子:有人做推薦系統,他們可以到各種商城、新聞類App做推薦的工作;有人做語音識別,他們可以去科大訊飛之類的和語音相關的公司工作;有人做人臉識別,他們可以去face++這種公司工作,有人做時間序列分析,他們可以去金融相關的領域工作(嗎?) 本人對時間序列分析比較感興趣,對其他方向也不排斥,哪位業內人士可以講下這些方向的前(錢)景如何嗎?計算機出身,做時間序列分析,日後進入諮詢行業或金融證券行業,走向華爾街的難度有多大呢?在此謝過~


推薦一個尚未受到足夠重視但潛力很大的方向:異常檢測(anomaly detection),也叫異常分析(outlier analysis),相關的還有novelty detection。

異常檢測在工業上有非常廣泛的應用場景:

  • 金融業:從海量數據中找到「欺詐案例」,如信用卡反詐騙,識別虛假信貸
  • 網路安全:從流量數據中找到「侵入者」,識別新的網路入侵模式
  • 在線零售:從交易數據中發現「惡意買家」,比如惡意刷評等
  • 生物基因:從生物數據中檢測「病變」或「突變」

換句話來說,異常檢測就是從茫茫數據中找到那些「長得不一樣」的數據。但檢測異常過程一般都比較複雜,而且實際情況下數據一般都沒有標籤(label),我們並不知道哪些數據是異常點,所以一般很難直接用簡單的監督學習。異常值檢測還有很多困難,如極端的類別不平衡、多樣的異常表達形式、複雜的異常原因分析等。

從人才供給上來看,專門研究或者應用異常檢測的人才是非常有限的。而且大部分人往往都更青睞於傳統互聯網科技公司,留給銀行和零售業的可用之人並不多。因此,已經身處某個行業的朋友們很適合了解學習異常檢測,從而彌補所屬領域對於異常檢測人才的需求

1. 應用場景與前景

像文章開頭提到的,異常檢測的主要應用場景是風險控制(risk control),常見於金融機構、保險機構、銀行等。以我的個人體會為例,各大銀行都在擴充自己的數據分析團隊,嘗試用機器學習手段來降低如銀行卡盜刷的案例。而且值得關注的是,大部分銀行的風控手段往往都還有很大的升級空間,十月份的時候我和加拿大最大的銀行之一的機器智能(machine intelligence)主管交流時,他告訴我他們的部門總共才7個人,最大的困難就是找不到合適的人,即缺少懂得用機器學習來做風控的又願意加入銀行的人。

換個角度來看,對於銀行和普通金融機構來說,最大的挑戰是很難吸引科技人才。大部分科技人才都還是選擇加入互聯網公司,比如國內的BAT或者國外的FLAG。

我也曾給另一個跨國保險公司做過詐騙識別的項目。他們所使用的風控軟體叫做NetReveal,花費數百萬美元,但誤差率高達百分之90。換句話說,100個識別出的欺詐中只有不到10個是真的詐騙,浪費了大量的人力物力。在引入了機器學習的異常檢測後,我們大幅度降低了誤差率。

拿銀行和保險行業的例子是為了說明這個方向缺口很大,但相關人才很少,有符合技能的人才又往往不願意委身於此。因此,異常檢測在風控中的前景非常光明,屬於為數不多機器學習能夠落地的方向

2. 相關技術

異常檢測可以通過監督學習或者非監督學習來做,但往往最終還是需要非監督學習。以反欺詐為例,大部分時候我們根本不知道什麼是欺詐,什麼不是。詐騙的定義往往是很模糊。往小了說,反詐騙似乎是一個二分類問題(binary classification),但細想後會發現如果把每種不同詐騙當做單獨的類型的話,其實這是多分類問題(multi-class classification)。而單一類型的詐騙幾乎是不存在的,且詐騙的手段日新月新總在變化。因此即使擁有歷史數據,我們也很難分辨不同種類的詐騙。

退一步說,即使我們真的有詐騙的歷史數據,即在有標籤的情況下用監督學習,也存在很大的風險。用這樣的歷史數據學出的模型只能檢測曾經出現過與歷史詐騙相似的詐騙,而對於變種的詐騙和從未見過的詐騙,我們的模型將會無能為力因此,在實際情況中,一般不建議直接用任何監督學習,至少不能單純依靠一個監督學習模型來奢求檢測到所有的詐騙。除此之外,欺詐檢測一般還面臨以下問題:

1. 九成九的情況數據是沒有標籤(label)的,各種成熟的監督學習(supervised learning)沒有用武之地。

2. 區分噪音(noise)和異常點(anomaly)時難度很大,甚至需要發揮一點點想像力和直覺。

3. 緊接著上一點,當多種詐騙數據混合在一起,區分不同的詐騙類型更難。根本原因還是因為我們並不了解每一種詐騙定義。

一般來看,我們把異常檢測的技術包括:

1. 建立在統計學意義上的檢測方法

  • 極值分析(extreme value analysis)。這樣的方法往往僅對單獨維度進行研究,使用上有很大的局限性。
  • 對數據分布進行假設,如對異常數據和正常數據進行不同的分布假設,並用EM演算法擬合數據。這樣的方法局限性在於假設往往和實際有較大出入,效果一般。

2. 基於線性分析的檢測方法,特指在低維度上分析數據間相關性的方法。這樣的方法包括維度壓縮如PCA,Factor Analysis等。這類方法的問題在於把數據壓縮後或者找到低維嵌入後,數據的可解釋性下降,我們很難解釋為什麼異常是異常。

3. 基於時空上的異常檢測,特指異常和其所處的環境有關:

  • 空間關係造成的異常:

O點在單獨來看的情況下是正常點,但考慮到臨近點後就是異常點 [1]

  • 時間序列上的異常:

紅色部分單獨來看不是異常,但考慮到臨近點後就是異常點 [2]

時間序列上的突然上升或者下降都可能是異常點 [3]

4. 建立在相似性分析上的異常檢測(proximity based outlier detection):

  • 建立在距離度量的上的異常檢測(distance based),如K-近鄰為原型的也可歸為此類
  • 建立在密度分析上的異常檢測,如經典的 Local outlier factor(LOF)

5. 其他各種異常檢測方法,包括:

  • 集成異常檢測(outlier ensemble):代表性的演算法有isolation forest,feature bagging
  • 監督異常檢測,半監督異常檢測,主動學習(active learning)
  • 圖中的異常檢測,也包括網路中的異常檢測

3. 學習路徑推薦

雖然異常檢測有非常廣闊的應用場景,但據我所知還沒有一門公開課或者中文書籍系統的討論相關的問題。以英文材料為例,比較權威的是Charu Aggarwal的Outlier Analysis [4],本文也多處參考了這本書的內容。

我自己覺得比較恰當的學習路徑是:

  • 掌握基礎的、通用的機器學習知識,如周志華《機器學習》中前半部分的基礎知識點
  • 了解一些統計學的知識也有所幫助,因為最基本的異常檢測是建立在統計學檢驗上的
  • 學習時間序列分析也大有幫助,很多工業界模型都無法逃離「時間軸」
  • 作為入門,可以閱讀一下SIAM關於異常檢測的教程(https://www.siam.org/meetings/sdm10/tutorial3.pdf)
  • 如果可能的話,建議系統學習上文提到Outlier Analysis這本教科書
  • 進階進行論文閱讀的話,大部分研究都發表在數據挖掘會議上,主要包括KDD,ICDM,SIAM Data Mining,傳統的機器學習會議不多

根據評論區朋友的補充,提供一些其他參考資料:

  • @syzyzs 補充Udemy有一門相關課程:Outlier Detection Algorithms in Data Mining and Data Science
  • @卡牌大師 補充「數據挖掘導論」中有一部分關於異常檢測的綜述,Sklearn的文檔中也有討論異常檢測 (2.7. Novelty and Outlier Detection)
  • @TyrionW 補充了一門相關的數據安全課程:CS259D: Data Mining for Cyber Security 以及 智能運維中涉及到的異常檢測 (基於機器學習的智能運維_圖文_百度文庫)

從入門了解的角度,也歡迎大家參考我的知乎文章:

  • 阿薩姆:反欺詐(Fraud Detection)中所用到的機器學習模型有哪些?
  • 用Pyador進行『異常檢測』: 開發無監督機器學習工具庫(一)

4. 總結

個人認為,異常檢測在工業應用上大有可為,是為數不多的有良好應用場景且人才缺口較大的領域同時,因為大家對於互聯網科技公司的嚮往,短時間內人才缺口很難被科班生補上,跨專業的朋友也有得天獨厚的優勢。

但值得注意的是,作為一個小領域,甚至是一個沒那麼火的領域,相關的資料不多,且不成體系。而且資料往往是英文,需要很強的自學能力。不難想像,自學難度以及學習曲線都非常陡峭

開玩笑的說,富貴險中求,對於技術發展要有我們自己的判斷。在全民深度學習的時代,不妨了解一下這些「遺珠」,說不定它會成為你未來很多年的依身傍命之技。


[1] Mira, A., Bhattacharyya, D.K. and Saharia, S., 2012. RODHA: robust outlier detection using hybrid approach. American Journal of Intelligent Systems, 2(5), pp.129-140.

[2] http://researchmining.blogspot.ca/2012/10/types-of-outliers.html

[3] Anomaly Detection – Using Machine Learning to Detect Abnormalities in Time Series Data

[4] Aggarwal, C.C., 2016. Outlier Analysis. Springer.


華爾街都是頂尖高手,除非你從小奧數都是全國名次,否則也就是打下手的份兒。

簡單說:

小區物流,就是簡單的人工智慧,2-3年會全國鋪開。

兒童教育定製,每個人類似闖關遊戲,機器改卷子,機器排行榜。

工地安全監控、工作違規監控。圖像識別,自動標記。

各種房屋、衣服、園藝、廣告等設計工作,一旦機器自動生成,人挑選,簡單易行,國際水平。

工廠生產流程監控和規劃,很快效率提高N%。

高危人群標記:這個對社會影響更大

想像你有無窮個普通人的觀察和思考能力,可以0成本幫手,每個行業都會大步提高效率。


model calibration

有許多機器學習模型輸出的並不是概率,而是score。而這個score你可以直接轉換成標籤作為輸出,但在業界很多時候是需要概率輸出的,比如信貸預測、投注、保險。calibration就是試圖將score轉化成概率。

先佔個坑,以後補。


Prognostics and Health Management

上面那個同學說的「」預警設備故障」應該就是指剩餘壽命預測(Remaining Useful Life),另外還有故障診斷等都會用到機器學習方法。

題主對時序信號有興趣的話,剩餘壽命預測就是一個時間序列的問題,可以用LSTM等模型。

建議題主看看去年KDD Workshop13:

Machine Learning for Prognostics and Health Management

其中有篇用LSTM Encoder Decoder預測剩餘壽命的


我看到過的兩個方向:

1 . 使用機器學習來提前預警設備故障

2 . 使用機器學習來優化產品配方


關於AI的具體運用,Google:《Machine learning 101》

量化金融:鏈接

機器人:

圖片風格轉換

視頻生成

實物翻譯

棋類


MIT Sloan Sports Analytics Conference


石油系統:

1、地質:地震勘探數據分析 ,比如斷層、圈閉的自動識別

2、採油:油井產量預測,故障診斷

3、鑽井:鑽井過程中事故複雜預防。比如鑽具事故、地層異常壓力預報等

不過現在油價太低,石油行業投資萎縮,深度學習是否真正能降低生產成本還很難說。企業投入這方面可能有顧慮


挺難的,太窄了


推薦閱讀:

時間序列數據的聚類有什麼好方法?
一個文本里的所有詞不變,順序隨機後,那麼熵改變了多少?如何計算?
同樣是數據分析方法,為什麼時間序列分析沒有數據挖掘或機器學習那麼火?
如何深入理解時間序列分析中的平穩性?
計量經濟學、時間序列分析和機器學習三者有什麼區別與聯繫?

TAG:人工智慧 | 數據挖掘 | 機器學習 | 演算法工程師 | 時間序列分析 |