算法工程師面經(jīng)
2018年3月13日
搜狐一面
主要問(wèn)了我碩士期間做的新聞推薦系統(tǒng)是什么,我講了大約20分鐘balabala。然后針對(duì)于這個(gè)新聞推薦系統(tǒng)提出了一系列的問(wèn)題:
1.你用到了LDA,那么請(qǐng)講一下LDA的原理是什么?我簡(jiǎn)單說(shuō)了一下LDA生成文檔的過(guò)程,但是根據(jù)什么生成沒(méi)答上來(lái)2333(LDA是我的痛,看了幾遍沒(méi)看懂)
2.你的新聞的備選集如何獲???選取當(dāng)天新聞,挨個(gè)算一遍。
3.也就是說(shuō)你的計(jì)算是現(xiàn)場(chǎng)算的么?是的,我知道這樣效率有問(wèn)題,我的系統(tǒng)中沒(méi)有解決,但是可以先對(duì)新聞進(jìn)行聚類(lèi),然后對(duì)每個(gè)簇提出一個(gè)模型,先匹配簇在選擇新聞(SCENE 論文中的方法)
4.你的數(shù)據(jù)量有多大?3萬(wàn)多條新聞,100個(gè)用戶(hù)吧。
5.你的用戶(hù)較少,那么在推薦的時(shí)候矩陣一定是稀疏的,對(duì)于這個(gè)稀疏矩陣應(yīng)該如何處理?可以用PCA或者SVD進(jìn)行矩陣分解
6.你的關(guān)鍵字是如何從文檔中提取出來(lái)的?使用了中科院的NLPIR+TF-IDF算法。
7.講一講tf-idf是什么意思,TF就是表示詞頻,IDF是逆文檔頻率的意思計(jì)算方法為log(N/n),N新聞集的大小,n為包含這個(gè)詞的新聞的數(shù)量
8.你系統(tǒng)使用什么語(yǔ)言實(shí)現(xiàn)的?Java
9.hashmap你用過(guò)么,底層是如何實(shí)現(xiàn)的?這個(gè)我不太清楚呢。見(jiàn)http://blog.csdn.net/yinbingqiu/article/details/60965080
10.計(jì)算機(jī)網(wǎng)絡(luò)你有學(xué)過(guò)吧,還記得什么么?記不清太多了時(shí)間太久了。其實(shí)可以說(shuō)說(shuō)TCPIP,網(wǎng)絡(luò)5層結(jié)構(gòu)之類(lèi)的
11.你說(shuō)你做過(guò)Android? Android的生命周期是什么?忘記了。。
12.你用過(guò)Python 那么你Python都用過(guò)哪些機(jī)器學(xué)習(xí)的庫(kù)?Scikit-learn,numpy,OpenCV 和dlib(其實(shí)還有LibLinear忘記說(shuō)了)
13.好了,那么你覺(jué)著你自己都有哪些優(yōu)點(diǎn)呢?。。。。。。。。
總而言之第一次面試毫無(wú)疑問(wèn)的跪了
2018年3月15日
金山WPS
1.自我介紹巴拉巴拉
2.項(xiàng)目
3.深度學(xué)習(xí)!
深度學(xué)習(xí)!深度學(xué)習(xí)!
結(jié)論就是大家投崗位一定要看好是不是適合自己
2018年3月16日
數(shù)旦科技一面
1.數(shù)據(jù)庫(kù) 三范式(不記得了)
2.bagging? 和boosting? 哪個(gè)可以讓結(jié)果的方差更小一些,為什么?
偏差:偏差越大準(zhǔn)確率越低,偏差越小準(zhǔn)確度越高
方差:方差越大的模型越容易過(guò)擬合,方差越小越不容易過(guò)擬合
bagging減少方差(通過(guò)隨機(jī)抽樣和投票減少過(guò)擬合),boosting減少偏差(通過(guò)不斷擬合殘差來(lái)讓偏差更?。?/p>
3.你都知道哪些分類(lèi)算法
LR,SVM,決策樹(shù),隨機(jī)森林,Adaboost,GDBT,Xgboost,樸素貝葉斯
4.bagging 和boosting的區(qū)別是什么
bagging的思想就是分別訓(xùn)練多個(gè)沒(méi)有相關(guān)性的基分類(lèi)器,每個(gè)基分類(lèi)器在訓(xùn)練的時(shí)候,需要從樣本集合有又放回的選擇部分樣本作為訓(xùn)練集。訓(xùn)練完成以后通過(guò),多數(shù)表決(分類(lèi)問(wèn)題)、簡(jiǎn)單平均(回歸問(wèn)題),的得到最后的結(jié)果。
bagging的最大優(yōu)點(diǎn)是可以并行化。
bagging的典型代表就是隨機(jī)森林。
而boosting是一個(gè)串行的過(guò)程,下一個(gè)基學(xué)習(xí)器要基于上一個(gè)基學(xué)習(xí)器的結(jié)果來(lái)進(jìn)行學(xué)習(xí),從而一步一步的逼近真實(shí)的結(jié)果。
5.排序算法都有什么?當(dāng)一個(gè)數(shù)據(jù)特別亂序的時(shí)候使用哪個(gè)排序算法更好一些
堆排序,最壞O(nlogn),雖然歸并也可以O(shè)(nlogn),但是堆的空間復(fù)雜度為O(1)所以更好一些
6.你論文都怎么搜索的,如何保證質(zhì)量?如何保證搜索結(jié)果是完整的?
Web of science、百度、谷歌,講了用ccf和Jcr分區(qū)來(lái)保證論文基本質(zhì)量,通過(guò)摘要Intruction的后兩段還有Conclusion來(lái)初步判斷論文講的什么之類(lèi)的。
7.面向?qū)ο?多態(tài)? 繼承 的關(guān)系
這個(gè)說(shuō)的不好,有興趣自己看就行
8.面對(duì)大數(shù)據(jù)量的推薦應(yīng)該如何實(shí)現(xiàn)
算法上面,SVD降維,聚類(lèi)
結(jié)構(gòu)上面,分布式文件管理系統(tǒng)
分布式計(jì)算框架(Hadoop、MapReduce等)
并行計(jì)算
9.說(shuō)說(shuō)協(xié)同過(guò)濾是怎么回事
說(shuō)了基于用戶(hù)和基于物品的協(xié)同過(guò)濾及原理
10.你常用的推薦算法都有什么
基于內(nèi)容與協(xié)同過(guò)濾(評(píng)分推薦的話(huà)主要用矩陣分解)
11.集成學(xué)習(xí)為什么要用簡(jiǎn)單的基學(xué)習(xí)器,不用一個(gè)復(fù)雜一點(diǎn)的學(xué)習(xí)器
為了防止過(guò)擬合啊
12.非線(xiàn)性的數(shù)據(jù),可以使用什么分類(lèi)器進(jìn)行分類(lèi)
總結(jié)一下,這個(gè)公司其實(shí)還有二面,但是二面由于沒(méi)有什么有價(jià)值的內(nèi)容所以就不寫(xiě)了,只問(wèn)了一下隨機(jī)森林的原理
2018年3月21日
好未來(lái)一面
視頻面試好卡2333333,小哥主要是做NLP的,和我方向不是很對(duì)口,所以其實(shí)東西問(wèn)的不是很多
項(xiàng)目,把隱式反饋和顯式反饋結(jié)合的用戶(hù)興趣計(jì)算方法(我感覺(jué)小哥聽(tīng)得有點(diǎn)蒙,畢竟不是做推薦的)
1.用過(guò)什么語(yǔ)言,用沒(méi)用過(guò)R,語(yǔ)言都干什么用的
Python,Java。新聞推薦系統(tǒng)用Java寫(xiě)的,機(jī)器學(xué)習(xí)模型什么的用Python跑的。
2.樸素貝葉斯原理
說(shuō)了貝葉斯公式、屬性獨(dú)立性假設(shè),以及貝葉斯的優(yōu)缺點(diǎn)
3.TF-IDF原理
這個(gè)簡(jiǎn)單。不說(shuō)了
4.性能評(píng)價(jià)指標(biāo),準(zhǔn)確率召回率是怎么回事,二分類(lèi) 和多分類(lèi)的評(píng)價(jià)方法
準(zhǔn)確率召回率。。不解釋。忘了提Roc曲線(xiàn)和Auc面積
5.除了推薦方面的東西,你還做過(guò)一些別的事情么
說(shuō)了自己練習(xí)的工資分類(lèi),take home test的電商詐騙檢測(cè)
6.用過(guò)scikit-learn numpy么(pandas還有其他的沒(méi)用過(guò))
用過(guò)scikit-learn numpy沒(méi)用過(guò)pandas
7.LDA你是怎么用的,LDA的表現(xiàn)如何,主題分的效果好不好
改的別人的代碼,表現(xiàn)還好,但是運(yùn)行效率很差。最后的主題分析效果還行,但是由于新聞量和主題定義的數(shù)量不夠多,導(dǎo)致有些主題劃分的不夠純粹和細(xì)致。
8.你覺(jué)得基于內(nèi)容的方法和協(xié)同過(guò)濾有什么不同
談了協(xié)同過(guò)濾的冷啟動(dòng)和原因,基于內(nèi)容的優(yōu)缺點(diǎn)(準(zhǔn)確,但無(wú)法發(fā)現(xiàn)用戶(hù)的新興趣)
9.還有就是一些基本情況了,用沒(méi)用過(guò)數(shù)據(jù)庫(kù)啊之類(lèi)的,數(shù)據(jù)庫(kù)用的怎么樣sql會(huì)不會(huì)
小哥大概的意思是把我的簡(jiǎn)歷踢到推薦相關(guān)的部門(mén)去了