天天看點

一些推薦算法的面試題

1)youtubenet裡面如何加item特征,以及youtube和dssm相比有啥優缺點?

答:論文沒有加,但可以人工加,youtubenet最後一層softmax層就是物品的embedding,是以在初始化的時候用sideinformation的embedding合并後跟最後一層做預測。

雙塔分為user item塔,youtubenet其實隻有user塔,上層的item塔是softmax出來的,加入其它的sideinformation不好加,不過也能加。

2)i2i實時性更強,因為可以直接線上上拿使用者的最近點選來做,是以實時性更強。關于u2i,以lfm來說,一般物品矩陣是天更,使用者矩陣會按小時更,是以u2i相比i2i這種,也是有一定的滞後性,出發點不一樣。i2i最開始是基于物品的相似,這種是以使用者點選行為為相似,但是容易推薦熱門商品,是以需要做一個指數衰減,像word2vec這種,它是一種共線關系的捕捉,類似購物籃的那種。且i2i推薦也得分場景,比如做相似推薦,那麼就是基于屬性做相似,如果是使用者曆史點選推薦,那就是序列相似。

3)針對視訊做召回,是針對完播率以及是否播放模組化,比如使用pinsage圖采樣算法生成embedding,針對該模型訓練時準備兩份資料(user特征一份,item特征一份),建圖訓練完畢之後就會得到每個item的embedding,然後通過faiss線上上做相似推薦。

4)場景:在做youtebenet時,統計7天的資料,播放序列有一個最長視窗為5的vid截斷,然後下一個vid就是label,高頻負采樣的時候統計的是7天所有的vid頻次做編碼,面試官問:如果label vid是第4天上報的,如果用全局vid頻次做付采樣,那是否會出現資料穿越問題?

答:如果是做召回,使用全局資料召回的就是全部底池的負采樣,就不存在穿越問題。但如果是排序的話,就得做第4天那些曝光未點選的物品為負采樣。w2v不是考慮的序列性,而是考慮的共線性,是以w2v不存在穿越問題。youtubenet摒棄了時序性,但是在排序的時候需要注意,在召回中因為最終采樣優化的是softmax,是以跟穿越沒啥關系。

5)某大廠一面:youtubenet項目,資料怎麼來的,怎麼訓練,線上服務怎麼配,如果說做的i2i,問為啥不做u2i,做u2i如何做?召回的名額是什麼?你做的幾路召回效果怎麼樣,為什麼好?講講你做的精排流程,模型使用的什麼名額(auc以及改進版gauc)?線上線下名額相差較大原因是什麼?

6)n2v、w2v、deepwalk差別?冷啟動怎麼辦?(eges)講講原理?w2v損失函數是什麼?交叉熵如何寫?為什麼mse不能用于分類?w2v對softmax改進是什麼?詳細講講負采樣?了解attention嗎?講講它的原理?

7)算法:推的構成,判斷連結清單有環。

8)用機器學習模型做項目,如何選擇模型?

答:lr fm gbdt wide&deep deepfm din依次疊代最簡單的。然後做特征工程,就是怎麼做字段。

1.梯度下降總體過程

2.梯度下降基于求導,損失函數并非處處可導,有什麼方法解決這個問題

3.神經網絡有了解嗎

4.神經網絡激活函數的作用

5.一個三層神經網絡沒有激活函數,這個模型的拟合能力在什麼水準

6.解釋一下deepfm的運作流程和原理

7.w2v的單詞是順序相關的,我們要把它用于推薦資料上做了哪些處理:這個我答建構使用者點選行為序列沒答到他要的點子上

8.召回評估效果名額

9.解釋一下auc的含義

10.1億資料取topN有什麼高效的辦法

1.講過。2.次梯度解決。損失函數如果是l1正則就不可導 次梯度可以解決。3.講過不多說。4.sigmod relu(會導緻批量神經元死亡)prelu(解決神經元死亡)dice (din的激活函數 )tach  5.拟合能力是多元特征交叉的線性模型。6.講過。7.用在特征上,tfidf 關鍵詞抽取 實體詞抽取 embedding 抽取。思想可以用在i2i實作購物籃相似。8.9 說過。10. topn這個分塊 可以解決。就是歸并排序。類似combiner的思路

機器學習必掌握

邏輯回歸,決策樹和随機森林,樸素貝葉斯,svm,xgboost

資料挖掘面試題:

1.工作中用的語言是python還是Java

2.平常會用到哪些大資料技術棧

3.數倉用到哪些架構

4.推薦算法選的什麼算法

5.w2v 問了一串項目中怎麼做的

6.講一下FM

7.說一下對gbdt的了解

8.介紹一下gbdt算法

9.lr的損失函數

10.說一下交叉熵

11.你們公司推薦算法疊代的過程

12.評估名額

13.有接觸推薦算法以外的東西嗎

14.講一下kmeans

15.使用者畫像的目的是什麼

16.問了一些技術棧用過沒有

1.講一下你們項目

2.業務主要關注名額,做這些召回通路有沒有根據業務做一些針對性的設計

3.怎麼同時優化這些名額

4.提取關鍵詞是提取的什麼地方的關鍵詞

5.提取出來的關鍵詞效果怎麼衡量,這些關鍵詞用不用做人工稽核

6.lda提取的主題怎麼用

7.使用者畫像性别,年齡沒填的怎麼處理

8.item2vector的點選序列怎麼劃分的,時間設定的多久

9.eges的損失函數,特征權重是怎麼來的

10.eges模型的公式

11.eges模型輸出是什麼,是個什麼問題

12.eges的樣本的标簽,特征是怎麼建構的

13.i2v的樣本是怎麼建構的,用的什麼損失函數

14.i2v的正負樣本是怎麼構造的

15.als是怎麼求解的

16.怎麼交替二乘的

17.怎麼動态融合的

18.雙塔模型負樣本怎麼建構的

19.dssm的損失函數

20.dssm怎麼調參的

2:業務針對需要提高點選的同時,增加多樣性。是以多路召回會基于一些字段做召回。i2i的召回 主要用來捕捉序列相關。3.同時優化考慮多極化,最後一次課講了。5 關鍵詞提取完效果衡量一部分靠人工稽核。效果衡量一般就是塞到模型看模型效果 或者 線上名額。6.主題可以作為物料的一個特征 供下遊模型使用。7.前期方案可以用固定編碼來代替,後面發現性别 年齡對業務很重要,就做了一個基于使用者行為判斷 性别 年齡的多分類模型。8.序列采集按一個使用者session。12。樣本标簽就是采樣序列,采取randwalk。14:負樣本根據詞頻進行熱度打壓采樣,核心就是熱度打壓的采樣,w2v裡面有。18雙塔模型負樣本構模組化式,跟排序不一樣,負樣本是所有的物品低池,可以對負樣本建構 可以采樣9:1,9是随機物品池(easy sample)1 是曝光未點選(hard sample)20。dssm的參數調節,主要調節學習率,采取warm up 來做。然後嘗試了drop out 還有負采樣比例。

1)推薦架構流程?

2)決策樹、随機森林、gbdt、xgb的關系以及gbdt和xgb的差別?

3)機器學習中EM算法是什麼?

4)解釋L1和L2?

5)lstm的優缺點?

6)attention思想以及在哪些精排中使用過?

7)解釋transfomer思想?

8)tf-idf?

9)特征工程了解?

10)主要了解的召回政策?

11)KMeams算法過程?

12)如果把使用者和物品其他特征做到模型中;

13)分類和回歸差別?

14)怎麼了解交叉熵?

一面15min:(偏spark)

1)python和java的雙等号有啥差別?

2)spark shuffle原理?

3)說說spark的transformation和action算子?

4)rdd在什麼時候緩存?

5)模型如何進行部署?

二面45min:(偏向資料挖掘)

1)介紹項目;

2)詳細介紹項目中冷啟動問題?

3)講講你如何對使用者打标簽?

4)講講item2vec和node2vec原理?

5)圖的節點和邊權?

6)了解哪些nlp相關技術以及使用?

7)給你一個百度維基、文本庫、内部半結構化資料如何做分類?(開放性問題)

1)項目介紹;

2)協同過濾優化?

3)gbdt原理?

4)gbdt過拟合有幾種處理方式?

5)詳解node2vec原理?

6)詳解fm原理以及優化?

7)團隊規模?

8)使用者量?以及資料量?

一面60min:

3)fm的lr和二階特征如何拼接?

4)fm如何做實時召回?

5)為什麼項目中使用完播率這個名額,而不是其他名額?

6)dssm召回正負樣本如何建構?

7)gbdt對殘差的了解?

8)dssm的損失函數是什麼?softmax多分類拆分二分類原理?

9)通過完播率劃分正負樣本?

10)詳細介紹下項目中deepfm改造的架構流程?

11)deepfm模型大小以及線上推斷時間?

12)線上召回時間?

13)介紹下使用者的長期和短期興趣推薦?

二面:

1)如何做兜底措施?兜底的規則是什麼?

2)協同過濾如何進行上線?

3)als如何上線?

4)離線計算的視訊,你是怎麼線上通過服務召回的?需要傳入什麼參數?

5)線上推斷服務你如何組織特征資料的?使用了哪些特征資料?

6)召回如何做名額的?

7)排序算法有哪些?穩定性如何?

8)樣本抽取規則?

9)召回需要哪些參數?

10)短視訊需要哪些參數進行計算?

繼續閱讀