演算法工程師成長的3個重要認知轉變

移動網際網路浪潮,讓很多網際網路公司的工程師都享受了發展的紅利,特別是演算法工程師。我自己2012年5月畢業,今年工作整整10年,算是也享受了一波紅利,大廠核心業務演算法組,大廠類似研究的演算法組,大廠新業務演算法組,創業公司都呆過,成就不大,但是見識了很多。

工作10年,總結其實演算法工程師成長,基本上會經歷3個階段

第一階段:模型 > 資料 > 業務

第二階段:資料 > 模型 > 業務

第三階段:業務 > 資料 > 模型

其實是感覺演算法在變得越來越不重要的過程,其實這也是演算法工程師,走向成熟,思維變得多元,能以更大和多元的視角去看商業目標。

畢竟公司是要以股東的利益為最高目的, 演算法 < 研發 < 產品 < 業務 < 公司戰略 < 宏觀環境。最近大家對宏觀環境巨大影響力應該有感受。

下面就演算法工程師工作中主要打交道的模型,資料,業務,談談自己看法。

模型

a。對fancy模型(paper中模型)有執念,認為fancy模型是高科技。透過以剛畢業沒多久的工程師為主,學術範還比較重。其實,如果不是進入大廠莫些大流量入口的團隊,大機率都見不到這些fancy模型。即使見到了這些fancy模型,會發現和paper講的或多或少有PR成分,這個可以理解。我鼓勵多看paper,重點看邏輯,看問題,看問題本質,解決辦法,這個的對訓練自己問題意識,開拓問題解法的思路,非常有益。

b。對好模型有自己的理解,以下是我自己的理解

1)。 好的模型,是一個ROI相對最優的模型。

價值

,運維,人員各個維度綜合考慮

2)。 好的模型,有時也需要更好的可解釋性。

模型不只是要精度,召回,也要在出現badcase時候給老闆解釋why

3)。 好的模型,其實很簡單

大道至簡,大廠大場景的模型其實也能用幾個簡單原理去刻畫,就看你對場景和原理理解的深刻程度

c。 對經典模型背後的思想本質理解有深度

機器學習其實從大科學原理(數學理論)上,基本沒有什麼重大突破。但是隨著硬體的改變,還是有一些經典模型的出現,比如ltr,bert等等,反覆讀經典的survey,可以從更長的時間尺度,更深刻的原理理解模型。其實牛逼的模型迴歸本質都很簡單。

最近看的一篇,文章

“Paradigm Shift in Natural Language Processing”(

https://arxiv。org/pdf/2109。12575。pdf

),其中談到了NLP領域的正規化轉變,沒有一個數學公式,就對我有不少啟發。

真的去創造經典模型,類似去創造svm,bert之類,我自己不是這類人,截止現在,在身邊也沒有看到類似的人。認知也沒有達到這樣的高度,所以沒法發表觀點。

2。資料

a。打比賽,資料不用自己操心,輸入和輸出都是基本穩定的。完全沒有鄙視打比賽的意思,我積極的鼓勵,校招生和剛畢業沒多久的工程師去打比賽,很多優秀的工程師都是打比賽出身,一方面,可以增加實戰的經驗,不少比賽是清洗過的真實資料 。另一方面,也可以擴充套件自己的眼界,看看大家如何做個機器學習任務。但是從體會拿到一份理想資料有多不容易,打比賽大機率體會不到痛感。

b。拿到一個場景的真實資料,發現搞模型還不如搞資料,對效果提升的快。其實,做演算法大機率的都經過,如果能夠去除資料噪音,增大資料量,關聯一些外部知識,或人工寫一些規則,通常效果都好於模型上多加幾層連結或pretrain多大的模型,而且ROI更低,更加立竿見影。

c。從埋點到效果評估,被整條鏈路毒打過,體會到有一份可用的資料,都不是理想的資料,有多難,各種溝通,各種排期,各種統一規範,各種異常探查。其實這才是真實大多數公司的情況,搞資料耗費了90%,甚至99%的工作時間,訓練模型只佔工作的10%都不到。

3。業務

a。有ROI意識,畢竟商業是要最求利潤,利潤 = 收益-成本。隨著移動網際網路的大潮退去,流量越來越貴,大流量入口被幾個大廠把持。某個複雜模型帶來該場景下1%的CXR提升的收益,減去上研發成本,線上機器成本,絕大多數的場景ROI是負的。當然一些大廠出於PR的需要,那就是另當別論了。

b。能跳出演算法工程師的視角,以工程師的視角去達成目標。工業界比學術界不一樣的地方就是資料是場景中來,模型輸出要到場景中去,場景不停在變。研發不止是演算法,還有工程,測試,資料。其實資料上保證資料質量高,工程上保證模型更新效率高,測試保證模型輸出的穩定性,遠比一個fancy的模型對業務的貢獻大。

c。能跳出工程師的視角,從多元視角理解業務目標,演算法只是達到目標的一種途徑,地推,運營,營銷,產品大機率是比演算法更好的一種途徑。某個電商平臺每年發N篇頂會,也沒有阻擋某個電商的崛起。搞了半天模型提升GTV漲1%,運營搞個活動,直接GTV漲50%。這些才是公司的真實情況,演算法只是商業的一個環境,可以這樣說甚至都不是一個重要環境。

我鼓勵演算法工程師多學產品,運營,商分思維,因為這些綜合才是商業,才是演算法工程師在公司落地演算法模型的真實場景。這裡我就不發散了,可以在另外一篇專門講這個話題。

最後一句話,要想在工業界不斷成長成為Top的演算法工程師,其實是逐步“

汝果欲學詩,功夫在詩外”

的過程。

演算法工程師成長的3個重要認知轉變

演算法工程師的三個境界。note

1+3|演算法工程師的一個思維和三種能力。note

什麼樣的模型是好的模型?。note

四化大業:論演算法工程師的自我修養。note