Airbnb深度學習在搜尋領域的探索總結

2021-09-25 23:13:19 字數 2184 閱讀 1168

其實下面我來梳理一下作者認為自己在這2年多的探索中遇到的失敗模型和一些調參經驗:

2個失敗的嘗試:

1 list embedding

即對每乙個帶出租的房子進行embedding化處理(和廣告場景中對每乙個商品embedding的思路是一樣的),這個一般看上去會非常make sense,但是最後的效果確不好。作者分析可能因為這些房子的分布非常不均勻,大量的房子都只在記錄**現了很少的次數,導致模型的訓練不充分所致;

2 multi-task

即使用多工框架,底層的特徵表示部分在不同的task之間共享,提高特徵的泛化能力。

這個同樣看上去非常make sense(也是廣告、nlp等領域的常見手段)。這裡使用的兩個task乙個是房子是否被預訂,另乙個是房子是否被長時間瀏覽了,雖然看上去這兩個指標有一定的相似性即都標識了使用者對該房子的興趣程度,但是最後的效果確實差強人意。最後作者分析後發現,那些被長時間瀏覽的房子有些是因為房子的描述很長、房子本身很精緻或者房子很獨特好玩(可能在這種情況下使用者長時間瀏覽只是因為覺得好玩而不是真正的想去預訂)。

下面介紹幾種作者提出的很實用的運用在特徵工程和實驗結果分析步驟中的一些方法和技巧:

1 特徵歸一化

1.1 對於近似成正態分佈的特徵,採用(fe

atur

eval

ue−μ

)/σ(feature_-\mu)/\sigma

(featu

reva

lue​

−μ)/

σ 方式進行歸一化

1.2 對於進行冪律(長尾)分布的特徵,採用log

1+fe

atur

eval

ue1+

medi

anva

luelog \frac}}

log1+m

edia

nval

ue​1

+fea

ture

valu

e​​方式進行歸一化

2 在深度學習模型架構之下,什麼的樣的特徵具有更好的泛化能力?即如何對原始特徵進行處理可以使訓練得出的模型有更好的泛化能力?

作者從深度學習每一層引數的分布分析入手,來觀測一下這些特徵分布的變化,最終繪圖值是將每乙個神經元的輸出值進行log

2(1+

relu

outp

ut)log_2(1+reluoutput)

log2​(

1+re

luou

tput

)處理

從上到下依次是模型的輸出層,隱藏層和輸入層,可以發現隨著資料進入到模型後,其分布是逐漸變的光滑,作者推測之所以深度學習有泛化能力可能和特徵分布光滑有關係。因為原始特徵輸入到深度學習網路中後,會存在非常複雜的特徵交叉操作,而訓練資料往往受限於資料量只包含少部分的特徵交叉,故如果能使入模特徵變的更光滑,最終模型的整體泛化效能一定能有所提高。

最後作者提出了一種檢測模型泛化能力的方法,即在訓練集上訓練好模型後,對測試集資料中的某一維特徵全部倍乘(x2,x3,x4等),如果最終**結果的ndcg等指標沒有明顯變化,則說明模型的泛化能力比較好。

3 特徵重要性檢測方法。

因為深度學習和樹模型不一樣,其在**的時候進行了大量特徵交叉和非線性的操作,所以不是非常容易對某一維特徵進行重要性判斷。也許有人會說,可以對測試集資料的某一維特徵進行permutation操作,看最終模型效果下降的百分比,這樣的話如果兩個特徵之間有關聯的話,就很難分析判斷出來了。作者這裡介紹了一種很巧妙的方式,即按照模型最終的**概率對樣本進行排序,然後取高概率段部分資料和低概率段資料做針對某一維特徵的分布差異對比,如果分布差異大說明這個特徵對模型最終的**結果影響較大,而如果分布差異不大的話說明這個特徵對模型最終**的結果影響不是很大。乙個樣例如下所示:

左邊的分布差異是比較大的,右邊的則是變化比較小的,說明了price對使用者是否最終產生預訂行為的影響更大一些,而review 次數影響則不大。

深度學習在金融領域的應用構想

本文 格物課堂 從技術角度來看,目前人工智慧領域所使用的主要技術就是深度網路,同時輔以某些傳統機器學習方法以及預處理技術。在筆者看來,深度學習在金融領域的應用中最具優勢的一點便是特徵的自主選擇,例如 金融 行業易受到各種事件的影響,比如最近幾天美國航母將在靠近朝鮮的海域進行巡航,而且極有可能發生類似...

深度學習領域有什麼瓶頸?

知乎 深度學習領域有哪些瓶頸?peng bo的回答 知乎 個人認為,當前深度學習的瓶頸,可能在於 scaling。是的,你沒有聽錯。我們已經有海量的資料,海量的算力,但我們卻難以訓練大型的深度網路模型 gb 到 tb 級別的模型 因為 bp 難以大規模並行化。資料並行不夠,用模型並行後加速比就會大打...

屬於線性代數,在深度學習領域的主要概念

深度學習核心的資料結構是標量 向量 矩陣和張量。張量 專屬於深度學習tensorflow框架的名詞,這篇先簡單彙總線性代數範圍內的三種結構及其運算規則 標量 向量 矩陣。以及深度學習領域常用的乙個概念 範數 1.標量 只有數值大小,沒有方向的量。2.向量及其運算 常使用的python擴充套件程式庫n...