寫在校招季,談談機器學習崗的Offer選擇問題

夕小瑤發表於2020-08-12

現在校招開始的越來越早,今年的實習生招聘還是異常火爆,簡歷一堆,而且是越來越沒有區分度,以前面個xgboost的論文細節,就能區分很多人,現在大部分人都能講的不錯,哎,面試越來越難。

也在蘑菇街帶了幾年團隊,有些同學成長的很快,去了更好的平臺,有些同學本來被寄予厚望,卻表現平平,暗歎可惜。大家來來去去,鐵打的營盤流水的兵,不知不覺成了組裡待時間最長的,頗有感慨,今天就和大家嘮叨幾句offer選擇和職業發展,個人觀點,純當消遣。

從面試的情況來看,學生質量兩級分化一年比一年嚴重。估計到時候offer又是旱的旱死,澇的澇死。回想自己剛畢業的情況,如果來面現在的蘑菇街,大機率是過不了的。除了公司在發展,用人的選擇餘地大了,更多的是那時候機器學習還不像現在這麼火,從業者不多。大家只能看NG在史丹佛錄製的課程,還沒有cousera,你在簡歷上寫個拿到cousera ng的machine learning課程,各大公司可能還會面面你,但現在就呵呵了。

對於很多同學來講,這個時候有個終極的問題要討論了,到底是去大公司還是小公司?

先說應屆生offer選擇。針對網際網路公司,針對推薦、搜尋、廣告場景,我個人的建議是:

大公司核心業務團隊 > 中小公司核心業務團隊 > 大公司邊緣業務團隊 > 小公司

根據公司、部門選擇的不同,會有不同的成長路徑,崗位推薦程度由高到低分別是:

  1. 經歷核心團隊業務規模從小到大的過程,比如跟著頭條、抖音成長起來的一些同學,現在的發展都不會差。但這個看命,大部分小公司會掛掉,好不容易成長到中小公司,還會遇到瓶頸,遲遲突破不了,真正到大公司的,鳳毛麟角。而且還要這麼多年待得住。
  2. 參與大公司主要業務瓶頸突破的過程,有點繞,而且好像離應屆生比較遠,理想情況這種任務都是老員工搞,但很多時候由於種種原因(大多是風險偏好),可能是一個經驗豐富的老員工帶著一批應屆生搞,若輪到你,大賺。
  3. 經歷團隊、業務規模從小到中的過程,也能得到不少的鍛鍊。
  4. 一直在大公司做邊緣業務,這個對自己的悟性和驅動力要求太高,大部分人的成長都會明顯慢下來。
  5. 在沒有資料和掙錢業務的小公司,自求多福

以上排序的核心邏輯是資料規模大小和是否有線上實驗反饋(A/B test)。規模帶來技術深度和業務背書,反饋是建立方法論的基石,沒有它就很難順利成長為合格的演算法工程師。

為什麼如此強調線上A/B test?

首先,很多同學從學校出來,並沒有真正做過一個實際的業務提升,是非常需要從線上A/B test拿到結果,建立信心,確認機器學習真的很有用。有些同學在大公司,幹了幾年,一個線上收益都沒有拿到,對信心的打擊是很大,直接轉崗了。

其次,大家都不是神,機器學習還是有非常大的不確定性,因此A/B test的準確度、有效性,以及同時能做多少實驗是非常重要的。 假設一個公司一次能做100種實驗,一個只能做10種,在idea的實驗效率上,就存在著巨大的差距。而這裡的關鍵,就是資料規模有沒有到一定的量級,到了你的A/B test就能做的更多,且更準確,更快拿到反饋,從而修正自己的認知和方法論。

明確了標準之後,面臨選擇時就更好把握。接下來說下各個選擇可能存在的問題。

大公司

老生常談,分工太細了,該做的事情,大部分都做掉了,很多時候找你進來是搞維護工作的。有些同學不服氣,面試也有遇到工作一兩年,說自己給公司提升了多少多少,詳細聊下來做的事情又很普通。那麼事實就很明顯了,要麼他們原來不重視這塊,做的水(現在越來越少了),要麼你在吹水。

重要的是:大部分人的悟性不足以透過現有的系統,理解在其曾經的發展邏輯及面對問題的方案選擇。 而後者,才是將來你面對新業務時候的底氣,人不可能在同一個業務上做一輩子。

為什麼還要去呢,有兩個方面的原因。第一個是上面已經提到過的,萬一趕上被拉壯丁去解決核心問題,雖然業績風險大,但好歹有了戰點,有困難,有成長。第二是,這個東西就像當年大家去美國留學,先看看先進的東西是怎麼樣的。比如在頭條,在鳳巢,你們會看到離散化模型的特徵規模到了千億,讀書的時候怎麼可能想到他們會這麼搞。會看到原來要用ps訓練模型,需要用類似淘寶iGraph的系統來處理使用者側的實時特徵。A/B test是怎麼做的。待上一陣子,如果沒有戰點,找家中小規模的公司,去那裡把技術和業務結合實際,形成自己的認知和方法論,也是極好的路線。

中小公司的核心團隊

在中小公司的核心團隊,對比大公司,會更“累”一些,需要做的事情會更多,這裡的更多指的是資料質量和系統工程上。大公司的核心業務,一般會有一個規模不小的ETL組為你清洗資料,還會有不同團隊搞出來的機器學習訓練平臺求著你用。而在中小公司,想用個PS,去看看開源吧,還好騰訊的angel還不錯。想搞個tensorflow的分散式,對方一臉懷疑,先拿效果出來看看?

因此,要靠刷這張老臉,工程的同學都是不見兔子不撒鷹的主。畫風很容易就變成了,我們需要個線上預估服務,演算法同學先搞個初級版本出來吧,線上拿到收益了,工程的人進來最佳化重構;我們需要搞使用者實時特徵,先搞個原始版本證明有收益,工程再進來重構。還好每次結果還不錯,最近開始搞大規模LR模型,大家支援力度比以前好多了,不再要先看結果了,畢竟這次也沒有辦法先看結果了,不是單打獨鬥能搞的了。所幸,上線後收益很明顯。

調侃歸調侃,在資源有限的情況下,這樣的方式非常合理,大公司才能養的起超前的團隊,而我們要精打細算。但對個人的成長也是非常有好處,首先是魔武雙修了,演算法和工程都不錯,*其次是逼著你想清楚到底要幹嘛,對演算法和業務的理解更為深刻,因為每一次決策失敗,都是消耗大家對你的信任,如果次數多了,估計就混不下去了。

最後,大部分來中小公司的,都是去不了一線大公司核心組的,這個是現實。但不要妄自菲薄,人生是長跑,不必爭一時瑜亮。

大公司非核心業務團隊

這個就要擔心了,首先,很多大公司應屆生招聘時候,同學們不知道自己面的是什麼部門,所以一定要問清楚。現實中很多非核心團隊,本身沒有什麼積累,因為留不住好的人,一直被核心團隊壓制,資源分配的很少,還不如中小公司。這個時候去,一定要想清楚,自己是不是看好這一塊。當然,凡是不能絕對,也有非核心業務發展的很快,成長為核心業務的,這個看自己的眼光和運氣了。

小公司

舉個常見例子,假設要做推薦,首先要有資料,這點已經可能幹掉很多小公司了,沒有資料玩個毛線。其次,大家做模型一定是需要做A/B test的,那麼最好場景的DAU是大於百萬(又幹掉了很多小公司),一個是資料質量會高很多,A/B的時候波動小,另一個是不容易動不動搞個模型提升x倍(我們在小場景上會遇到),從而飄飄然,不知道自己幾斤幾兩。最後,場景的物料規模要大,才有推薦的空間,後續模型才有持續最佳化的可能。舉個不恰當的例子,在一個賣xx的電商平臺,如果只有幾十款商品,使用者幾下就能瀏覽完,還做什麼推薦。


再來聊個題外話,老闆較不較真

除了公司、部門之外,和個人成長最相關的因素之一就是上級了。這裡給大家提供一個指標:老闆的較真程度。

怎麼評判呢?看在專案裡,Ta是隻看收益還是要求將收益講清楚,只看高大上的模型還是要求真正解決問題。不盲從,較真的思考為什麼會有提升,為什麼會沒有提升,去分析,去總結,對一個員工以至於團隊都非常重要。

舉個例子,在業界,ctr預估一直有兩種思路,大規模特徵 + 簡單模型對比小規模特徵+複雜模型。但真正對比過這兩種方案的,少之又少。當年百度有個哥們去淘寶,想把百度大規模離散特徵這一套應用在電商場景,最後是鎩羽而歸。但深入去了解當時的一些背景,發現嘗試的時間很短,結果就很可疑了,這就是不夠較真。

由於長期受淘寶的影響,我街的基線模型和淘寶的思路非常接近,但到瓶頸了。而且我們和另外一家巨頭的模型線上pk過,效果要好於他們。為了突破瓶頸,在分析了各種模型的優缺點,選擇做大規模離散模型,前前後後花了好幾個月,將資料鏈路上的各個環節重搞了一遍,嘗試了很多離散化特徵,線上預估系統改造了好幾版,最後上線效果明顯。主要原因是該模型帶來了更多的特徵工程空間。這就是較真帶來的收益。

除了以上因素之外,offer的選擇還受到種種顧慮的影響,比如想要戶口、想離男/女朋友近、不想996等,最後還是要自己分配權重去做決策。祝大家的秋招都碩果累累,收穫心儀的offer。

相關文章