算法工程師面經(jīng)
2018年3月13日
搜狐一面
主要問了我碩士期間做的新聞推薦系統(tǒng)是什么伺通,我講了大約20分鐘balabala。然后針對于這個新聞推薦系統(tǒng)提出了一系列的問題:
1.你用到了LDA逢享,那么請講一下LDA的原理是什么罐监?我簡單說了一下LDA生成文檔的過程,但是根據(jù)什么生成沒答上來2333(LDA是我的痛瞒爬,看了幾遍沒看懂)
2.你的新聞的備選集如何獲裙?選取當天新聞侧但,挨個算一遍矢空。
3.也就是說你的計算是現(xiàn)場算的么?是的俊犯,我知道這樣效率有問題妇多,我的系統(tǒng)中沒有解決,但是可以先對新聞進行聚類燕侠,然后對每個簇提出一個模型者祖,先匹配簇在選擇新聞(SCENE 論文中的方法)
4.你的數(shù)據(jù)量有多大?3萬多條新聞绢彤,100個用戶吧七问。
5.你的用戶較少,那么在推薦的時候矩陣一定是稀疏的茫舶,對于這個稀疏矩陣應該如何處理械巡?可以用PCA或者SVD進行矩陣分解
6.你的關鍵字是如何從文檔中提取出來的?使用了中科院的NLPIR+TF-IDF算法饶氏。
7.講一講tf-idf是什么意思讥耗,TF就是表示詞頻,IDF是逆文檔頻率的意思計算方法為log(N/n)疹启,N新聞集的大小古程,n為包含這個詞的新聞的數(shù)量
8.你系統(tǒng)使用什么語言實現(xiàn)的?Java
9.hashmap你用過么喊崖,底層是如何實現(xiàn)的挣磨?這個我不太清楚呢。見http://blog.csdn.net/yinbingqiu/article/details/60965080
10.計算機網(wǎng)絡你有學過吧荤懂,還記得什么么茁裙?記不清太多了時間太久了。其實可以說說TCPIP节仿,網(wǎng)絡5層結構之類的
11.你說你做過Android? Android的生命周期是什么晤锥?忘記了。廊宪。
12.你用過Python 那么你Python都用過哪些機器學習的庫矾瘾?Scikit-learn眉踱,numpy,OpenCV 和dlib(其實還有LibLinear忘記說了)
13.好了霜威,那么你覺著你自己都有哪些優(yōu)點呢?册烈。戈泼。。赏僧。大猛。。淀零。挽绩。
總而言之第一次面試毫無疑問的跪了
2018年3月15日
金山WPS
1.自我介紹巴拉巴拉
2.項目
3.深度學習!
深度學習驾中!深度學習唉堪!
結論就是大家投崗位一定要看好是不是適合自己
2018年3月16日
數(shù)旦科技一面
1.數(shù)據(jù)庫 三范式(不記得了)
2.bagging? 和boosting? 哪個可以讓結果的方差更小一些,為什么肩民?
偏差:偏差越大準確率越低唠亚,偏差越小準確度越高
方差:方差越大的模型越容易過擬合,方差越小越不容易過擬合
bagging減少方差(通過隨機抽樣和投票減少過擬合)持痰,boosting減少偏差(通過不斷擬合殘差來讓偏差更性钏选)
3.你都知道哪些分類算法
LR,SVM工窍,決策樹割卖,隨機森林,Adaboost患雏,GDBT鹏溯,Xgboost,樸素貝葉斯
4.bagging 和boosting的區(qū)別是什么
bagging的思想就是分別訓練多個沒有相關性的基分類器纵苛,每個基分類器在訓練的時候剿涮,需要從樣本集合有又放回的選擇部分樣本作為訓練集。訓練完成以后通過攻人,多數(shù)表決(分類問題)取试、簡單平均(回歸問題),的得到最后的結果怀吻。
bagging的最大優(yōu)點是可以并行化瞬浓。
bagging的典型代表就是隨機森林。
而boosting是一個串行的過程蓬坡,下一個基學習器要基于上一個基學習器的結果來進行學習猿棉,從而一步一步的逼近真實的結果磅叛。
5.排序算法都有什么?當一個數(shù)據(jù)特別亂序的時候使用哪個排序算法更好一些
堆排序萨赁,最壞O(nlogn)弊琴,雖然歸并也可以O(nlogn),但是堆的空間復雜度為O(1)所以更好一些
6.你論文都怎么搜索的杖爽,如何保證質量敲董?如何保證搜索結果是完整的?
Web of science慰安、百度腋寨、谷歌,講了用ccf和Jcr分區(qū)來保證論文基本質量化焕,通過摘要Intruction的后兩段還有Conclusion來初步判斷論文講的什么之類的萄窜。
7.面向對象 多態(tài)? 繼承 的關系
這個說的不好,有興趣自己看就行
8.面對大數(shù)據(jù)量的推薦應該如何實現(xiàn)
算法上面撒桨,SVD降維查刻,聚類
結構上面,分布式文件管理系統(tǒng)
分布式計算框架(Hadoop元莫、MapReduce等)
并行計算
9.說說協(xié)同過濾是怎么回事
說了基于用戶和基于物品的協(xié)同過濾及原理
10.你常用的推薦算法都有什么
基于內容與協(xié)同過濾(評分推薦的話主要用矩陣分解)
11.集成學習為什么要用簡單的基學習器赖阻,不用一個復雜一點的學習器
為了防止過擬合啊
12.非線性的數(shù)據(jù),可以使用什么分類器進行分類
總結一下踱蠢,這個公司其實還有二面火欧,但是二面由于沒有什么有價值的內容所以就不寫了,只問了一下隨機森林的原理
2018年3月21日
好未來一面
視頻面試好卡2333333茎截,小哥主要是做NLP的苇侵,和我方向不是很對口,所以其實東西問的不是很多
項目企锌,把隱式反饋和顯式反饋結合的用戶興趣計算方法(我感覺小哥聽得有點蒙榆浓,畢竟不是做推薦的)
1.用過什么語言,用沒用過R撕攒,語言都干什么用的
Python陡鹃,Java。新聞推薦系統(tǒng)用Java寫的抖坪,機器學習模型什么的用Python跑的萍鲸。
2.樸素貝葉斯原理
說了貝葉斯公式、屬性獨立性假設擦俐,以及貝葉斯的優(yōu)缺點
3.TF-IDF原理
這個簡單脊阴。不說了
4.性能評價指標,準確率召回率是怎么回事,二分類 和多分類的評價方法
準確率召回率嘿期。品擎。不解釋。忘了提Roc曲線和Auc面積
5.除了推薦方面的東西备徐,你還做過一些別的事情么
說了自己練習的工資分類萄传,take home test的電商詐騙檢測
6.用過scikit-learn numpy么(pandas還有其他的沒用過)
用過scikit-learn numpy沒用過pandas
7.LDA你是怎么用的,LDA的表現(xiàn)如何蜜猾,主題分的效果好不好
改的別人的代碼盲再,表現(xiàn)還好,但是運行效率很差瓣铣。最后的主題分析效果還行,但是由于新聞量和主題定義的數(shù)量不夠多贷揽,導致有些主題劃分的不夠純粹和細致棠笑。
8.你覺得基于內容的方法和協(xié)同過濾有什么不同
談了協(xié)同過濾的冷啟動和原因,基于內容的優(yōu)缺點(準確禽绪,但無法發(fā)現(xiàn)用戶的新興趣)
9.還有就是一些基本情況了蓖救,用沒用過數(shù)據(jù)庫啊之類的,數(shù)據(jù)庫用的怎么樣sql會不會
小哥大概的意思是把我的簡歷踢到推薦相關的部門去了