科普:算法岗是什么?我适不适合算法岗?选什么方向的算法岗?
大家好,我是千與千尋,一名專注于后端研發與算法工程領域的程序員,最近我的作息快趕上yp哥的作息了,不過習慣就好。
昨天晚上深夜回家發了個pyq,我大致表達的意思:誰說算法崗不加班的?活沒干完的前提下,你不得瘋狂加班的,跟似的干?
然后有粉絲說:什么,算法崗也要加班嗎?不是說算法崗相對開發崗來說,可以輕松一些嗎?加班沒開發崗那么恐怖嗎?
先直接說結論:你們可能是對算法崗有什么誤解了...
千尋目前是大廠一名研發工程師,雖然是研發,但是工作內容,后端研發,算法工程應用都有所涉及,我就自身的經歷給大家介紹一下算法崗的工作內容,算法崗的種類,以及什么樣的人適合做算法崗,對于想轉行算法崗的朋友一些建議。
算法崗是什么?
算法崗是大中型企業在已經有完整的盈利閉環系統的基礎上,需要對其盈利模式進行深度的優化,使得系統可以更加具有針對性的服務用戶目的的工程人員。
算法崗什么工作內容?
之前的文章中我曾經列舉過算法崗與開發崗位的具體工作內容差別,算法崗為包含算法工程師,算法研究員。
算法研究員:算法研究員的hc相對較少,一般僅僅在特大廠的AI lab以及AI四小龍以及獨角獸的公司會有一定的需求,當然這僅僅是針對互聯網公司的情況進行描述的,如果是進入國企或者研究所,對前沿的技術研究需求還是很多的。
算法研究員主要的是進行傳統模型準確率以及性能的深度打破,在目前的SOTA之下,SSD在COCO數據集上的檢測MAP準確率目前是75.8%,那么研究員就會想盡各種tricks來提高模型的準確性,改進網絡結構,或者特征提取方式,達到打破目前的最高準確率,從而發表頂會論文。
算法工程師:算法工程師相對研究員來說,更加接近實際的業務,將算法實際的用到工程中,從而發揮算法的效果,一般來說在實際的業務生產中,我們所使用的算法模型也都是穩定的模型,進行遷移學習,從而可以達到速度與準確率的完美結合。算法工程師相對研究員崗位來說,并不需要實際的模型突破,很對時候達到80%-90%基本就可以使用了,與研發進行配合聯調,將算法模型的調用接口化,用于工程需求中。
算法崗位的方向
算法崗位的方向還是很多的,最大的范圍之下,可以劃分為計算視覺,自然語言處理,搜索廣告推薦算法,語音算法,方向太多,很難做到所有的都面面俱到。我對我所研究兩個方向,進行一下我的心得的分享,推薦派單算法,以及計算視覺算法(CV)
計算機視覺:
其實在之前作為的計算機視覺的算法工程師,我在計算機視覺方面還是有自己的一些見解,具體可以說明為計算機視覺的算法工程師,我自己的一個感覺,為了防止杠精,我說明僅僅代表我自己的觀點,我個人其實不太看好CV方向,原因如下:
1.看似方向廣,就業崗位多,事實上市場比較飽和,toC的大模型相對來說有些已經投入使用,然而對于toB的業務,AI四小龍獨角獸公司,相對來說,已經做得十分完善,市場沒那么龐大。
2.技術相對來說比較完善,同時技術的重要性并不是很舉足輕重,對于互聯網的核心盈利方式——平臺+廣告的模式之下,圖像的地位其實并不是很重要,“說白了,不是能增加資本家資產的東西”
3.圖像識別,目標檢測,商湯和曠視做的很強,一般應用于工業界,生成對抗,圖像分割等相對來說用于互聯網的短視頻中,抖音快手中的魔法表情使用就是用GAN完成的
計算機視覺是算法崗中人很多的方向,因為很多本科生的專業是自動化,機械電子,通信工程的同學都會多多少少接觸到數字圖像,所以在研究生期間也會繼續研究圖像,也就作為CV算法崗。
推薦系統算法:
說到算法崗的大頭,也就是最為出名的"搜廣推",先說一個結論:如果現在想轉行做算法崗,或者是高年級的本科生以及碩士生還沒用找到算法崗的方向,那我建議你轉推薦算法。
剛剛我們說了互聯網公司的兩大盈利方式:
1.建立中間平臺,收取中介費,例如滴滴出行,以及美團點評等。通過建立電商的平臺,進行商家與用戶之間的匹配,促進消費。
2.掌握一定的流量,進行精準的廣告投放。
以推薦算法的結構來給大家進行一下詳細講解:
在以上我繪制了一個很簡單的電商推薦系統的架構圖,其中包括每一種流程層的算法邏輯流向。
召回層:召回預計算目標,從海量數據中多路召回預排序目標,簡單來說,選擇進入推薦模型的種子號選手,例如購買牙膏需求,牙膏的品牌以及商店有上千萬家,肯定不能所有的進行遍歷,因此會通過人群畫像獲取數據的預計算目標,模型計算量有百萬降低到百級。
過濾層:召回層進行召回的預計算目標一定會比最終推薦的目標數量要高,原因需要進行"過濾",比如存在重復推薦,或者無效推薦(商家關門,或者斷貨)
精排層:經過過濾層的過濾,進入推薦算法模型,進行推薦得分計算,以傳統的機器學習算法為例,在實際的業務系統中會存在多種復雜業務情形,簡單的機器學習模型根本無法滿足復雜的業務需求,常用的機器學習的模型是集成模型例如xgboot模型,通過采取多種關鍵特征進行決策回歸
以上就是精排層的推薦系統的算法整體框架圖,將數據集放入模型進行模型訓練,算法工程的主要職責就是上下的兩個方框:改進模型結構與優化特征工程。
改進網絡模型結構: 以xgboost為例,其內部包括多個決策樹,決策樹的數量,以及學習率的大小都可以改進特征的學習率,從而在同等數量的特征之下可以達到更高的效果
優化特征工程:相比于改進網絡結構,特征工程則是通過增加特征的種類,特征的數量,比如從原來年齡+性別來推薦商品,到最后使用年齡+性別+愛好數碼進行商品的推薦,顯然在增加了愛好的特征后可以進行更加精準的推薦,以此類推,優化模型的性能。
混排層:相比于精排層,混排層的不是單單注重準確率,而是有意去放出"負樣本",也就是用精準推薦去帶動其他的推薦,比如推薦買大米的商品,順帶推薦豆油,從而獲得更多的收益。
強規則:根據運行嗎,比如有一些需要進行強制的置頂,是進行人機交互的主要窗口。
算法崗的性能提高驗證測試
1.對于算法的模型測試來說,線下使用可以使用測試數據集進行測試,測試改進模型的準確率。
2.但是實際的工業生產環境中更多所使用是線上AB測試,其具體的架構圖:
線上AB測試,其原理是將算法模型的不同改進版本,進行的對照,畢竟這實踐才是檢驗真理的唯一標準,只有線下模型準確率再好,一到線上就崩也是涼涼啊,因此需要模擬100%的線上業務情形,所以進行”控制變量法"進行算法模型的性能對比。
采用流量分流閥,將全部的流量進行等分為4份,基礎桶為最基本模型,等于模型的basekline,其他的幾個版本的對照桶中放入改進的模型,在同樣的流量之下,對比模型的優劣。具體的對比指標有些復雜,總之采用控制變量法進行模型的對照。
算法崗適合什么樣的人?選擇什么樣的算法崗比較好?
算法崗位相對于來說,競爭力比較強,因為算法崗的薪資是互聯網食物鏈的頂端,對標金融領域的券商投資銀行崗位,所以算法崗的競爭壓力會大一些,不過薪資與競爭壓力是成正比的,也是值得的。
算法崗適合喜歡做研究實驗的高年級本科生或者碩士研究生,算法崗需要不短的追最新的論文,努力將學術界或者工業界的最新成功轉化為實際的業務系統中去。
算法崗的性能提高驗證測試
對于技術有執著熱愛的比較適合算法崗,其實程序員這個領域都差不多,都是需要終生學習的打工人。
針對以上我提到的兩種算法崗位,可以說目前計算機視覺算法崗的需求迭代更類似開發崗位,而推薦系統的”搜索廣告推薦“可能更加有研究的價值。
最后無論算法崗也好,研發崗也很好,好好做哪行都行的,程序員領域各司其職,不存在鄙視鏈,一起沖!
我是千與千尋,我們下期見!
???
END
往期精彩回顧適合初學者入門人工智能的路線及資料下載(圖文+視頻)機器學習入門系列下載中國大學慕課《機器學習》(黃海廣主講)機器學習及深度學習筆記等資料打印《統計學習方法》的代碼復現專輯 AI基礎下載機器學習交流qq群955171419,加入微信群請掃碼:總結
以上是生活随笔為你收集整理的科普:算法岗是什么?我适不适合算法岗?选什么方向的算法岗?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JS闭包的简单理解。优缺点以及垃圾回收机
- 下一篇: vue图片加载失败使用默认图片,el-i