機器學習中的模型和資料

吳YH堅發表於2016-11-08

很久很久沒有更新了,並不是我自己不想,確實是最近太忙了,不管是工作上還是生活上都很忙,唉,之前希望自己能夠堅持寫部落格,沒有堅持下來,最近這段時間也是,其實時間吧,能擠還是能擠出來的,但是好不容易擠出來一點時間,不是用來刷手機,就是用來看書了,因為買了一大堆的書也沒時間看,後來想想,自己也不是總理,怎麼會這麼沒時間呢?呵呵,其實嘛,還是

最近工作上做了一些有意思的事情,雖然不是什麼很高階,但是從頭到尾都是自己在做,收穫還是很多的,後續會寫一些感受吧,而且之前的輪子系列也不會斷掉,後面還是抽時間繼續更新。

之前寫過一篇搞機器學習要哪些技能,感興趣的可以再去看看這篇文章,今天這篇可以說是那篇的補充吧。

搞演算法的朋友們,特別是最近很火爆的機器學習和深度學習,搞這些領域的朋友們,或者準備入坑的朋友們,搞演算法離不開兩個東西,一個是模型,一個是資料,模型和資料,究竟誰重要呢?而我們學習機器學習也好,學習深度學習也好,我們關注的是什麼呢?我們遇到的最大的問題是什麼?

高大上的模型選擇綜合徵

學習各種模型,現在已然是機器學習的必備技能,同時也是面試的時候的必備大招,往往面試的時候都會問你,搞過SVM沒有啊,深一點的SVM原理是什麼啊,如何推導啊,梯度下降如何做啊,隨機森林是個啥啊?諸如此類的問題,同時這也是目前很多培訓機構重點培訓的內容,大家買的各種相關的書籍,大多也是說的這些方面的東西,如果你能秒殺這些問題,那麼恭喜你,基本可以去一箇中大型網際網路公司面試成為一名演算法工程師了。

恩,好吧,先說結論,“然而並沒有什麼卵用”,雖然用了引號把結論引起來了,但我認為還是堅持這麼認為,恩,如果你不信,我們來好好掰飭掰飭。

高大上的模型,誰都願意深入的學習一下,掌握一個新的模型,然後把這個模型用到實際應用中,產生牛逼的效果,不枉演算法研究員的稱號。

從最開始的線性迴歸,邏輯迴歸,SVM,隨機森林,到後來的決策樹,樸素貝葉斯,以及現在火得不能再火的神經網路,卷積神經網路,什麼CNN,RNN各種名詞從各處冒出來,到阿法狗狂虐李世石,把機器學習和深度學習推到了一個神一樣的高度,現在出去講PPT,你沒說你用深度學習,都不好意思跟人打招呼。

我相信很多準備入坑機器學習的朋友們,對上面我講的模型都門清,隨便拿一個出來都能詳細的講半天,而且有很多人是真的門清,是能一步一步推匯出公式來的,看了很多書,學了很多培訓機構的課程,也做了很多小實驗,甚至可以把上述模型都可以手寫裸程式碼出來,但我想告訴你的是,即便這樣,你也還在門口徘徊。

為啥?我們來看看。

第一個問題就是,遇到一個實際情況,你用哪個模型?基本上現在的機器學習,都是個分類的問題,不管廣告中的是點選率預估還是文字分類,垃圾郵件分析,影象識別,其實說到底都是個分類的問題,所以上面說的那些個模型也基本都是分類模型,那麼實際情況中用什麼模型呢?

我們看到各種書上介紹樸素貝葉斯的時候必然會提到垃圾郵件分類,彷彿這是垃圾郵件分類的標準模型,但為什麼不用邏輯迴歸呢?這裡你可以說是經驗,因為大家都用貝葉斯方法來做垃圾郵件過濾,所以他的效果可能更好。但是在實際工程應用中可不是每個都有經驗的,遇到一個新問題,用哪個模型呢?這個是你學習完各種高大上模型,推導完各種公式以後,還是很難解決的問題。就說垃圾郵件過濾這個,你覺得QQ郵箱的垃圾郵件過濾,Gmail的垃圾郵件過濾,是用的樸素貝葉斯?

即便通過牛逼的理論知識,選擇了合適的模型,跑起了資料,得到了結果,但是結果並不令人滿意,這時,你還能做什麼呢?呵呵呵呵,調引數吧。

所以說,光從模型上來說,就牽扯到具體問題具體分析的情況,這還只是第一步,因為你無論理論多麼強,無論怎麼分析,確定一個合適的模型以後,希望能夠通過這個模型有較好的產出,其實吧,並沒有什麼卵用。後面還有一座資料的大山需要你去攀登。

窮矮挫的資料清洗體力活

好了,說到資料了,其實從我自己的經驗來看,資料工作才是真正見效的工作,我覺得吧,只要資料好,模型隨便搞,也許有點偏激,但我還是堅持我的觀點。

一般人做機器學習,搞深度學習,做演算法,或者準備入坑的人,往往都忽視了資料清洗,認為那是打下手的資料工程師乾的活,但其實這才是最最最重要的活,只有好的資料,才有好的結果,而資料的清洗,這是一個長期的,需要堅持不懈的,枯燥無趣的,技巧性很強的勞動。

其實這個道理很簡單,機器學習之所以叫學習,其實是模擬了人學習的過程,資料就是課本,模型就是老師,你人來學一個東西,要是沒有好的課本,有好老師有啥用,你拿著一本《毛澤東思想》給愛因斯坦,讓他教教你近代物理學,愛因斯坦再牛逼,但你覺得你學得出來嗎?但你拿著一本《費曼物理學講義》找到一個普通的大學物理老師,雖然他遠沒愛因斯坦厲害,但一樣可以讓你學會物理。這就是資料的能力。

模型一共就那麼多,主流的不超過20種吧,而且現在都神經網路,深度學習了。模型本身更加簡潔了,怎麼拼效果,其實就是拼資料。

最挫最有效的方式

最搓但是最有效的資料清洗方式是什麼?那必須是人工標註了,讓人工智慧來給你機器編寫學習的教材,沒有比這更有效和直接的了,雖然看上去比較挫,但這是個高成本的投入,不是大公司是做不了這個的,這也是為什麼大公司的機器學習產品效果好,不是每個公司都有錢養著幾百人的團隊,再帶著幾百人的實習生來做人工標註的。

舉個例子,同樣做影象識別,微信每天產生的幾億的圖片資料,每天從裡面選取10萬張圖片,假設騰訊有1000人的人工標註團隊,每人每天只要標註100張,那一個月下來就有300萬張高質量的人工標註的資料,使用同樣的卷積神經網路模型,影象識別,圖片鑑黃這種產品,不費什麼力氣就有比較好的效果,而你呢?就算找300萬張圖片擺在這都困難,呵呵。模型也是同樣的模型,有啥用?

所以,有資料才是王道,哦,不,有資料又有錢才是王道。

工程師的方式

既然當不了土豪,為了效果好,那就只能安安穩穩修煉內功了,用工程師的方式來解決資料問題。

網際網路資料基本上需要進行分析的都以日誌資料為主,不管是點選資料還是瀏覽資料,都是海量的日誌型資料,處理日誌,如何清理無用資料,如何清除機器流量,去掉惡意點選,去掉重複資料,這個就沒什麼套路了,八仙過海,各顯神通,能過去就能沉澱下有用的資料,過不去你怎麼調模型也得不到想要的結果。

主流應用

最後,可能會得罪一批人吧,上面說了這麼多機器學習的東西,你還是執意要入坑的話,是不是想好了要去哪些公司呢?來來來,我們來整理整理,看看成熟的,應用最多的,研究也最深入的機器學習都在幹什麼,再想想入不入坑吧:)

百度/搜狗/360/神馬搜尋,點選率預估,搜尋排名讓你點更多廣告,淘寶,點選率預估,個性化推薦,使用者畫像讓你點更多廣告,騰訊,點選率預估讓你點更多廣告,今日頭條,使用者畫像,推薦引擎讓你點更多廣告,京東,個性化推薦讓你點更多廣告,亞馬遜,個性化推薦讓你點更多商品(也是廣告),facebook,使用者畫像讓你點更多廣告,谷歌,各種機器學習讓你點更多廣告,微博,個性化,使用者畫像讓你點更多廣告,各大門戶的(搜狐彙算,新浪扶翼,有道智選)DSP平臺,讓你點更多廣告,知乎,好像馬上就要上自己的廣告DSP平臺了吧,微信是特例,隨便搞個朋友圈廣告就可以讓全國網民high起來去點贊,去評論,還沒必要上機器學習吧。

所以,機器學習 == 讓你點廣告,你是不是覺得很心塞?


如果你覺得不錯,歡迎轉發給更多人看到,也歡迎關注我的公眾號,主要聊聊搜尋,推薦,廣告技術,還有瞎扯。。文章會在這裡首先發出來:)掃描或者搜尋微訊號XJJ267或者搜尋西加加語言就行

機器學習中的模型和資料

相關文章