機器學習及大數據相關面試的職責和面試問題(轉)
目錄
· 機器學習、大數據相關崗位的職責
· 面試問題
· 答題思路
· 準備建議
· 總結
各個企業對這類崗位的命名可能有所不同,比如推薦演算法/數據挖掘/自然語言處理/機器學習演算法工程師,或簡稱演算法工程師,還有的稱為搜索/推薦演算法工程師,甚至有的併入後台工程師的範疇,視崗位具體要求而定。
機器學習、大數據相關崗位的職責
根據業務的不同,崗位職責大概分為:
1、平台搭建類
· 數據計算平台搭建,基礎演算法實現,當然,要求支持大樣本量、高維度數據,所以可能還需要底層開發、並行計算、分散式計算等方面的知識;
2、演算法研究類
· 文本挖掘,如領域知識圖譜構建、垃圾簡訊過濾等;
· 推薦,廣告推薦、APP 推薦、題目推薦、新聞推薦等;
· 排序,搜索結果排序、廣告排序等;
· 其它,· 廣告投放效果分析;· 互聯網信用評價;· 圖像識別、理解。
3、數據挖掘類
· 商業智能,如統計報表;
· 用戶體驗分析,預測流失用戶。
以下首先介紹面試中遇到的一些真實問題,然後談一談答題和面試準備上的建議。
面試問題
1、你在研究/項目/實習經歷中主要用過哪些機器學習/數據挖掘的演算法?
2、你熟悉的機器學習/數據挖掘演算法主要有哪些?
3、你用過哪些機器學習/數據挖掘工具或框架?
4、基礎知識· 無監督和有監督演算法的區別?· SVM 的推導,特性?多分類怎麼處理?· LR 的推導,特性?· 決策樹的特性?· SVM、LR、決策樹的對比?· GBDT 和 決策森林 的區別?· 如何判斷函數凸或非凸?· 解釋對偶的概念。· 如何進行特徵選擇?· 為什麼會產生過擬合,有哪些方法可以預防或克服過擬合?· 介紹卷積神經網路,和 DBN 有什麼區別?· 採用 EM 演算法求解的模型有哪些,為什麼不用牛頓法或梯度下降法?· 用 EM 演算法推導解釋 Kmeans。· 用過哪些聚類演算法,解釋密度聚類演算法。· 聚類演算法中的距離度量有哪些?· 如何進行實體識別?· 解釋貝葉斯公式和樸素貝葉斯分類。· 寫一個 Hadoop 版本的 wordcount· ……
5、開放問題
· 給你公司內部群組的聊天記錄,怎樣區分出主管和員工?
· 如何評估網站內容的真實性(針對代刷、作弊類)?
· 深度學習在推薦系統上可能有怎樣的發揮?
· 路段平均車速反映了路況,在道路上布控採集車輛速度,如何對路況做出合理估計?採集數據中的異常值如何處理?
· 如何根據語料計算兩個詞詞義的相似度?
· 在百度貼吧里發布 APP 廣告,問推薦策略?
· 如何判斷自己實現的 LR、Kmeans 演算法是否正確?
· 100億數字,怎麼統計前100大的?
· ……
答題思路
1、用過什麼演算法?
· 最好是在項目/實習的大數據場景里用過,比如推薦里用過 CF、LR,分類里用過 SVM、GBDT;
· 一般用法是什麼,是不是自己實現的,有什麼比較知名的實現,使用過程中踩過哪些坑;
· 優缺點分析。
2、熟悉的演算法有哪些?
· 基礎演算法要多說,其它演算法要挑熟悉程度高的說,不光列舉演算法,也適當說說應用場合;
· 面試官和你的研究方向可能不匹配,不過在基礎演算法上你們還是有很多共同語言的,你說得太高大上可能效果並不好,一方面面試官還是要問基礎的,另一方面一旦面試官突發奇想讓你給他講解高大上的內容,而你只是泛泛的了解,那就傻叉了。
3、用過哪些框架/演算法包?
· 主流的分散式框架如 Hadoop,Spark,Graphlab,Parameter Server 等擇一或多使用了解;
· 通用演算法包,如 mahout,scikit,weka 等;
· 專用演算法包,如 opencv,theano,torch7,ICTCLAS 等。
4、基礎知識
· 個人感覺高頻話題是 SVM、LR、決策樹(決策森林)和聚類演算法,要重點準備;
· 演算法要從以下幾個方面來掌握 產生背景,適用場合(數據規模,特徵維度,是否有 Online 演算法,離散/連續特徵處理等角度);原理推導(最大間隔,軟間隔,對偶);求解方法(隨機梯度下降、擬牛頓法等優化演算法);優缺點,相關改進;和其他基本方法的對比;
· 不能停留在能看懂的程度,還要對知識進行結構化整理,比如撰寫自己的 cheet sheet,我覺得面試是在有限時間內向面試官輸出自己知識的過程,如果僅僅是在面試現場才開始調動知識、組織表達,總還是不如系統的梳理準備;從面試官的角度多問自己一些問題,通過查找資料總結出全面的解答,比如如何預防或克服過擬合。
5、開放問題
· 由於問題具有綜合性和開放性,所以不僅僅考察對演算法的了解,還需要足夠的實戰經驗作基礎;
· 先不要考慮完善性或可實現性,調動你的一切知識儲備和經驗儲備去設計,有多少說多少,想到什麼說什麼,方案都是在你和面試官討論的過程里逐步完善的,不過面試官有兩種風格:引導你思考考慮不周之處 or 指責你沒有考慮到某些情況,遇到後者的話還請注意靈活調整答題策略;
· 和同學朋友開展討論,可以從上一節列出的問題開始。
準備建議
1、基礎演算法複習兩條線
· 材料閱讀 包括經典教材(比如 PRML,模式分類)、網上系列博客,系統梳理基礎演算法知識;
· 面試反饋 面試過程中會讓你發現自己的薄弱環節和知識盲區,把這些問題記錄下來,在下一次面試前搞懂搞透。
2、除演算法知識,還應適當掌握一些系統架構方面的知識,可以從網上分享的阿里、京東、新浪微博等的架構介紹 PPT 入手,也可以從 Hadoop、Spark 等的設計實現切入。
3、如果真的是以就業為導向就要在平時注意實戰經驗的積累,在科研項目、實習、比賽(Kaggle,Netflix,天貓大數據競賽等)中摸清演算法特性、熟悉相關工具與模塊的使用。
總結
如今,好多機器學習、數據挖掘的知識都逐漸成為常識,要想在競爭中脫穎而出,就必須做到· 保持學習熱情,關心熱點;· 深入學習,會用,也要理解;· 在實戰中歷練總結;· 積极參加學術界、業界的講座分享,向牛人學習,與他人討論。最後,希望自己的求職季經驗總結能給大家帶來有益的啟發。
- 想對推薦演算法、用戶畫像有進一步的了解的可以移步我的知乎live
- 《 推薦演算法那點事》:知乎 Live - 全新的實時問答
- 《 推薦演算法那點事(二):細節 》:知乎 Live - 全新的實時問答
附:其它可能的題目-演算法/架構/ETL等
MapReduce解決缺值問題?
集群規模有限,但之前的那個文件足夠大,如何解決?(不能調整集群的規模)
Spark的三種部署方式?
如果Spark用的和Mapreduce的計算資源同是yarn,發現資源不夠用了話,在Spark中的哪裡進行配置,使之資源分配合理?
LVS的配置相關命令?
Hadoop的各角色的職能?
Hadoop的checkpoint的作用?
HBase的雙主如何配置?
HBase即便擁有雙主的高可靠配置,存在hdfs上的數據丟失怎麼辦?
HBase模糊查詢,是什麼?如何做到?
Hadoop的 高可靠性,如何保證?
如何保證HBase的穩定性以及高可靠性?從部署、容災、以及網路方面說說你的看法?
你覺得Spark和Hadoop的區別是什麼,請簡要說一說?
你覺得Python和Java在使用起來,有什麼區別?
給你兩張表,表A和表B,其中表A有3條數據,表B有5條數據,問:表A left join 表B後有幾條?
LVS和HAProxy相比,它的缺點是什麼?
Sqoop用起來感覺怎樣?
ZooKeeper的角色以及相應的Zookepper工作原理?
HBase的Insert與Update的區別?
數組與鏈表的區別是什麼?
Scala函數式編程的特點?
今日頭條的個性化推薦是如何實現的?
spark工作原理
spark運行原理
Spark Streaming
Storm的ack是幹嘛的
kalfka幹嘛的
job提交到yarn上的工作流程
10x+5y+z = n,x+y+z的最小值
ArryList、LinkedList、vector的區別
hashMap HashTable的區別
垃圾回收機制
JVM的工作原理
Hbase的垃圾回收工具
for循環LinkedList
遍歷HashMap的並且把某一個值刪除
線程 進程
Java中Runnable和Thread的區別Callable
Callable與Future的介紹
sleep wait區別
hadoop源碼使用了什麼JAVA技術
hadoop的通訊介面RPC協議
java的數據類型
mapreduce中的Text類型 LongWriteable 能不能用String 或者用long類型代替
JAVA如何實現序列化
反序列化是什麼?
序列化是將(內存中的)結構化的數據數據,序列化成2進位
mapreduce常用的介面
mapreduce的工作流程
MR優化方式
什麼樣的情況下不能用mapreduce
HDFS的架構
hdfs改那幾個文件 分別改什麼內容 內容代表什麼意思(3次)
core是全局的 site是局部的
hdfs優化
mapreduce怎麼實現join連接
yarn的ha搭建
zookeeper的工作原理和應用場景
如何解決mapreduce的數據傾斜
mapreduce怎麼實現把移動數據到移動計算的
hive 增加數據有幾種方式
怎麼給hive的表裡面增加一個欄位
增加的欄位裡面數據佔不佔內存
給欄位增加值怎麼增加
1g的小文件,1g的一個文件 ,為什麼小文件占的空間更大
hive建表,什麼情況下見內部表
impala 依賴
怎麼解決hive數據傾斜問題
hbase rowkey的設計原則
唯一 簡明有意義
hbase的應用場景
你們平時PV有多少,數據量有多少
Hive是重點
hadoop工程師
zookeeper在hbase中作用
ZK中存的兩張最重要的表
shall 數組的分隔符是什麼
linux的copy
推薦閱讀: