深度學習火了後,nlp也開始追求end to end,人工feature越來越少,而模型結構更多是學術在推進。工業界的同學應該做什麼才能帶來核心競爭力的提升?

相關問題:廣告演算法工程師的核心競爭力是什麼?


在不同階段的競爭力要求不一樣。從T4到T9的能力進階路線:

1 實現模型,調參能力

給一個idea或論文,能夠快速實現(可以基於開源),並復現結果。

2 實際問題的抽象能力

將實際的繁瑣問題抽象為某個典型的NLP任務(比如分類或序列標註),並用成熟的模型來解決。

3 新問題的解決能力

有些問題無法用現有模型解決,需要改進模型或別的方法來解決。

4 經驗累積的能力

經過長時間的打磨,不管是使用了高大上的技術還是人工規則,成功開發了一種核心技術,具有不可替代性。這種經歷和經驗就是你最核心的競爭力。

5 技術路線的把控能力

結合公司的業務,確定團隊的整個技術路線。要有適當的前瞻性,不走彎路。正確衡量某個任務的工作量,合理進行團隊分工,制定工作計劃。


我們組是做搜索的,今天組裡還在討論Elastic Search上市,從系統來講,ES雖然是開源項目,但並不比我們公司開發了多年的搜索引擎差,甚至在運維和監控方面做得更好。

那搞搜索的工程師是不是就沒有價值了,會不會被淘汰掉?

對於信息檢索真正的門檻不在於搜索系統(當然那也是很重要的,否則不會值50億美元),而在於檢索詞(query)的理解,改寫,糾錯和用戶搜索意圖的識別。這部分是ES提供不了的。往往都是大公司的核心資產。百度挖掘過海量的用戶搜索日誌、同義詞、實體詞,阿里挖掘過無數商品的品牌詞、產品詞。換句話說,這些或多或少都和知識挖掘相關,和知識圖譜相關,這些領域深度學習爆發之後進展不是特別巨大,還有一定門檻。

所以我想說,能夠深入理解、分析、挖掘數據,也算nlp工程師的核心競爭力之一吧。


前一陣找工作,也非常認真思考了這個問題。拋開不談軟實力,比如能吹善寫,有領導力這些,就談技術硬實力。我把能力分為基礎能力和高階能力。

基礎能力:

1,純工程能力。此能力包括但不限於 洗數據,挖數據,寫規則,調包式模型實現,線上代碼簡潔性和效率。

2,模型調參能力。此處和之前不一樣的是,input是定的,假設數據已經洗好了,要實現模型了。feature engineering 或者 end2end的深度學習模型模型你能不能把效果調上去。無論是內部數據集還是公開的benchmark,能刷分絕對是一個必不可少的技能。

高階能力

1,造活兒能力。你必須承認基本所有大公司都是生產力過剩的,僧多粥少,清楚的活兒搶的都不行。如何能夠另闢蹊徑,看準技術能實現也有需求的活兒非常重要。

2,做有影響力研究的能力。雖然論文已經越來越多了,但是中國做出有影響力的論文還很少。當然,有影響力的研究不光需要論文質量高,還需要後期宣傳。

3,分散式系統能力。NLP進入深度學習時代,突出一個數據量大,模型訓練慢。無論是大規模word2vec ,seq2seq還是bert都需要系統能力。多機多卡了解一下。此處在說一下bert,此模型非常非常的強,基本是碾壓的存在。某些獎金極高的AI比賽,稍微fine-tune一下中文的bert-base閱讀理解就可以前幾名,公開的benchmark各種被刷爆,內部的數據集也是很難倖免。近兩個月,你要是說你能自己把bert訓出來,絕對是核心競爭力。


我跟 @吳海波 大佬的看法恰好相反。人肉work在幾乎每個落地場景都會大量存在,畢竟實驗室里搞的數據集的難度跟現實世界數據集肯定會存在不小的gap,0人肉的話這得要求model有多麼強大的魯棒性呀。。。別說NLP了,其他更簡單的領域也做不到一個黑匣子模型徹底解決問題的好吧。另外,很多公司的一些產品用純人肉方式解決,但是並不能因此唱衰整個NLP行業,只能說這些公司不重視技術或者沒錢升級技術,比如國內一些小公司做搜索引擎連神經網路都用不到,但是Google都上線RL了還挺work的。甚至還有一些學術界都沒有曝光的黑科技在一些重視技術的公司可能早就內部應用了。

這個題我從NLP應用的角度解釋一下我認為的NLP演算法工程師的核心競爭力吧,來給認為「NLP除了機器翻譯基本沒有落地應用」的小夥伴科普一下。

信息檢索

與機器翻譯技術相比,我覺得信息檢索、文本匹配遠比機器翻譯重量的多吧?面向整個互聯網空間的搜索引擎,比如Google搜索、百度搜索、Bing搜索等,背後的核心演算法難道不是NLP么?是不是太過日常了以至於把它都遺忘了呢;垂直領域的搜索,比如淘寶的商品搜索,tensorflow官網裡的搜索框,其背後也是或淺或深的文本匹配技術呀。

很早之前就是基於關鍵詞的粗暴匹配,但是現在深度學習玩起來後,各種黑科技帶來檢索體驗的大幅提升。都不必說各種深度文本匹配演算法,甚至包括很多人唱衰,覺得工業界沒啥用的強化學習,你難道不知道Google都拿它來極大的提升搜索體驗了么?你說「哈?我咋覺得現在的檢索系統還跟以前一樣?」那隻能說你接觸的檢索系統確實比較辣雞,總有很多公司不捨得花錢花精力去升級它的檢索系統,曝出來太尷尬,就不舉例了╮(╯▽╰)╭

對話系統

開放域對話系統自身很難成為殺手級應用,但是對話在垂直領域早已開始大規模落地發揮威力了呀。每個人都忍受過弱智般的閑魚、滴滴、各大銀行APP、各大通信公司APP的線上人工客服,但是在一些人工智慧發展和落地強勢的大廠,不管是FAQ型的(比如關於公司各種流程答疑的),還是任務型的(比如預訂會議室),垂直領域的智能客服已經發展非常成熟了,幾乎用不到人工的參與,也用不到在手機上下一堆APP各種戳戳戳了,垂直領域對話系統的落地帶來的用戶體驗的提升和人力成本的降低在現在和未來絕對都是一塊非常非常大的蛋糕。最起碼我是真的受夠了弱智的人工客服,真的理解力不如自己寫的對話系統。也受夠了「人工客服全忙,正在排隊,您前面還有101人...」。

沒錯,對話系統很難自己成為一個產品,但是可以預見的是將來絕對會成為AI應用系統的殺手級組件。為什麼物聯網的概念涼的那麼快?很重要的一個原因是人機介面不成熟。萬物交互可以以文本聊天的形式進行,也可以以語音對話的形式進行,但是絕對不可能以下載一堆APP然後在裡面戳戳戳的方式進行。並不是每個人都像小夕一樣喜歡學習和新事物的好么!

問答系統

雖然問答對話不分家,但是將知識用於問答的難度顯然要比用在對話中簡單的多。經過這麼多年的發展,結構化知識圖譜做的辣么大不就是為了拿來用的么!那麼多非結構化知識如wiki也不是寫著玩兒的好么!你說沒見過KB-QA和機器閱讀理解的應用?簡單搜索了解一下?(此處非軟廣,只是拿我日常使用的手機APP舉例而已)

KB-QA

機器閱讀理解:

你看,NLP殺手級應用早已經融入你的日常,幫你過濾互聯網上的海量垃圾文本,節省了你大量的時間,但是你還說沒見過,那就只是你不細心和不善於發現了╮(╯▽╰)╭

看不見的NLP

上面提到的三個方向是比較容易被注意到的,而其實NLP目前更廣泛的價值恰好在於那些看不到的地方。比如通過文本query生成用戶畫像,為推薦系統提供文本特徵,垃圾郵件識別、黃反識別等無處不在的文本分類,輸入法里的語言模型,文檔質量評分,淘寶商品評論區的情感分析與觀點挖掘,知識庫的自動構建等。這些早已融入日常很多年。

而這麼多NLP任務當然不是一盤散沙,你會發現各個子任務高度相似。反正本質上無非就是分類、序列標註和生成這三大類。而序列標註和生成本質上也是分類。所以其實一個應用方向+底層技術基本可以把NLP的全貌get的差不多。就像幾年前的word2vec讓DL-based NLP遍地開花,前不久的BERT學習到的文本表示怒刷各大NLP榜單,很容易發現每一次底層技術的突破都是幾乎整個NLP領域的玩法革新,NLP的各個你看得見的與看不見的落地應用自然也要跟著更新一圈,向用戶體驗的奇點爆發前進一大步。最終各個方向在底層的突破上加以互相借鑒,最終各方向的解決方案也會長得差不多。

所以從上面淺淺的而且可能帶有偏見的應用分析上,很容易總結出NLP演算法工程師應該具備的核心競爭力:

1、在一個有極大商業價值和潛力的大應用方向(檢索、對話、問答、翻譯等)上有搞事情的直覺、經驗和最前沿的嗅覺;

2、融合規則、ML、DL和數學基礎的對NLP基礎技術和解決方案的深刻理解(快速建模一個NLP任務的baseline模型和解決方案;快速遷移和適應新NLP應用方向;通用調參直覺與經驗);

另外,在比較有爭議的分散式訓練問題上,我覺得哪怕是為了BERT也要掌握基礎玩法。實測如果只是為了滿足日常需求的話真的不複雜,為了一條分散式訓練而撤hc真的不至於。建議Uber Horovod和它的前身Baidu Allreduce了解一下,不需要HPC的基礎也能輕鬆get。


由於我工作時間不算長,跟上面的老兵比肯定是不行的,我就以小兵的角度拋磚引玉吧,謝邀。

這裡面的核心競爭力我個人感覺應該分為兩類,一類是工作的競爭力,另一類是面試的競爭力。

工作的競爭力:我覺得最重要的應該是業務問題抽象能力,比如拋出給你一個case你是不是能較快的從業務問題抽象成一個完整的數據清洗+模型選擇+訓練預測工程化+評測的體系。工業界(我暫指那些比較大的互聯網公司,中國top20吧)追求的真不是kaggle那種「拼一槍」的思維,穩定性、時效性、ROI都是要考慮的,有些實習生進了大公司覺得「媽呀為什麼大公司不用XX訓練還要用我兩年前的方法」,其實真的不是不能用,是真怕不穩定出故障啊。

面試的競爭力:面試造核彈這個問題任何公司都有,主要就是看一下你知識天花板在哪裡(而不是能力的天花板),這也是為什麼學歷會佔據一定分量的原因,它代表你的學習能力。NLP面試競爭力我覺得主要是「懂得多」和「復現能力」兩塊:懂得的多就是你一定要跟蹤學習最近的好論文,paperweekly推薦的那種就挺好的,沒必要吃透,能寫個綜述就行了;復現能力主要指的是論文是否能有所產出,比如能不能復現個BERT(個人感覺能復現BERT的人現在公司基本都搶著要了...),或者解釋一下BERT的原理並用一個開源包實現,裡面有什麼trick等等。 反而我覺得編程和工程能力並不是主要的考察對象,所以我一直都很反感追著白板編程不放的NLP面試官...

如果你問我上面兩個我應該更重視哪個呢?這個很難回答,不過我覺得後者更重要一些,因為前者不管你學習能力多麼弱,還是可以明白的,但是後者真的很難做到,最起碼大公司title不帶「研究」倆字的95%都做不到,而現在的公司,不管規模大小都在爭搶這5%的人。


推薦閱讀:
查看原文 >>
相关文章