算法工程師也會遇到35歲這道坎麼?

2021-02-13 DataFunTalk


文章作者:辛俊波 騰訊 高級研究員

編輯整理:Hoh

內容來源:作者授權

出品平臺:DataFunTalk

註:歡迎轉載,轉載請留言。

導讀:這個問題其實對於大多數程式設計師都是適用的,國內的網際網路公司,始終奮鬥在一線寫代碼、跑算法模型的工程師實在是太少了。每年的高校畢業生,持續不斷地在為這個行業輸入更年輕更新鮮的血液,對比25歲剛入職更會加班更能吃苦,關鍵是薪資更便宜的年輕人,35歲的算法工程師如果只是工齡更長資歷更老,將全方位處於劣勢。

想要跨過這道坎,要做的就是努力提升自己的相對不可替代性,從初級漸漸往高級的方向走,個人覺得大體可以分3個階段:

初級算法工程師

算法入行的必經之路,所謂的 SQL Boy、調參俠、數據搬運工、煉丹師,都發生在這個階段。

這個階段的算法工程師,很多時候都是在和數據打交道。數據漏報、數據重複上報、埋點有誤、多方數據統計口徑無法對齊、反作弊口徑定義和對齊、異常數據檢測和排查、數據缺失處理、樣本清洗、特徵統計加工、線上指標下降問題排查、bad case 歸因分析、數據標註...聽起來是不是一點都不 fancy?對於一個負責業務落地的一線算法工程師來說,這些數據工作可能佔了日常工作的很大一部分時間。

可就是這些一開始被你看不起的各種所謂 dirty job,這些你在實驗室和學校接觸不到的工業數據實踐,這些在 paper、書本和網絡永遠不會教你的工作,正是你所累積的技術經驗和寶貴的財富,它是驅動你往下一層級改造的主動力。作為一個算法工程師,如果從沒有在底層有過基礎的開發和數據分析的從業經驗,將來站在更高層的時候很難作出對團隊方向有利的決策。數據決定了模型的上界,特徵和算法只是在逼近這個上界。

不了解你的業務數據特點,很難成為一個好的算法工程師。在業務實踐中培養鍛鍊數據 sense,是一個初級算法工程師的必修課之一。

這個階段的算法工程師,一般面臨的業務問題也比較明確,比如提升召回效果、提升線上 ctr / cvr / gmv / 時長、提升搜索相關性、降低 bad case 率等等。這些明確的業務問題背後,在業界包括團隊內一般都有比較明確的技術方向,相對應的就是一些比較明確的算法問題,比如信息流的 ctr 預估、用戶興趣建模、廣告出價預估、相關性模型、物品召回、圖文標籤生成等。

這些不同的算法方向根據團隊形態不同,往往會分的更加明細,比如召回方向的可能會有專門的團隊,落到每個人頭上就是負責其中一種召回策略:用戶標籤召回、行為序列召回、主題召回、雙塔模型召回等。做排序模型的有專門的團隊,可能是每個場景有專門的人負責,例如首頁/頻道頁/分類頁/熱門頁/子頻道頁等;也可能是每個方向的模型是專門的人負責,比如 ctr 模型、gmv 模型、時長模型等。機制策略也可能有專門的團隊,每個人負責不同的策略方向。

具體業務和技術形態怎麼分工,不需要初級算法工程師操心,那是更高層的算法工程師需要規劃和操心的事。這個階段的算法工程師的主要目標,是要使得自己具備能夠高效執行具體任務落地的能力,這其中對動手能力的要求是最高的。

業界XX會議又又發表了一篇影響力很大的paper,實驗效果宣稱 ( chui niu ) 業界最牛;隔壁XX公司的XX團隊又又又發表 ( PR ) 了最新的算法,聲稱效果提升巨大 ( 可能是 baseline 很低 );著名程式設計師大型交友網站某 hub 又開源了最新的模型代碼,號稱在多項任務中吊打當前各種主流模型。於是老大一句話,你去調研下人家怎麼做的,回來落地實現下啊。

接下來就是發揮初級算法工程師能力的時候了。看論文、復現模型、跑實驗、調參數、魔改網絡、效果不好接著調。這個過程其實也是拉開初級算法工程師們能力的時候,有些人只是做到會用工具,調調 api,調調參數改改網絡,或者直接 git clone 下載源碼編碼後改改直接跑,至於能否有效果完全看天,真真是在"煉丹"。最終沒效果還要補充一句,論文作者們真的是在吹牛啊,這個算法在我們這裡完全沒有效果啊。然後換個模型重新煉丹來過。

有些人在這個過程中不斷累積經驗,儘可能去找這些方法的共性。以 ctr 模型為例,embedding 參數對自己業務數據效果是否敏感、網絡層數的深度對效果的影響、不同正則化方法是否 work、bn/ln/dropout 等方法是否有效、當前的特徵體系對於高階特徵交叉是否已經刻畫足夠、attention 到底收益有多大等等。這些如果能從更本質和通用共性的角度去分析總結,大概率在同樣的數據分布上可以作為以後的先驗判斷,經驗是可遷移的,不至於在每一次有新的模型出來就去盲目的做嘗試。

判斷這個階段的工程師的標準,就是對於一個明確的算法目標,是否具備足夠強的執行能力將其落地。初級的落地能力只是快速實現,更加高級和 solid 的落地能力,是能夠 know how 的落地,有無效果都能做出比較 solid 的分析,並且能夠為以後的迭代優化提供經驗。

中級算法工程師——關鍵詞:算法選型和改造能力——

經過了第一階段之後,對於明確的算法問題已經具備了足夠的經驗,這個階段,需要自己根據在這個領域內的技術累積,對已有的算法問題,進行適當的改造和優化。

以用戶畫像為例,如果是剛搭建的團隊,初期可能更多需要搭建的是整個模型框架,和上下遊團隊協作溝通,以最小的代價迅速搭建起線上可用的基礎 baseline。比如最簡單的基於統計的方法,根據用戶主動行為的物品標籤作為用戶的統計畫像標籤,如24小時的統計標籤作為短期興趣,30天的統計標籤並做時間衰減作為長期興趣。這個階段的算法工程師,如果不顧團隊的現狀,一上來就想做能夠體現技術深度的各種模型,對團隊的進展其實是負向的。確保算法能夠快速落地並取得收益才是主要目的。

而團隊發展到了一定階段,有了一定的基礎屬性畫像和統計畫像之後,可以根據團隊的人力做些深度的發展,從基礎的統計,可以做無監督的隱語義理解 ( lda, w2c 等 )、有監督的雙塔建模、加入特徵的用戶興趣建模,到用戶序列建模,甚至各種圖方法知識圖譜的手段。而具體選擇哪些方法進行嘗試需要中級算法工程師根據此前在初級階段累積的經驗做預判,例如假如還沒有用戶 embedding 的表示,將用戶的行為序列作為 sentence 嘗試在很多公司的業務都有過收益的 word2vec 可以作為 baseline;引入更多特徵的雙塔模型得到用戶的行為 embedding 大概率能進一步提升效果。而如果用戶有些社交屬性關聯,可以考慮圖方法做進一步的挖掘等等。

作為該方向的負責人,需要根據團隊發展階段,進行合理的技術選型,並做適當的改造。例如該不該用序列模型,lstm、rnn、transormer、bert 等序列模型如何選擇,位置特徵如何設計融入等等。關於細節的參數調優需要具體執行的初級算法工程師進行實驗,而大方向的技術選型以及改造方向,則需要中級算法工程師把握和指導。

技術深度絕對不是考察中級算法工程師的主要手段,判斷這個階段算法工程師的標準,主要是是否具備在某個算法方向,獨立承擔整個算法從選型、改造、應用到落地取得成果的能力。

高級算法工程師——關鍵詞:業務抽象能力——

前面兩個階段的工程師做的事情,嚴格意義上來說,都是在執行這個階段的算法工程師定下來的算法指標。這個階段的算法工程師,需要更多的是對整個業務的理解,去抽象和定義業務問題。比如當前階段,業務是否需要專門的團隊做用戶畫像,需要多少的人力做素材理解,rank 模型是否還有空間、需要投入多少人力持續優化等。如果戰略目標制定不明確,影響的將是整個團隊的努力。

對於更上層的管理層來說,算法團隊的存在意義,絕對不是說一定需要有 ctr 預估團隊,需要有用戶畫像團隊和視頻理解團隊,需要有人做 nlp、有人做特徵等等。整個算法團隊存在的意義,就是能夠最終從算法的層面,解決實際的業務問題。在某個階段需要做的是提升用戶點擊率,可能需要有 ctr 模型方向團隊和有用戶畫像方向團隊等;在某個階段引入更多的多媒體素材可能需要有團隊做視頻理解和圖像理解;某個階段需要做用戶增長和留存,可能需要有團隊做專門的數據分析影響用戶留存的因素,有團隊做留存模型有團隊做增長模型等等。

這也就決定了不同時期,對於算法團隊的目標是不同的,需要的人員配備也不同,而這些,都需要高級算法工程師去站在整個業務層面去理解和拆解,然後將目標層層傳遞到整個團隊去。判斷這個階段算法工程師的標準,主要是對於所負責的業務,能否制定合理的算法可達目標,並帶領團隊完成實現。

個人覺得,如果35歲了還處在第一階段,也就是只能執行明確的算法模型,和剛畢業的年輕人比可以說完全沒有競爭力,個人職業生涯的進一步發展會很受限。

如果已經進入第二階段,不可取代性還是很強的,畢竟這個階段的合理算法技術選型和推動落地能力,是很多剛畢業和工作不久的年輕算法工程師難以做到的。

如果已經到了第三階段至少已經是業務方向的算法負責人了,都這種 title 了,考慮的是怎麼往公司的中上層走了,根本不會擔心年齡這種坎。

35歲對於我個人而言還有幾年的時間,也只有幾年的時間。無論是算法工程師還是其他崗位,深耕該崗位目前而言可能還是最優的選擇,也可以說是沒得選的選擇。持續不斷的去提升自己在技術、技能、經驗、資源上的累積,努力去提升自己的相對不可替代性。

至於年齡,不過是個數字而已。就算是個坎,它也遠不是終點。

今天的分享就到這裡,謝謝大家。

對於35歲這個話題,你有什麼看法呢?把文章分享到朋友圈,說說你的看法吧~~

社群推薦:

歡迎加入 DataFunTalk 算法工程師交流群,跟同行零距離交流。如想進群,請加逃課兒同學的微信 ( 微信號:DataFunTalker ),回覆:算法工程師,逃課兒會自動拉你進群。

https://www.zhihu.com/people/xinjunbo

關於我們:

DataFunTalk 專注於大數據、人工智慧技術應用的分享與交流。發起於2017年,在北京、上海、深圳、杭州等城市舉辦超過100場線下沙龍、論壇及峰會,已邀請近500位專家和學者參與分享。其公眾號 DataFunTalk 累計生產原創文章400+百萬+閱讀,5萬+精準粉絲。

一個在看,一段時光👇

相關焦點

  • 推薦算法工程師的成長之道
    作者 | gongyouliu本文,作者會基於自己的實踐經驗講述推薦算法工程師的成長之道,這裡的「道」有發展路徑和道(道理、方法論、經驗、智慧)兩層意思。本文會從推薦算法是一個好的職業選擇、發展路線及職業定位、成長之道、挑戰和機遇四個維度來講解。
  • 20 萬、50 萬、100 萬年薪的算法工程師在能力素質模型上有哪些差距?
    如題,現在網際網路行業很多開發工程師(包括前端開發、後端開發等等傳統意義上的「碼農」)會遇到35歲這道坎,那麼對於算法工程師這種非常規、非傳統的碼農(側重以數學模型技能為主,而不是寫代碼),也會遇到35歲的坎麼?算法領域職位這兩年大熱,魚目混珠的筒子不少,一直很困惑於如何甄別的問題。1.
  • 45歲是公務員的一道坎,35歲是碼農的一道坎
    關於中年危機的定義因行業不同而各有闡述,如公務員,他們的中年危機是:如果到了45歲還上不去,那這輩子只能在體制內混混日子了;如金融精英,他們的中年危機是:如果40歲前不能實現財務自由,那這輩子就失去自由了。
  • 關於AI算法工程師的自我修養?
    合格的職場人這點看上去顯然,但恰恰是很多初入職場的同學最為欠缺的。從學生思維轉變成工作思維,這是很多新入職的同學邁不過去的一個坎。具體來說,合作能力,溝通能力,展示能力,這些軟性素質是在職場順利工作的根基。
  • IT工程師在35歲以後會有哪些困惑
    IT行業的技術從業者目前依然存在職業生命周期偏短的問題,原因涉及到多個方面,包括IT行業技術迭代速度快、工作量大、單位工作周期長等,所以IT行業的從業者普遍存在工作壓力比較大的問題,這就導致很多IT技術人員在年齡大了以後會選擇轉行。
  • 算法工程師的術與道:從特徵工程談數據敏感性
    數據展示:問題答案匹配預測任務黃金玩家:這個簡單,BERT跑幾個單模型融合一下,這玩意不是全靠ensemble嗎?王者玩家(Kaggle GrandMaster):數據中有非常強的規律,我可以用特徵工程來刻畫出來。想看這個題目的答案,直接翻到文章最後。下面我們引入本文的正題,工業界的算法工程師的核心競爭力到底是什麼?
  • 小米、搜狗、TW等機器學習算法工程師面試總結
    2、三色旗問題 ,這道題沒答上來,已經決定要涼涼了。https://blog.csdn.net/u011200844/article/details/432273013、後面問了一些項目。總體感覺問簡歷項目居多,其他方面問的比較少,可能我不太符合這麼一個需求吧,面試官說在搜索推薦領域,理解用戶的需求是十分重要的,因此可能自然語言處理需要有一定的基礎吧。
  • 35歲成職場生死線,35歲是找工作的坎,如何面對職場生死線?
    導讀:如何避免35歲職場「生死線」?大多數職場人士到了35歲,就會遇到所謂的職場生死線,解決這個問題的主要方法還是提前做好職業規劃,提高自己的職場競爭能力,防患於未然。很多人都注意到了,到了35歲左右,就很容易離開原單位。
  • 女性過了35歲這道坎,失眠容易來,一物泡水喝,一覺無夢到天亮
    年齡一直是女性們觸碰不得的雷區之一,當女性到了35歲以後,雖然還沒到更年期,但一些更年期症狀可能早已出現,比如心悸、月經不調、情緒多變、易怒暴躁還有失眠多夢等等。小藍來到了35歲這道坎,失眠成了現在最困擾著她的問題之一。小藍22歲畢業後就參加了工作,一直以來的努力大家都看在眼裡,所以用不到幾年,小藍就應經在工作上闖出一番成就,但是小藍也因此落下了一些小毛病。
  • 算法工程師好學麼 聽聽從達內教育走出的算法工程師怎麼說
    目前,中國Python人才缺口高達40萬,由於人才稀缺度較高,工程師的薪資普遍更高,待遇漲幅也會超過其他崗位,python工資按工作經驗統計,1-2年平均工資1.2-1.5萬元,3-5年1.5-2萬,8-10年2.5-3萬元,10年以上工資3.5-6萬元。
  • 中國開發者真實現狀:40 歲不做開發,算法工程師最稀缺!
    根據不同年齡段的職位分布表也可見一斑,仍有部分 40 歲以上的開發者繼續在技術領域深耕,還有大多數向管理崗位進行了轉型。而除此之外,許多大齡開發者們會受到來自家庭和職場的各種生存壓力,因此選擇再擇業的人也不在少數。
  • 算法工程師平均年薪50.21萬,這些專業畢業後可成為算法工程師!
    今天我們就要分享一個絕對的高薪職業:算法工程師。1.專業背景可能很多家長對算法工程師並不熟悉。首先就先介紹一下這個專業出現的背景。作為迅猛發展的科技大國,我國對人工智慧高度重視。提到人工智慧,就不得不提人工智慧領域最炙手可熱的算法工程師。算法即一系列解決問題的清晰指令,算法工程師就是利用算法處理事物的人。算法工程師主要根據業務進行細分,常見的有廣告算法工程師、推薦算法工程師、圖像算法工程師等等。這是算法工程師的基本情況。
  • 月薪50K的算法工程師是怎麼學AI經典書的?
    如果你是一名在職的算法工程師,你可能會經常遇到這樣的問題:在跑算法模型的時候,同樣的問題,別人花費1周就能達到90%的精準度,自己用一個模型跑了快1個月,才70% ?到底差距在哪?在人工智慧領域20%的理論基礎往往決定了80%的上升高度。
  • 算法工程師必須要知道的面試技能雷達圖
    那我們直入主題,到底什麼技能才是一名合格的算法工程師應該具備的技能呢?面試官又會如何驗證你的這些技能呢?雖然每個一個崗位都有JD,但拋開具體的崗位要求,從稍高的角度角度看待這個問題,一名算法工程師的技術素質基本可以拆解成下面四個方面:知識、工具、邏輯、業務。當然廣義來講,這四項素質也適用於所有IT工程師。
  • 算法與算法工程師,技術與技術人員
    (註:標題裡的算法,指機器學習算法,或者說「算法工程師」這個職位名稱裡的「算法」,不是「算法與數據結構」裡的那個算法。誰能告訴我有沒有什麼更好的名字來區別這它們,或許是「機器學習算法」與「傳統算法」?)算法與算法工程師先來一段我在知乎裡回答「做算法工程師是一種怎樣的體驗?」
  • 一份過冬存糧:算法工程師必備的面試技能雷達圖
    那我們直入主題,到底什麼技能才是一名合格的算法工程師應該具備的技能呢?面試官又會如何驗證你的這些技能呢?這就是不滿足「工具」這項技能的最小要求,自然是不能通過面試的。在最小要求的基礎上,算法工程師的能力要求是相對全面的。其實所謂算法工程師,就是因為你不僅應該是一位合格的「工程師」,還應該再次基礎上有算法的改進和實現的能力。
  • 年薪20萬、50萬、100萬的算法工程師,到底有什麼區別?
    雖說在北京,20萬已經基本不可能招到靠譜兒的算法工程師了,還是姑且用上面的數字做個參照,談談算法工程師的三個層次吧。()下文中會提到一些算法和模型,但不過是為了舉例說明概念,無需深究,有興趣鑽研的朋友可以自己查閱資料。
  • 困在內卷裡的軟體測試工程師
    老陳想這是業務測試們的意淫麼?「業務路線,測開發展空間越往後和開發方向越像,成長空間會變窄,做業務從長遠來看,可以快速轉向其他方向或領域,當業務擴大分裂時,做業務的上位機率更大一些。TesterHome 社區公眾號的受眾大多數是 26 歲到 35 歲,這個年紀正是工作的黃金年齡,26 歲的已經工作三年,打好了基礎,35 歲基本達到了工作生涯的頂峰,如果在這黃金 10 年裡沒有成長為管理者,那麼基本算是失敗的了」,TesterHome 的老徐說,這位 35 歲的老兵離開北京的汽車之家之後,去了西部淘金。
  • 對於算法工程師職業生涯規劃的思考
    本文閱讀時間約7min,共分為兩個部分:什麼叫做優秀的算法工程師?在面臨換工作/就業的時候,自己應該依據什麼做選擇?什麼叫做優秀的算法工程師先扔一個觀點。優秀的算法工程師是解決問題的人。一定的工程能力我在第一份正式工作的時候,領導和我們強調了,你首先是一個工程師,然後才是算法工程師。你每天在那裡加個特徵,調個參數,臨了連個服務也上不去,有了bug也不知道怎麼改,一個小型工程都做不出來,怎麼能叫自己是算法工程師呢?
  • 學習日語過程中遇到的4大坎!
    日語道路上能夠遇到的坎,相信大家在學習的過程中都能夠遇到,那麼你遇到的坎和日本村外教網遇到的坎是不是一樣的呢,今天小編就和大家分享一下:第一坎:五十音圖日語五十音圖是學好日語的基礎學習日語過程中遇到的4大坎!