除了人工智能和大數據,算法多是被程序員們談論最多的技能。python
2019年校招,儘管不少一線大廠都縮減了編制,但算法工程師們再次一騎絕塵,阿里、騰訊、字節跳動等企業動不動就年薪百萬,剛畢業就送股票,讓一衆開發崗們內心都十分不平衡。程序員
近年來隨着人工智能與大數據的發展和普及,特別是今日頭條、抖音的崛起,讓人們清醒得認識到推薦算法或者說算法的力量。這一新穎的職業,當前市場存在巨大的人才缺口,不斷涌入的算法工程師知足不了HR小姐姐們日益增加的人才需求。一名基礎紮實的、業務經驗豐富的算法工程師是多少企業求之不得的。面試
今天,菜鳥窩邀請到在機器學習工程師VIP就業班級負責〖深度學習〗以及〖算法工程〗、大數據vip班負責〖spark mllib〗以及〖推薦系統實戰〗的Chris老師。Chris老師擁有豐富的一線大廠算法經驗,熟悉智能算法、數據智能、機器學習/深度學習算法落地,對數據系統架構、業務場景建模等擁有豐富的經驗,業務領域涵蓋天然語言處理(NLP)、計算機視覺(CV)、知識圖譜(知識推理)、序列建模等。算法
Chris老師目前任職於阿里,他是模式識別出身的科班碩士,公司裏負責培訓新員工的「老人」,但即便如此,他也會安排日均2小時來學習,在人工智能、數據科學領域技術突飛猛進的今天,Chris老師屬於走在新技術前沿的那批人,追頂會(頂級學術會議)多是他最熱愛的一項運動。網絡
Chris老師將算法工程師分爲兩類:第一類是能實際解決業務場景中問題的算法工程師,第二類是能依據當前企業的發展戰略,創新性的開展算法工做。在這兩類中,他偏心第一種——運用算法的力量,將數據創造出價值的工做。而相對於工程的嚴謹,Chris老師老是在追逐更加有趣。數據結構
Chris老師:您好,你們好。我是chris,求學期間主要研究方向是模式識別。職業生涯開始於某上市遊戲發行企業,從數據挖掘算法在業務線落地開始,涉及機器學習、深度學習,後來逐步負責整個算法團隊建設。在團隊發展過程當中,也同步負責一些數據架構方面工做。架構
後來加入BAT,也是負責算法方面工做,涉及到的領域涵蓋CV、NLP、網絡發現等。帶過的項目不少,基本能覆蓋廣告、運營、客服、風控各個方面。機器學習
Chris老師:最開始也是行業內朋友的推薦,後來獵頭聯繫了屢次後,根據自身的規劃,選擇進入BAT去接觸更多的東西。分佈式
對於自身而言的話,主要是專業基礎和對前沿的堅持關注吧。作好項目的前提下,不斷鞏固知識基礎,保持對前沿發展的敏感性(其實就是得堅持追頂會)。持續學習的過程挺枯燥,在工做之餘,天天會用兩小時左右的時間去讀論文,而後每個月最少會挑一項基礎知識進行專攻和鞏固。很難很累,可是收穫到知識的心情很愉快。工具
Chris老師:加入菜鳥窩主要是考慮到兩個方面,第一個方面是工做多年發現確實當前行業還存在很大需求,和小夥伴們一塊兒攻克項目的時候但願團隊能更加具備數據科學思惟,因此想把自身總結的一些數據科學方法論表達出來。
第二個方面是但願能經過和你們的交流互動,爲你們提供一些數據科學領域的工做經驗。由於以前在企業也是會做爲講師負責對新入職的小夥伴進行長達兩個月的算法基礎、工做技能的培訓。因此在構建知識體系、快速融入工做方面比較有經驗。在這裏但願與你們共同成長,達到共贏。
Chris老師:主要是興趣,大概是小學一年級就開始接觸計算機,不出意外的也是走CS求學路線。興趣確實是最好的老師,求學期間雖然專業課特別多且比較晦澀,可是興趣支撐着本身去探索、去學習,國家級的獎學金、國家級的比賽也能順其天然的拿到。獲得豐富收穫後,更大的激發了興趣,成爲源源不斷的動力。
在選擇碩士方向時,結合當時的各方信息,我的認爲數據科學會在將來的30~50年蓬勃發展。因此選擇當時沒多少人選的模式識別,從今天回頭來看,當時的見解還算基本正確。因此,眼界和選擇有時候真的很是重要。
Chris老師:嚴格來講,當前對於數據科學領域確實沒有一個權威的定義和劃分方法。我們大數據開發工程師能「玩」轉算法,那固然是再好不過的一件事情了。
我的對於算法的理解,由於工做經歷過不一樣角色,因此能夠從兩種不一樣身份來談。
站在數據開發工程師的角度來講:算法是數據工程中的一個部分,數據工程最終的目的是確保項目產出的數據結果是可用的、可信的。用關聯分析來舉例,假設咱們構建了某個超市的數據體系,須要產出每個月的各個商品銷量數據。那麼咱們從數據採集、數據傳輸、數據處理、數據加工等等一系列的工程手段,都是爲了保證最終產出的數據是可信的。若是說咱們加一個關聯分析算法模塊,不只每個月產出銷量數據,還附帶給出商品之間同時被銷售的關係,那麼咱們就說提供了一份可用的數據,由於超市老闆下個月就能調整商品的擺放,提升本身的收入。至於說關聯分析的原理,選用哪一種關聯分析算法?咱們做爲數據開發工程師,會依據當前業務場景的數據量級、數據質量、工程預算來考慮。
站在算法研究工程師的角度來講:算法是提升效率和解決問題的思惟方式最終產出的結果。最先人們結繩記事,由於沒那麼大數據量須要計算,隨着現代社會信息化發展,信息過載的狀況已經出現了好久。而出於生理的限制,咱們能接受到的信息量是有限的,這時就須要算法來幫助咱們作信息篩選了。舉例來講,一個班只有10我的,成績要從高到低排名,那我們自個兒搗鼓一下也就算了,可是放在全國14億人要排名,這就得有更加高效的排序「算法」來提供幫助了。一樣的,咱們要把一碗紅豆和綠豆分開,大不了我們挑一個小時,那若是是100噸混在一塊兒的紅豆綠豆呢?這時,CV(計算機視覺)和相關的視覺算法就會應運而生。
總而言之,算法不是「玄學」,更加不是靠術語名詞堆砌起來的壁壘,它無處不在,只須要咱們沉下心來探索與發現。
Chris老師:人工智能領域的算法種類繁多,工做中主要涉及到的是數據挖掘、NLP(天然語言處理)、CV(計算機視覺)、網絡發現方面的算法。從數據量級上來看,基本上工做中涉及到的算法由於業務場景的緣由,都基於分佈式存儲和分佈式計算這兩大技術領域。
從我的而言,大數據技術例如hadoop、spark等,都是數據科學中的一系列思惟方法,它們的出現都是爲了解決當時經過現有技術沒法處理的數據難題。用詞頻統計來舉例,一萬篇文檔咱們會調整單節點的程序採用更高效的內存管理算法來解決。那100億篇文檔,單節點已經沒法在可接受的時間成本下知足要求了,理所固然咱們會採用分佈式存儲和計算技術。隨之而來的,就是底層數據結構的構建方式不一樣、計算工做流不一樣等一系列的差別化問題。對於算法來講,單節點的計算實現方法,和分佈式計算的實現方法確定也會隨之出現區別,可是,算法的理念不會太大改變,它的原理不會太大改變。
結合算法和大數據工程技術來講,實際工做中大數據開發工程師最好能懂算法應用場景,算法工程師最好能懂大數據存儲和計算的技術常識。這樣的團隊會具備更大的戰鬥力。
Chris老師:在大數據vip課程系列課程中,我主要負責spark mllib和推薦系統實戰兩個方面。但願能給你們帶來以下收穫。對於spark mllib,核心的目標是讓你們瞭解基本的算法應用場景,掌握如何與算法工程師一塊兒開展數據工做。具體來講是:
①掌握mllib中各個模塊的做用和應用場景:以實際例子的方式,講解算法工做中數據處理、特徵工程、模型訓練、評估、更新等過程所使用的模塊。
②瞭解mllib中所提供的算法的基本概念和應用場景:從分類和聚類兩方面介紹算法應用場景和基本原理,須要你們能理解和結合實際生產場景運用算法解決業務問題。
③掌握spark mllib工做流:工程實際的開發工做流程,如何與算法工程師進行協做,如何架構數據流。
對於推薦系統實戰,核心目標是經過實際業務場景中的項目,使得你們掌握用推薦系統的基本原理和選型方法。具體來講是:
①瞭解推薦系統的概念:從需求方(領導和一線)、技術方(架構和開發)角度出發,詳解推薦系統的意義和各方需求。
②掌握推薦系統在業務中的不一樣使用場景:在運營、客服、廣告等不一樣業務線的角度,推薦系統的做用和設計結構的異同點。
③掌握推薦系統在不一樣場景下的技術組件選型方法:根據不一樣的數據源、數據量、業務場景,將會在推薦系統的各個模塊中選用不一樣的技術組件
④實際開發一個業務場景中的推薦系統:預設一個完整的業務場景,使用脫敏數據徹底開發一套最小可行的推薦系統。
⑤理解實際工做中的問題:經過講解和你們主動思考,理解實際工做中用推薦統會面臨的問題,同時瞭解面試常見問題。
總體而言,會和系列中其餘分佈式存儲與計算技術的工程性有所區別,會稍微偏向概念和應用場景解析。核心就是爲了讓你們更具備競爭力,當業務出現問題場景,不只是個項目,同時也是我的展示自身價值的機會。機會出現之時,我們能多一種武器(算法),就對抓住機會多一分把握。
Chris老師:若是是對於算法感興趣,而後又怕本身是半路出家跟不上節奏。我推薦的學習方法是先讀最前沿的頂會論文,看某個領域最新的成果,一開始讀不懂是正常的,把每一個讀不懂的知識點去查清楚,去掌握所需的數學工具。反覆這個過程,直到本身能讀懂,最少是能理解最新論文是在討論什麼的程度。那麼我們就算在這一個細分領域裏入門了。
對於工具,首先確定是信息的來源,推薦你們從頂會論文和arxiv.org獲取最新的成果信息。基礎數學知識和專業知識能夠來自各大學校的公開課。
可是對於實際工做中的問題,最好是能有「導師」這樣的角色來全程幫助。由於基礎的知識大部分咱們能自學,而實際工做環境中的問題並非經過教程能碰見的,畢竟「真傳一句話,假傳萬卷書」。天然科學知識量極其龐大,導師不只會提供學習方向的指導,最重要的是能提綱挈領的給出工廠建議,能少走不少彎路。
固然,必定要多總結概括本身的知識體系,畢竟真正武裝本身的不是手裏的工具,而是思惟的工具。
在任何領域裏,學習一門新技術最難的永遠不是基礎的知識,而是在工程實踐中,發現問題和解決的思惟方式和技巧。不管是算法/機器學習的阿里Chris老師,仍是負責python數據分析的百度數據挖掘專家@熊貓醬的,仍是機器學習的15年計算機視覺經驗的tant老師,都是經過本身多年在一線領域的業務實踐,總結出的一套學習方法教給咱們。