面試官如何判斷面試者的機(jī)器學(xué)習(xí)水平?
我在阿里四年,在搜狗十年,在2010年開始從事機(jī)器學(xué)習(xí)算法工作,目前在淘系負(fù)責(zé)端智能和3D人工智能。應(yīng)該是國(guó)內(nèi)第一批大規(guī)模機(jī)器學(xué)習(xí)問題的參與者,和廣告、推薦、CV、CG等不同方向的同學(xué)合作過,也面試過近千人了。下面我來講講我的看法和具體的實(shí)踐經(jīng)驗(yàn),供各位面試官和候選人參考。
許多面試官掉進(jìn)了坑里,對(duì)于候選人主要關(guān)注研究新進(jìn)展、模型優(yōu)化方法等等基礎(chǔ)知識(shí)的考核,也關(guān)注了對(duì)于調(diào)參技巧等等技能考核。
但實(shí)際上公司最關(guān)注的是三個(gè)問題:
- 一是候選人是否能夠解決當(dāng)前的問題,這里面對(duì)于實(shí)際問題的理解和抽象能力尤其關(guān)鍵;
- 二是團(tuán)隊(duì)合作,候選人是否可以與其他同學(xué)形成合力,共同實(shí)現(xiàn)目標(biāo);
- 最后一個(gè)是候選人入職后會(huì)有績(jī)效、晉升的需求,候選人成長(zhǎng)潛力如何,是否能和團(tuán)隊(duì)一起共同成長(zhǎng)。
這3個(gè)問題都是需要關(guān)注的,在某些方面會(huì)比機(jī)器學(xué)習(xí)的基礎(chǔ)知識(shí)更重要。
下面我會(huì)回答這樣幾個(gè)問題:1、面試如何設(shè)計(jì)?2、問題解決能力如何考察?3、團(tuán)隊(duì)合作能力如何考察?4、成長(zhǎng)潛力如何考察?5、候選人如何準(zhǔn)備面試。
面試的設(shè)計(jì)
面試需要的是盡快完成對(duì)候選人的考察,從而判斷是否錄用候選人,對(duì)于面試官來說,需要考慮的是是否接納候選人成為未來的伙伴。
需要注意的是,面試題不宜經(jīng)常變動(dòng),用相同/相似的題目面試不同候選人,會(huì)看到不同候選人的差異,有助于快速做出正確的判斷,也就是大家常說的結(jié)構(gòu)化面試。
面試的環(huán)節(jié)一般分為幾步,自我介紹、算法/項(xiàng)目問答、編程題/邏輯題、最后總結(jié)。
面試首先是看到候選人的優(yōu)點(diǎn),而不是尋找缺點(diǎn),首先的自我介紹環(huán)節(jié),對(duì)候選人進(jìn)行全面的了解,同時(shí)讓候選人放松下來,以便正常的發(fā)揮自己的水平。
算法/項(xiàng)目問答,一個(gè)投遞崗位是算法工程師的同學(xué),如果沒有合理的理由,算法的基本理解是需要過關(guān)的,對(duì)于低級(jí)別候選人,要現(xiàn)有深度再有廣度,許多面試官刨根問底,也是為了考察候選人的思考深度。
編程題/邏輯題,為什么算法工程師也會(huì)這么重視編程題和邏輯題呢?目前的許多候選人算法背景差距很大,隔行如隔山,面試官與候選人鉆研領(lǐng)域有時(shí)候并非匹配,考察的復(fù)雜度就會(huì)大大增加,而編程題和邏輯題考察每個(gè)候選人都可以使用,面試官非常喜歡這種題目。
最后的環(huán)節(jié)建立在前面環(huán)節(jié)的基礎(chǔ)上進(jìn)行考察,如果在知識(shí)和技能上失分太多,這個(gè)環(huán)節(jié)可以忽略,如果前面的環(huán)節(jié)表現(xiàn)比較好,可以和候選人深入交流。交流對(duì)未來的想法,對(duì)自己的優(yōu)缺點(diǎn)的認(rèn)識(shí),從而建立更完整的對(duì)候選人的認(rèn)知,看看是否匹配公司需求,避免做出錯(cuò)誤判斷。
問題解決能力如何考察
對(duì)于問題解決能力的考察,關(guān)注的不是問題是否被候選人完整解決,而是得到答案的思考路徑和方法如何。
具體關(guān)注三個(gè)能力:一是讀題能力,是否能夠正確定義問題;二是分析能力,識(shí)別問題中的關(guān)鍵點(diǎn)和難點(diǎn),確定解題思路;三是應(yīng)用能力,是否能將已有方法在具體情境中應(yīng)用,真正掌握了先進(jìn)技術(shù)。
一種方法是邏輯題或者編程題,首先關(guān)注候選人是否能夠通過溝通和互動(dòng),對(duì)問題建立正確的理解。其次是看候選人面對(duì)問題的時(shí)候,是能夠進(jìn)入問題情境,就事論事的分析問題,一步步建立對(duì)問題理解,還是說急于把未知問題套到一個(gè)已知問題的框架內(nèi)解決,或者是在思考不完整的情況下輕易下判斷??疾斓臅r(shí)候一定不要用題面清晰,解答復(fù)雜的成題,這樣的題目候選人即使能解決也是背下來解題思路。
我曾經(jīng)用過這樣一道面試題,12個(gè)球,其中有一個(gè)壞球,壞球和好球重量不同,用一個(gè)電子秤把壞球找出來,至少需要多少次。
這是一道很老的IOI題目,有的同學(xué)學(xué)過天平稱球,就想套用天平稱球,發(fā)現(xiàn)不適用,還是跳不出來思考框架,這樣的同學(xué)在面對(duì)實(shí)際問題的時(shí)候,也缺乏靈活的解決辦法。
還有的同學(xué)著急去探索最優(yōu)解法,而實(shí)際問題中大部分情況,我們只需要可行解,然后在可行解基礎(chǔ)上不斷優(yōu)化即可。
這道題如果是忘記腦中的各種套路,從題目本身思考,得到可行解甚至次優(yōu)解并不難,也可以排除一些不可能的情況,逼近最優(yōu)解。如果能夠?qū)τ趩栴}的本質(zhì)進(jìn)行思考,從而給出解題的完整思路,因?yàn)榭荚嚂r(shí)間問題無法做出最優(yōu)解,也是可以獲得高分的。
另一種方法是把同學(xué)拉到一個(gè)具體的算法情境中來看,就像是有個(gè)高贊回答提到的現(xiàn)場(chǎng)調(diào)試算法,但現(xiàn)場(chǎng)調(diào)試需要時(shí)間比較長(zhǎng),題目的設(shè)計(jì)也需要下功夫,還需要有個(gè)題庫(kù),避免漏題,公司里有專門的同學(xué)負(fù)責(zé)此事的話可以考慮。更通用的方法是對(duì)于同學(xué)應(yīng)該比較熟悉的領(lǐng)域,構(gòu)造一個(gè)實(shí)際場(chǎng)景,觀察同學(xué)的思考角度和方法。
比如同學(xué)對(duì)圖像識(shí)別比較熟悉,可以問問同學(xué),一個(gè)每個(gè)類目目前只有10條數(shù)據(jù),大約100個(gè)類目的家具分類問題如何解決比較好?回答的時(shí)候既包括模型選型,也包括標(biāo)注任務(wù)設(shè)計(jì),遷移學(xué)習(xí)理解,實(shí)際問題中樣本不均衡、噪聲樣本等問題的解決。
學(xué)術(shù)界對(duì)于這些單一問題都有相關(guān)的解決方案,但是在具體情境下的決策能力,還是非??简?yàn)候選人這些方法融會(huì)貫通、靈活運(yùn)用的能力。
合作能力如何考察
團(tuán)隊(duì)合作能力在面試中很難考察的很深入,最好是候選人實(shí)習(xí)一段時(shí)間,才能完整判斷合作能力。面試過程中,主要關(guān)注候選人溝通中的一些特質(zhì)體現(xiàn)。
第一,候選人在面試環(huán)節(jié)中是很自我的在思考、表達(dá),還是尊重面試官、尊重題目。第二,候選人的溝通能力如何,是否能夠快速理解面試官問題,有疑問的時(shí)候是否能用溝通解決疑問。第三,候選人表達(dá)能力如何,能夠簡(jiǎn)明扼要的說清楚自己的觀點(diǎn),還是說表達(dá)缺乏重點(diǎn),效率很低。
成長(zhǎng)潛力如何
成長(zhǎng)潛力體現(xiàn)在自控力、主動(dòng)性、學(xué)習(xí)能力幾個(gè)方面。
自控力和主動(dòng)性的考察,主要是體現(xiàn)在簡(jiǎn)歷考核中,候選人是能夠主動(dòng)探索自己希望學(xué)習(xí)的方向,還是被動(dòng)的接受學(xué)校的培養(yǎng)計(jì)劃。當(dāng)自己確定了努力的方向,是否能夠按照自己的期望進(jìn)行努力,還是說很容易放棄。
學(xué)習(xí)能力體現(xiàn)在題目考察中,讀題的時(shí)候理解題目速度如何,分析題目時(shí)是否有很強(qiáng)的邏輯性,能夠快速找到問題的關(guān)鍵。
成長(zhǎng)潛力的考核是貫穿面試整個(gè)過程的,面試后需要盡快進(jìn)行總結(jié),從各個(gè)細(xì)節(jié)中形成完整的判斷,候選人是否成長(zhǎng)潛力合格。
候選人如何準(zhǔn)備面試
準(zhǔn)備面試分為2個(gè)階段,一個(gè)是長(zhǎng)期積累,另一個(gè)是短期沖刺。
學(xué)習(xí)能力、學(xué)術(shù)能力、解題能力都不是短期能夠突擊的。
希望大家建立正確的學(xué)習(xí)觀念,面試的目的是雙方相互了解,進(jìn)行匹配,通過一些短期手段,即時(shí)通過了面試,后續(xù)的工作也是很痛苦的。
長(zhǎng)期能力培養(yǎng)
leetcode是很好的工具,大家不要簡(jiǎn)單的去滿足題目通過了,而是是否能夠獨(dú)立分析題面,理解題意,解題的時(shí)候都有哪些方法解決,優(yōu)缺點(diǎn)如何,解題方法選型依據(jù)如何。堅(jiān)持這樣的思考過程,做了幾百道題,編程和解決問題的能力自然提升了。
讀論文、實(shí)驗(yàn)復(fù)現(xiàn)也是如此,首先關(guān)注論文的核心貢獻(xiàn),思考論文面對(duì)的問題背景如何,你有什么想法,論文中設(shè)計(jì)了什么樣的解決方案,為什么這么設(shè)計(jì)。主動(dòng)性的培養(yǎng)可以嘗試主動(dòng)去參加比賽,以及各種活動(dòng),并不斷改進(jìn)方法提升成績(jī)。
短期沖刺
沖刺的目的是完整的展示自己,避免面試的短時(shí)間無法利用好,展示自己的優(yōu)點(diǎn)。首先是整理好簡(jiǎn)歷以及相關(guān)內(nèi)容的了解,說清楚自己的核心優(yōu)點(diǎn),簡(jiǎn)歷內(nèi)容中相關(guān)的支撐點(diǎn)都有哪些。
其次是對(duì)于自己的項(xiàng)目,看看相關(guān)資料,說清楚難點(diǎn)和自己的價(jià)值,也對(duì)于領(lǐng)域內(nèi)其他人的相關(guān)工作可以簡(jiǎn)要說明。
最后是多演練,找同學(xué)模擬練習(xí),表達(dá)熟練了,情境熟悉了,自然面試表現(xiàn)會(huì)好不少。