劍氣之爭,聊聊演算法崗位的門戶之見!

TechFlow2019發表於2021-01-06

大家好,今天給大家聊點有意思的。

以前在讀金庸先生《笑傲江湖》的時候,總覺得有一個地方有點扯,就是華山派的劍氣之爭。按說有人喜歡耍賤(劍),有人喜歡用氣,這其實是個人喜好,怎麼會上升到門戶紛爭,還因此自相殘殺呢?所以我之前的時候一直覺得這個是金庸先生劇情需要,不然怎麼會有風清揚傳功令狐沖的情節呢?

但是當我長大了步入職場之後,我對這個問題發生了看法。因為我在工作崗位上也看到了一點門戶之見的影子,雖不像小說裡那樣你死我活苦大仇深,但是還是挺有意思的,所以今天就和大家聊聊這個話題。

就我的觀察,職場當中的演算法工程師也可以分為兩派。一派是學院派,一派是實踐派,下面和大家分別聊一聊。

學院派

學院派這個詞應該不難理解,也可以理解成學術派。簡而言之,就是喜歡從學術領域尋找解決方法或者是靈感,比較直接的體現就是看paper。

我發現這個派別和學歷有一點關係,學歷越高,越是根正苗紅的身上的學院派風格越濃。言必稱paper,口必提復現,經常給出的解決方案是,我們可以follow一下某一篇論文當中的方法來嘗試一下,看看是否能夠解決當前的問題。日常的工作當中,也經常會抽空看看各類學術期刊和論文。

大到某某場景使用某某模型,小到某個特徵如何處理,如何做取樣,都勢必要找到援引、出處。簡而言之,我們的一切做法都不是空穴來風的,都是有跡可循,可以找到理論憑證的。有點像是小說裡的劍宗,非常看重套路(劍法),覺得只要套路耍得好,就可以解決問題。反過來說就是輸了一定是劍招沒練到家,或者是學的劍法不行,絕不是內功不濟。

這個派別的好處是看起來比較光鮮,無論是學歷還是做法,都看起來非常高大上。言語當中也是中英夾雜,逼格甚高。說服力很強,無論是和外行交流還是和上司彙報,只要噹噹噹丟擲幾個術語和paper名稱,就可以鎮住場子。外人與之交談,如果沒有一點援引出處很難不心虛,覺得自己的耍的是野狐禪好像登不上大雅之堂。

但缺點也很明顯,只會耍套路實戰往往很堪憂。道理也簡單,因為我們能找到的paper、期刊當中的真材實料其實不多。雖然paper當中會講明model的設計方法甚至會附上程式碼,但是隻有這些是一點用也沒有的。中臺的數倉、特徵的設計和處理,這些真功夫的東西都是不會透露出來的。只仿照模型起到的效果非常非常有限,甚至一些極端情況下是有害的。

還有更重要的一點是,所有的paper都是不成體系的。我之前也寫過幾篇paper剖析,雖然都是推薦領域著名的paper。但是講來講去基本上都只侷限於模型這一塊,關於整個推薦系統當中從上到下、從淺入深是沒有一個完整的介紹和內容的。我個人感覺讀paper有一種管中窺豹的感覺,對於大牛而言心中已經有了豹子的全圖,瞄一眼看幾個關鍵點就足夠了。但對於大多數不那麼資深的從業者來說,想要通過這一孔見方窺得全圖幾乎是不可能的

實踐派

和學院派對立的就是實踐派,也可以簡單理解成野路子。

我之前在阿里的時候感覺比較明顯的就是阿里的企業文化比較崇尚野路子,大家可以聽聽它的標語,“什麼平凡人做非凡事”,“因為相信所以看見”,就可以一窺端倪。

實踐派的作風是實踐出真知,不管那些條條框框的束縛。我講一個我自己的故事給大家體會一下,我剛去阿里沒多久的時候,那時候我也才剛入門,大約是讀過幾本機器學習書籍的水平吧。當時接到一個任務,讓我預測一個使用者喜好的類目。完全沒有想過去看下paper裡是怎麼做的,或者是前人都有過哪些方案,全自己來。簡單設計了一下方案和特徵,大部分特徵都是現成的,其中一些分佈有點問題,我做了一些one-hot或者是multi-hot處理,然後隨便套了一個還不錯的模型(XGboost)。

我自己都覺得做得太草率了,也可能我當時把做模型想得太高大上了,感覺我這三板斧說不出來的low,頗有些羞愧。我現在都還記得,我當時訓練完第一版的AUC是0.82,我當時也沒覺得有什麼。其實以現在的眼光來看,這種場景下的預測AUC能上0.8,只有兩個字就是離譜。簡單看了一眼效果,感覺還可以。又拿新的資料算了一下覆蓋率,也很不錯,大部分使用者點選的類目都命中了。

更離譜的還在後面,這個模型做完之後我就拋在腦後了,但沒想到的是從那之後就一直有各路大佬釘釘找我請教我這個模型是怎麼做的,他們對比了一下自己的資料都覺得非常準,想要學習學習。更誇張的是,後來據說要做一個廣告預測模型,專門找了阿里媽媽廣告演算法的同學來做,搞了半天還不如這個模型的效果好。我當時聽說這事的時候,真的震驚得下巴都要掉下來了。

現在回想起來當初,雖然仍然有些不可思議,但冷靜下來想想,也是有一些原因的。當時拍腦袋定的幾個值和做法都定對了,比如正負樣本比當時定的1:3,再比如當時正負樣本的選擇,以及一些分佈不太均勻的特徵做離散化處理等等,其實都是對的。只是當時基本上憑的感覺和推測,不像現在這麼底氣足。

總體來說實踐派喜歡自己想方法,自己設計方案來解決問題,而不是一味參考paper。比如模型效果不太好,第一想法肯定不是換一個模型或者是參考一下paper,想的一定是這個場景下還有哪些有用的特徵,或者是模型的哪些引數是不是要調整一下。有點像是華山派當中的氣宗,以氣馭劍,實踐決定理論,效果好比那些花拳繡腿管用。

我的思考

我之前是站實踐派的,因為技術是為了業務服務的,在大小公司都是如此。也就是說有實際的效果和產出,比花裡胡哨的先進技術有用得多。當然這當中有一部分原因是因為我是本科生,沒有經過正統的學術氛圍的洗禮和鍛鍊。

後來隨著我讀過的paper越來越多,加上視野越來越開闊,我對這個問題有了新的想法。paper當中先進的巧妙的做法很多,如果棄之不顧,只是閉門造車也一樣是不行的。其實這不是一個二選一的問題,一個優秀的演算法工程師不應該只能解決問題,對於當今業界的發展情況以及前景都應該心中有數。既能解決實際問題,也可以展望行業發展,這個才能稱得上是專業。所以現在對這個問題,我感覺應該三七分成,三分學院派,七分實幹家。

寫這篇文章呢不是為了分個誰高誰低,只是給大家提供一個新的視野,審視一下自身對照一下他人,如果能夠開闊一點視野,找到一點共鳴,突破一點桎梏就更好了。

今天的文章就到這裡,衷心祝願大家每天都有所收穫。如果還喜歡今天的內容的話,請來一個三連支援吧~(點贊、關注、轉發

相關文章