評估指標的局限性
場景描述:
在模型評估程序中,分類問題、排序問題、回歸問題往往需要使用不同的指標進行評估 ,在諸多的評估指標中,大部分指標只能片面地反映模型的一部分性能 , 如果不能合理地運用評估指標 ,不僅不能發現模型本身的闖題,而且會得出錯誤的結論,下面以 Hulu 的業務為背景 ,假想幾個模型評估場景 3 看看大家能否觸類旁通,發現模型評估指標的局限性,
知識點:準確率( Accuracy ),精確率( Precision ),召回率( Recall ),均萬根誤差(Root Mean Square Error, RMSE)
問題1:準確率的局限性
分析與解答:Hulu 的奢侈品廣告主們希望把廣告走向投放給奢侈昂用戶 , Hulu 通過第三萬的資料管理平臺( Data Management Platform , DI.在P )拿到了一部分奢侈晶用戶的資料 , 并以此為訓練、集和測出集,訓練和測驗奢侈昂用戶的分類模型,該模型的分類準確率超過了95% , 但在實際廣告投放程序中,該模型還是把大部分廣告投給了非奢侈昂用戶 3 這可能是什么原因造成的?
在解答該問題之前,我們先回顧一下臺類準確率的定義 , 準確率是
指分類正確的樣本占總牛羊本個數的比例,即:
A
ccurac
?
y
=
n
correct
n
total
A \operatorname{ccurac} y=\frac{n_{\text {correct }}}{n_{\text {total }}}
Accuracy=ntotal ?ncorrect ??
其中 n correct n_{\text {correct }} ncorrect ? 為被正確分類的樣本個數, n total n_{\text {total }} ntotal ? 為總樣本的個數,準確率是分類問題中最簡單也是最直觀的評價指標,但存在明顯的缺陷,比如,當負樣本占 99% 時,分類器把所有樣本都預測為負樣本也可以獲得 99%的準確率,所以, 當不同類別的樣本比例非常不均衡時 ,占比大的類別往往成為影響準確率的最主要因素,
明確了這一點,這個問題也就迎刃而解了,顯然,奢侶品用戶只占Hulu 全體用戶的一小部分,雖然模型的整體分類準確率高,但是不代表對奢侶品用戶的分類準確率也很高,在線上投放程序中,我們只會對模型劑“奢侶品用戶”判定的準確率不夠高的問題就被放大了,為了解決這個問題,可以使用更為有效的平均準確率(每個類別下的樣本準確率的算術平均)作為模型評估的指標,
事實上,這是一道比較開放的問題,面試者可以根據遇到的問題一步步地排查原因,標準答案其實也不限于指標的選擇,即使評估指標選擇對了,仍會存在模型過擬合或欠擬合、測驗集和訓練集劃分不合理、線下評估與線上測驗的樣本分布存在差異等一系列問題,但評估指標的選擇是最容易被發現,也是最可能影響評估結果的因素,
問題2:精確率與召回率的權衡
Hulu 提供視頻的模糊搜索功能,搜索排序模型回傳的 Top 5 的精確率非常高,但在實際使用程序中,用戶還是經常找不到想要的視頻,特別是一些比較冷門的劇集,這可能是哪個環節出了問題呢?
分析與解答:要回答這個問題,首先要明確兩個概念,精確率和召回率,精確率是指分類正確的正樣本個數占分類器判定為正樣本的樣本個數的比例,召回率是指分類正確的正樣本個數占真正的正樣本個數的比例,在排序問題中,通常沒有一個確定的間值把得到的結果直接判定為正樣本或負樣本,而是采用 Top N 回傳結果的 Precision 值和 Recall值來衡量排序模型的性能,即認為模型回傳的 Top N 的結果就是模型判定的正樣本,然后計算前 N 個位置上的準確率 Precision@N 和前 N N N個位置上的召回率 Recall@N,
Precision 值和 Recall 值是既矛盾又統一的兩個指標,為了提高Precision 值,分類器需要盡量在“更有把握" 時才把樣本預測為正樣本,但此時往往會因為過于保守而漏掉很多“沒有把握”的正樣本,導致 Recall 值降低,回到問題中來,模型回傳的 Precision@5 的結果非常好,也就是說排序模型 Top 5 的回傳值的質量是很高的,但在實際應用程序中,用戶為了找一些冷門的視頻,往往會尋找排在較靠后位置的結果,甚至翻頁去查找目標視頻,但根據題目描述,用戶經常找不到想要的視頻,這說明模型沒有把相關的視頻都找出來呈現給用戶,顯然,問題出在召回率上,如果相關結果有100 個,即使 Precision@5 達到了 100%,Recall@5 也僅僅是5%,在模型評估時,我們是否應該同時關注 Precision 值和 Recall 值?進一步而言,是否應該選取不同的 Top N 的結果進行觀察呢?是否應該選取更高階的評估指標來更全面地反映模型在 Precision 值和 Recall 值兩方面的表現?
答案都是肯定的,為了綜合評估一個排序模型的好壞,不僅要看模型在不同 Top N 下的 Precision@N 和 Recall@N,而且最好繪制出模型的P-R(Precision-Recall ) 曲線,這里簡單介紹一下 P-R 曲線的繪制方法,P-R 曲線的橫軸是召回率,縱軸是精確率,對于一個排序模型來說,其 P-R 曲線上的一個點代表著,在某一閩值下,模型將大于該閩值的結果判定為正樣本,小于該間值的結果判定為負樣本,此時回傳結果對應的召回率和精確率,整條 P-R 曲線是通過將間值從高到低移動而生成的,圖 2.1 是 P-R 曲線樣例圖,其中實線代表模型 A A A 的 P-R 曲線,虛線代表模型 B 的 P-R 曲線,原點附近代表當間值最大時模型的精確率和召回率,

由圖可見,當召回率接近于 0 時,模型
A
A
A 的精確率為 0.9,模型 B的精確率是 1,這說明模型
B
B
B 得分前幾位的樣本全部是真正的正樣本,而模型
A
A
A 即使得分最高的幾個樣本也存在預測錯誤的情況,并且,隨著召回率的增加,精確率整體呈下降趨勢,但是,當召回率為 1 時,模型A 的精確率反而超過了模型 B,這充分說明,只用某個點對應的精確率和召回率是不能全面地衡量模型的性能, 只有通過 P-R 曲線的整體表現,才能夠對模型進行更為全面的評估,
除此之外,F1 score 和 ROC 曲線也能綜合地反映一個排序模型的性能,F1 score 是精準率和召回率的調和平均值,它定義為
F
1
=
2
×
precision
×
recall
precision
+
recall
\mathrm{F} 1=\frac{2 \times \text { precision} \times \text { recall }}{\text { precision }+\text { recall }}
F1= precision + recall 2× precision× recall ?
ROC 曲線會在后面的小節中單獨討論,這里不再敘述,
問題3:平方根誤差的“意外”
分析與解答:Hutu 作為 一家流媒體公司,擁有眾多的美劇資源,預測每部美劇的流量趨勢對于廣告投版、用戶增長都非常重要 ,我們希望構建 個回歸模型來預測某部美劇的流量趨勢 , 但無論采用哪種回歸模型 3 得到的RMSE 指標都非常高,然而事實是模型在 95%的時間區間內的預測誤差都小于 1% , 取得了相當不錨的預測結果 ,那么 ,造成 RMSE 指標居高不下的最可能的原因是什么?
RMSE 經常被用來衡量回歸模型的好壞,但按照題目的敘述,RMSE 這個指標卻失效了,先看一下 RMSE 的計算公式為
R
M
S
E
=
∑
i
=
1
n
(
y
i
?
y
^
i
)
2
n
R M S E=\sqrt{\frac{\sum_{i=1}^{n}\left(y_{i}-\hat{y}_{i}\right)^{2}}{n}}
RMSE=n∑i=1n?(yi??y^?i?)2?
?
其中,
y
i
y_{i}
yi? 是第
i
i
i 個樣本點的真實值,
y
^
i
\hat{y}_{i}
y^?i? 是第
i
i
i 個樣本點的預測值,
n
n
n 是樣本點的個數,
一般情況下,RMSE 能夠很好地反映回歸模型預測值與真實值的偏離程度,但在實際問題中,如果存在個別偏離程度非常大的離群點Outlier )時,即使離群點數量非常少,也會讓 RMSE 指標變得很差,
回到問題中來,模型在 95% 的時間區間內的預測誤差都小于 1% ,這說明,在大部分時間區間內,模型的預測效果都是非常優秀的,然而,RMSE 卻一直很差,這很可能是由于在其他的 5% 時間區間記憶體在非常嚴重的離群點,事實上,在流量預估這個問題中,噪聲點確實是很容易產生的,比如流量特別小的美劇、剛上映的美劇或者付訓獎的美劇,甚至一些相關社交媒體突發事件帶來的流量,都可能會造成離群點,
針對這個問題,有什么解決方案呢?可以從三個角度來思考,第一,如果我們認定這些離群點是“噪聲點”的話,就需要在資料預處理的階段把這些噪聲點過濾掉,第二,如果不認為這些離群點是“噪聲點”的話,就需要進一步提高模型的預測能力,將離群點產生的機制建模進去這是一個宏大的話題,這里就不展開討論了),第三,可以找一個更合適的指標來評估該模型,關于評估指標,其實是存在比 RMSE 的魯棒性更好的指標,比如平均絕對百分比誤差(Mean Absolute Percent Error,MAPE ),Error,MAPE),它定義為
M
A
P
E
=
∑
i
=
1
n
∣
y
i
?
y
^
i
y
i
∣
×
100
n
M A P E=\sum_{i=1}^{n}\left|\frac{y_{i}-\hat{y}_{i}}{y_{i}}\right| \times \frac{100}{n}
MAPE=i=1∑n?∣∣∣∣?yi?yi??y^?i??∣∣∣∣?×n100?
相比 RMSE,MAPE 相當于把每個點的誤差進行了歸一化,降低了個別離群點帶來的絕對誤差的影響,
1:ROC 曲線
場景描述:
二值分類器(Binary Classifier )是機器學習領域中最常見也是應用最廣泛的分類器,評價二值分類器的指標很多,比如 precision、recall、F1 score、P-R 曲線等,上一小節已對這些指標做了一定的介紹,但也發現這些指標或多或少只能反映模型在某一方面的性能,相比而言,ROC 曲線則有很多優點,經常作為評估二值分類器最重要的指標之一,下面我們來詳細了解一下 ROC 曲線的繪制方法和特點,
知識點:ROC 曲線,曲線下的面積( Aera Under Curve, AUC) , P - R 曲線
問題1 :什么是 ROC 曲線?
ROC 曲線是 Receiver Operating Characteristic Curve 的簡稱中文名為“受試者作業特征曲線”,ROC 曲線源于軍事領域,而后在醫學領域應用甚廣,“受試者作業特征曲線”這一名稱也正是來自于醫學領域,
ROC 曲線的橫坐標為假陽性率(False Positive Rate,FPR ) ; 縱坐標為真陽性率(True Positive Rate, TPR ),FPR 和 TPR 的計算方法分別為
F
P
R
=
F
P
N
T
P
R
=
T
P
P
\begin{aligned} F P R &=\frac{F P}{N} \\ T P R &=\frac{T P}{P} \end{aligned}
FPRTPR?=NFP?=PTP??
上式中, P 是真實的正樣本的數量 , N是真實的負樣本的數量 , TP 是P 個正樣本中被分類器預測為E樣本的個數, FP 是 N 個負樣本中被分類器預測為正樣本的個數,只看定義確實高點繞 , 為了更重觀地說明這個問題,我們舉一個醫院診斷病人的例子 , 假設高 l ,但疑似癌癥患者,真中高 3 位很不幸確實患了癌癥( P=3 ),另外 7 位不是癌癥患者( N=7 ) ,醫 院對這10 位疑似意者做了診斷,診斷出 3 位癌癥患者,真中南 2 位確實是真正的患者( TP=2 ) , 那么真陽性率 TPR=TP/P=2/3 , 對于 7 位非癌癥患者來說 3 有一位很不幸被誤診為癌癥患者( FP= l ),那么假陽性率FPR=FP/N 1/7 , 對于“該醫院”這個分類器來說,這組分類結果就對應 ROC 曲線上的-個點( 1/7, 2/3 ),
問題2 :如何繪制 ROC 曲線?
事實上, ROC 曲線是通過不斷移動分類器的“截斷點”來生成曲線上的一組關鍵點的,通過下面的例子進一步來解揮“截斷點”的概念,
在二值分類問題中,模型的輸出一般都是預測樣本為正例的概率 ,假設測驗集中有 20 個樣本,表 2.1 是模型的輸出結果 , 樣本按照預測概率從高到低排序,在輸出最終的正例、負例之前 3 我們需要指定一個
閾值3 預測概率大于該閾值的樣本會被判為正例,小于該與之的樣本則會被判為負例 , 比如,指定閾值為 0.9 ,那么只有第一個樣本會被預測為正例 1 其他全部都是負例 , 上面所說的 “截斷點”指的就是區分正負預測結果的閾值 ,
通過動態地調整截斷點 , 從最高的得分開始(實際上是從正無窮開始,對應著 ROC 曲線的零點) , 逐漸調整到最低得分 , 每一個截斷點都會對應一個 FPR 和 TPR ,在 ROC 圖上繪制出每個截斷點對應的位置,再連接所有點就得到最終的 ROC 曲線,

就本例來說,當截斷點選擇為正無窮時,模型把全部樣本預測為負例,那么 FP 和 TP 必然都為 0, FPR 和 TPR 也都為 0 ,因此曲線的第一個點的坐標就是( 0 , 0 ) , 當把截斷點調整為 0.9 時 ,模型預測 1號樣本為正樣本,并且該樣本確實是正樣本,因此, TP=1, 20 個樣本中 ,所有正例數量為 P=10 ,故 TPR=TP/P= 1/10;這里沒有預測錯的正樣本,即 FP=O ,負樣本總數 N=10 ,故 FPR=FP/N=0/10=0 ,對應 ROC 曲線上的點( 0,0.1 ),依次調整截斷點,直到畫出全部的關鍵點 2 再連接關鍵點即得到最終的 ROC 如曲線如圖 2 . 2 所示 ,

其實 , 還有一種更直觀地繪制 ROC 曲線的方法 , 首先,根據樣本標簽統計出正負樣本的數量 ,假設正樣本數量為 P , 負樣本數量為 N; 接下來,把橫軸的刻度間隔設定為 1 /N , 縱軸的刻度間隔設定為 1 /P; 再根據模型輸出的預測概率對樣本進行排序(從高到低) ;依次遍歷樣本,同時從零點開始繪制ROC 曲線,每遇到一個正樣本就沿縱軸方向繪制一個刻度間隔的曲線,每遇到一個負樣本就沿橫軸方向繪制一個刻度間隔的曲線 3 直到遍歷完所高樣本,由線最終停在( 1,1 )這個點,整個 ROC 曲線繪制完成 ,
問題3 :如何計算 AUC?
顧名思義, AUC 指的是 ROC 曲線下的面積大小, 該值能夠量化地反映基于 ROC 由線衡量出的模型性能 , 計算 AUC 值只需要沿著ROC 橫軸做積分就可以了 , 由于 ROC 曲線一般都處于 y=x 這條直線的上萬(如果不是的話,只要把模型預測的概率反轉成 1-p 就可以得到一個更好的分類器),所以 AUC 的取值一般在 0.5 ~ 1 之間 , AUC越大 , 說明分類器越可能把真正的正樣本排在前面 , 分類性能越好 ,
問題4 :ROC 曲線比 P-R 曲線有什么特點?
本章第一小節曾介紹過同樣被經常用來評估分類和排序模型的 P -R曲線,相比 P -R 曲線, ROC 曲線奇一個特點,當正負樣本的分布發生變化時, ROC 曲線的形狀能夠基本保持不變,而 P -R 曲線的形狀一般會發生較劇烈的變化,
舉例來說 3 圖 2.3 是 ROC 曲線和 P -R 曲線的對比圖 , 其中圖 2.3 ( a)和圖 2.3 ( c )是 ROC 曲線,圖 2.3 ( b )和圖 2.3 ( d )是 P-R 由線,圖 2.3( c )和圖2.3 ( d )則是將測驗集中的負樣本數量增加 10 信后的曲線圖,

可以看出, P-R 曲線發生了明顯的變化,而 ROC 曲線形狀基本不變 , 這個特點讓 ROC 曲線能夠盡量降低不同測驗集帶來的干擾,更加客觀地衡量模型本身的性能 , 這高什么實際意義呢?在很多實際問題中 , 正負樣本數量往往很不均衡 , 比如,計算廣告領域經常涉及轉化率模型,正樣本的數量往往是負樣本數量的 1/1000 甚至 1/10000 , 若選擇不同的測驗集, P -R 曲線的變化就會非常大,而 ROC 由線則能夠更加穩定地反映模型本身的好壞,所以, ROC 曲線的適用場景更多,被廣泛用于排序、推薦 、 廣告等領域, 但需要注意的是,選擇 P-R 曲線還是 ROC 曲線是因實際問題而異的,如果研究者希望更多地看到模型
在特定資料集上的表現, P-R 曲線則能夠更直觀地反映其性能,
3:余弦距離的應用
場景描述
本章的主題是模型評估 ,但真實在模型訓練程序中,我們也在不斷地評估著樣本間的距離,如何評估樣本距離也是定義優化目標和訓練方法的基礎 ,在機器學習問題中,通常將特征表示為向量的形式,所以在分析兩個特征向量之間的相似性時 ,常使用余弦相似度來表示 ,余弦相似度的取值范圍是[-1,1 ],相同的兩個向量之間的相似度為 1 , 如果希望得到類似于距離的表示,將 1 減去余弦相似度即為余弦距離 ,因此余弦距離的取值范圍為[ 0,2],相同的兩個向量余弦距離為 0,
涉及到的知識點:余弦相似度,余弦距離,歐氏距離,距離的定義
問題1:為什么在一些場景中要使用余弦相似度而不是歐式距離?
對于兩個向量 A A A 和 B , B, B, 其余弦相似度定義為cos ( A , B ) = A ? B ∥ A ∥ 2 ∥ B ∥ 2 (A, B)=\frac{A \cdot B}{\|A\|_{2}\|B\|_{2}} (A,B)=∥A∥2?∥B∥2?A?B?即兩個向量夾角的余弦,關注的是向量之間的角度關系,并不關心它們的絕對大小,其取值范圍是 [-1,1],當一對文本相似度的長度差距很大、但內容相近時,如果使用詞頻或詞向量作為特征,它們在特征空間中的的歐氏距離通常很大; 而如果使用余弦相似度的話,它們之間的夾角可能很小,因而相似度高,此外,在文本、影像、視頻等領域,研究的物件的特征維度往往很高,余弦相似度在高維情況下依然保持“相同時為1,正交時為 0,相反時為 -1”的性質,而歐氏距離的數值則受維度的影響,范圍不固定,并且含義也比較模糊,
在一些場景,例如 Word2Vec 中,其向量的模長是經過歸一化的,
此時歐氏距離與余弦距離有著單調的關系,即
∥
A
?
B
∥
2
=
2
(
1
?
cos
?
(
A
,
B
)
)
\|A-B\|_{2}=\sqrt{2(1-\cos (A, B))}
∥A?B∥2?=2(1?cos(A,B))
?
其中
∥
A
?
B
∥
2
\|A-B\|_{2}
∥A?B∥2? 表示歐氏距離,
cos
?
(
A
,
B
)
\cos (A, B)
cos(A,B) 表示余弦相似度,
(
1
?
cos
?
(
A
,
B
)
)
(1-\cos (A, B))
(1?cos(A,B)) 表示余弦距離,在此場景下,如果選擇距離最小(相似度最大)的近鄰,那么使用余弦相似度和歐氏距離的結果是相同的,總體來說,歐氏距離體現數值上的絕對差異,而余弦距離體現方向上的相對差異,例如,統計兩部劇的用戶觀看行為,用戶 A 的觀看向量為(0,1),用戶 B 為 (1,0); 此時二者的余弦距離很大,而歐氏距離很小; 我們分析兩個用戶對于不同視頻的偏好,更關注相對差異,顯然應當使用余弦距離,而當我們分析用戶活躍度,以登陸次數 ( 單位: 次 ) 和平均觀看時長(單位: 分鐘) 作為特征時,余弦距離會認為 (1,10)、(10,100) 兩個用戶距離很近; 但顯然這兩個用戶活躍度是有著極大差異的,此時我們更關注數值絕對差異,應當使用歐氏距離,特定的度量方法適用于什么樣的問題,需要在學習和研究中多總結和思考,這樣不僅僅對面試有幫助,在遇到新的問題時也可以活學活用,
問題2:余弦距離是否一個嚴格定義的距離
該題主要考察面試者對距離的定義的理解,以及簡單的反證和推導,首先看距離的定義:在一個集合中,如果每一對元素均可唯一確定一個實數,使得三條距離公理(正定性,對稱性,三角不等式)成立,則該實數可稱為這對元素之間的距離,余弦距離滿足正定性和對稱性,但是不滿足三角不等式,因此它并不是嚴格定義的距離,具體來說,對于向量 A A A 和 B , B, B, 三條距離公理的證明程序如下,
- 正定性
根據余丟辛離的定義,有
dist ? ( A , B ) = 1 ? cos ? θ = ∥ A ∥ 2 ∥ B ∥ 2 ? A B ∥ A ∥ 2 ∥ B ∥ 2 \operatorname{dist}(A, B)=1-\cos \theta=\frac{\|A\|_{2}\|B\|_{2}-A B}{\|A\|_{2}\|B\|_{2}} dist(A,B)=1?cosθ=∥A∥2?∥B∥2?∥A∥2?∥B∥2??AB?
孝慮到|| A ∥ 2 ∥ B ∥ 2 ? A B ? 0 , A\left\|_{2}\right\| B \|_{2}-A B \geqslant 0, A∥2?∥B∥2??AB?0, 因此有 dist ? ( A , B ) ? 0 \operatorname{dist}(A, B) \geqslant 0 dist(A,B)?0 坦成立,特別地,有
dist ? ( A , B ) = 0 ? ∥ A ∥ 2 ∥ B ∥ 2 = A B ? A = B \operatorname{dist}(A, B)=0 \Leftrightarrow\|A\|_{2}\|B\|_{2}=A B \Leftrightarrow A=B dist(A,B)=0?∥A∥2?∥B∥2?=AB?A=B
因此余弦距離滿足正定性, - 對稱性
根據余弦距離的定義,有
dist ? ( A , B ) = ∥ A ∥ 2 ∥ B ∥ 2 ? A B ∥ A ∥ 2 ∥ B ∥ 2 = ∥ B ∥ 2 ∥ A ∥ 2 ? A B ∥ B ∥ 2 ∥ A ∥ 2 = dist ? ( B , A ) \begin{aligned} \operatorname{dist}(A, B) &=\frac{\|A\|_{2}\|B\|_{2}-A B}{\|A\|_{2}\|B\|_{2}}=\frac{\|B\|_{2}\|A\|_{2}-A B}{\|B\|_{2}\|A\|_{2}} \\ &=\operatorname{dist}(B, A) \end{aligned} dist(A,B)?=∥A∥2?∥B∥2?∥A∥2?∥B∥2??AB?=∥B∥2?∥A∥2?∥B∥2?∥A∥2??AB?=dist(B,A)?
因此余弦距離肅足對稱性, - 三角不等式
該性順并不成立,下面給出一個反例,給定 A = ( 1 , 0 ) , B = ( 1 , 1 ) , A=(1,0), B=(1,1), A=(1,0),B=(1,1),
C = ( 0 , 1 ) , C=(0,1), C=(0,1), 則有
dist ? ( A , B ) = 1 ? 2 2 dist ? ( B , C ) = 1 ? 2 2 dist ? ( A , C ) = 1 \begin{array}{r} \operatorname{dist}(A, B)=1-\frac{\sqrt{2}}{2} \\ \operatorname{dist}(B, C)=1-\frac{\sqrt{2}}{2} \\ \operatorname{dist}(A, C)=1 \end{array} dist(A,B)=1?22 ??dist(B,C)=1?22 ??dist(A,C)=1?
因此有
dist ? ( A , B ) + dist ? ( B , C ) = 2 ? 2 < 1 = dist ? ( A , C ) . \operatorname{dist}(A, B)+\operatorname{dist}(B, C)=2-\sqrt{2}<1=\operatorname{dist}(A, C) . dist(A,B)+dist(B,C)=2?2 ?<1=dist(A,C).
假如面試時候跟張,一時想不到反例,該氣么辦呢?此時可以思考
余弦距離和歐氏距離的關歌,從問題 1 中,我們知道單位圓上歐氏距離和余弦距離滿足
∥ A ? B ∥ = 2 ( 1 ? cos ? ( A , B ) ) = 2 dist ? ( A , B ) \|A-B\|=\sqrt{2(1-\cos (A, B))}=\sqrt{2 \operatorname{dist}(A, B)} ∥A?B∥=2(1?cos(A,B)) ?=2dist(A,B) ?
即有如下關系
dist ? ( A , B ) = 1 2 ∥ A ? B ∥ 2 \operatorname{dist}(A, B)=\frac{1}{2}\|A-B\|^{2} dist(A,B)=21?∥A?B∥2
顯然在單位圓上 , 余弦距離和 歐式氏距離的范圍都是[0 , 2 ],我們已知歐式距離是一個合法的距離,而余弦是離與歐氏距離有二次關系,自然不滿足三角不等式,具體來說,可以假設 A A A 與 B 、 B B 、 B B、B 與 C C C 非常近,其歐氏距離為極小量 u ; u ; u; 此時 A , B , C A, B, C A,B,C 雖然在圓尹上,但近似在一條直線上,所以 A 與 C 的因氏距離接近于 2u,因此,A 與 B 、 B B 、 B B、B 與 C 的余弦距離為 u 2 / 2 ; A u^{2} / 2 ; A u2/2;A 與 C C C 的余弦距離接近于 2 u 2 , 2 u^{2}, 2u2, 大于 A A A 與 B 、 B B_{、} B B、?B 與 C C C 的余弦距離之和,面試者在碰到這類基礎證明類的問題時,佳往會遇到一些困難,比如對面試官考察的重點“距離" 的定義就不一定清晰地記得,這個時快,就需要跟面試官多溝通,在距離的定義上達成一玫(要知道,面試考察的不僅是知識的掌握程度,還有面試者溝通和分析問題的能力),要想給出一個完美的解答,就需要清晰的邀輯、嚴謹的思維,比如在正定性應該給出一些推導,最后,三角不等式的證明 / 證偽中,不應表述為“我覺得滿足 / 不滿足”,而是應該積極分針給定三個點時的三角關系,或者推導其和歐氏距離的關系,這樣照怕一時找不到反例而誤認為其是合法距離,也比“覺得不涂足" 這樣蒙對正確菩案要好,過去訓練模型時,首次注意到余弦距離不符合三角不等式是在研究電視劇的標簽時,發現在通過影視語樣庫訓練出的詞向量中,comedy 和 funny、funny 和 happy 的余弦距離都很近,小于 0.3,然而 comedy 和 happy的余弦距離卻高達 0.7,這一現象明顯不符合社離的定義,引起了我們的注意和討論,經過思考和推導,得出了上述結論,在機單學習領域,被俗稱為距離,卻不滿足三祭距離公理的不僅僅有余弦距離,還有 KL 距離(Kullback-Leibler Divergence),也叫作相對病,它常用于計算兩個分布之間的差異,但不滿足對稱性和三角不等式,
4:A/B 測驗的陷阱
場景描述
在互聯網公司中, A/B 測驗是驗證新模塊、新功能、新產晶是否高效,新演算法、新模型的效果是否育提升,新設計是否受到用戶歡迎,新更改是否影響用戶體驗的主要測驗方法,在機器學習領域中, A/B 測驗是驗證模型最終效果的主要手段 ,
知識點:A/B 測驗, 實驗組 , 對照組
問題:在對模型進行過充分的離線評估之后,為什么還要在行在線A/B 測驗?
需要進行在結 A/B 測驗的原因如下 ,
- 離結評估無法完全消除模型過擬臺的影響,因此 3 得出的離線評估結果無法完全替代線上評估結果,
- 離線評估無法完全還原線上的工程環境, 一般來講,離結評估往往不會考慮線上環境的延遲 、資料丟失、標簽資料缺失等情況 , 因此,離線評估的結果是理想工程環境下的結果 ,
- 線上系統的某些商業指標在離結評估中無法計算,離結評估一般是針對模型本身進行評估,而與模型相關的其他指標,特別是商業指標,往往無法直接獲得 , 比如,線了新的推薦演算法, 離線評估往往關注的是 ROC 由線、 P -R 曲線等的改進, 而線上評估可以全面了解該推薦演算法帶來的用戶點擊率、留存時長、PV 訪問量等的變化 , 這些都要由 A/B 測驗來進行全面的評估,
問題:如何進行線上A/B測驗
進行 A/B 測驗的主要手段是進行用戶分桶,即將用戶分成實驗組和對照組,對實驗組的用戶施以新模型 ,對對照組的用戶施以舊模型 ,在分桶的程序中, 要注意樣本的獨立性和采樣方式的無偏性,確保同一個用戶每次只能臺到同一個桶中,在分桶程序中所選取的 user_id 需要是一個亂數, 這樣才能保證桶中的樣本是無偏的 ,
問題:如何劃分實驗組相對照組?
H 公司的演算法工程師最近針對系統中的“美國用戶”研發了一套全新的視頻推薦模型 A ,而目前正在使用的針對全體用戶的推薦模型是B , 在正式上線之前,工程師們希望通過 A/B 測驗來驗證新推薦模型的效果 , 下面有三種實驗組相對照組的劃分方法, 請指出哪種劃分方法是正確的?
- 根據 user_id ( user_id 完全隨機生成)個位數的奇偶性將用戶劃分為實驗組和對照組 ,對實驗組施以推薦模型 A , 對照組施以模型 B
- 將 user_id 個位數為奇數且為美國用戶的作為實驗組 ,其余用戶為對照組;
- 將 user_id 個位數為奇數且為美國用戶的作為實驗組, user_id 個位數為偶數的用戶作為對照組
上述 3 種 A/B 測驗的劃分方法都不正確,我們用包含關系圖來說明三種劃分方法,如圖 2.4 所示,方法 1(見圖 2.4(a))沒有區分是否為美國用戶,實驗組和對照組的實驗結果均有稀釋; 方法 2(見圖2.4(b))的實驗組選取無誤,并將其余所有用戶劃分為對照組,導致對照組的結果被稀釋; 方法 3(見圖 2.4(c )) 的對照組存在偏差,正確的做法是將所有美國用戶恨據 user_id 個位數劃分為試驗組合對照組(見圖 2.4(d)),分別施以模型 A A A 和 B , B, B, 才能夠驗證模型 A A A 的效果,

5:模型評估的方法
場景描述
在機器學習中,我們通常把樣本分為訓練集和測驗集,訓練集用于訓練模型,測驗集用于評估模型,在樣本劃分和模型驗證的程序中 ,存在著不同的抽樣方法和驗證方法 , 本小節主要考察面試者是否熟知這些方法及真優缺點、是否能夠在不同問題中挑選合適的評估方法,
知識點:Holdout 檢驗,交叉驗證,自由法( Bootstrap ),微積分
-
交叉檢驗
k-fold 交叉驗證: 首先條全部樣本劃分成 k個大小相等的樣本子集;依次遍歷這 k 個子集,每次把當前子集作為驗證貿,其余所有子集作為訓刊集,進行模型的訓練和評估:最后把 k 次評估指標的平均值作為最終的評估指標,在實際實驗中,k經常取 10,樣本總數為 n,依次對 n 個樣本進行追歷,進行 n 次驗證,再將評估指標求平均值得型最終的評估指標,在樣本總數較多的情況下,留一然證法的
時間開銷極大,事實上,留一驗證是留 p p p 驗證的特例,留 p p p 驗證是每次留下 p p p 個樣本作為驗證集,而從 n n n 個元素中選擇 p p p 個元素有 C n p C_{n}^{p} Cnp?種可能,因此它的時間開銷更是遠遠高于留一驗證,故而很少在實際工程中被應用, -
自助法
不管是 Holdout 檢驗還是交叉檢侖,都是基于劃分訓練集和測驗集的方法進行模型評估的,然而,當樣本規模比較小時,將樣本集進行也分會讓訓練集進一步減小,這可能會影響模型訓練效果,有沒有能維持訓練樣本規模的驗證方法呢?自助法可以比較好地解決這個問題,自助法是基于自助采樣法的檢驗方法,對于總數為 n n n 的樣本集合,有的樣本會被重復采樣,有的樣本沒有被抽出過,將這些沒有被抽出的樣本作為驗證集,進行模型驗證,這就是自助法的驗證程序,
在自助法的采樣程序中,對 n個樣本避行 n 次自助抽樣,當 n趨于無窮大肘,最終有多少資料從來未被選擇過?
一個樣本在一次抽樣程序中未被抽中的概率為
(
1
?
1
n
)
,
n
\left(1-\frac{1}{n}\right), n
(1?n1?),n 次抽樣均未抽中的概率為
(
1
?
1
n
)
n
\left(1-\frac{1}{n}\right)^{n}
(1?n1?)n ,當
n
n
n 趨于無窮大時,概率為
lim
?
n
→
∞
(
1
?
1
n
)
n
\lim _{n \rightarrow \infty}\left(1-\frac{1}{n}\right)^{n}
limn→∞?(1?n1?)n根據重要極限,
lim
?
n
→
∞
(
1
+
1
n
)
n
=
e
,
\lim _{n \rightarrow \infty}\left(1+\frac{1}{n}\right)^{n}=\mathrm{e},
limn→∞?(1+n1?)n=e, 所以有
lim
?
n
→
∞
(
1
?
1
n
)
n
=
lim
?
n
→
∞
1
(
1
+
1
n
?
1
)
n
=
1
lim
?
n
→
∞
(
1
+
1
n
?
1
)
n
?
1
?
1
lim
?
n
→
∞
(
1
+
1
n
?
1
)
=
1
e
≈
0.368
\begin{aligned} \lim _{n \rightarrow \infty}\left(1-\frac{1}{n}\right)^{n} &=\lim _{n \rightarrow \infty} \frac{1}{\left(1+\frac{1}{n-1}\right)^{n}} \\ &=\frac{1}{\lim _{n \rightarrow \infty}\left(1+\frac{1}{n-1}\right)^{n-1} \cdot \frac{1}{\lim _{n \rightarrow \infty}\left(1+\frac{1}{n-1}\right)}} \\ &=\frac{1}{\mathrm{e}} \approx 0.368 \end{aligned}
n→∞lim?(1?n1?)n?=n→∞lim?(1+n?11?)n1?=limn→∞?(1+n?11?)n?1?limn→∞?(1+n?11?)1?1?=e1?≈0.368?
因此,當樣本數很大時,大約有 36.8% 的樣本從未被選擇過,可作為
驗證集,
6:超引數調優
場景描述
對于很多演算法工程師來說,超引數調優是件非常頭度的事,除了根據經驗設定所謂的“合理值" 之外,一般很難找到合理的方法去尋擾超引數的最代取值,而與此同時,超引數對于模型效果的影響又至關重要要,有沒有一些可行的辦法去進行超引數的調優呢?
問題:超引數有哪些調優方法?
為了進行超引數調優,我們一般會栗用網格搜索,隨機機搜索、貝葉斯代化等演算法,在具體介紹演算法之前,需要明確超引數搜索演算法一般包括第幾個要素,一是目標函式, 即演算法需要最大化/最小化的目標 二是搜素范圍,一般通過上限和下限來確定; 三是演算法的其他引數,如搜索步長,
-
網格搜索
網格搜索可能是最簡單、應用最廣泛的超引數搜索演算法,它通過查找搜索范圍內的所有的點來確定最優值,如果采用較大的搜索范圍以及較小的步長,網格搜索有很大概率找到全域最優值,然而,這種搜索方案十分消耗計算資源和時間,特別是需要調優的超引數比較多的時候,因此,在實際應用中,網格搜索法一般會先使用較廣的搜索范圍和較大的步長,來尋找全域最優值可能的位置:然后會逐漸縮小搜素范圍和步長,來尋找更精確的最優值,這種揚作方案可以降低所需的時間和計算量,但由于目標函式一般是非凸的,所以很可能會錯過全域最優值, -
隨機搜索
隨機搜索的思想與網格搜索比較相似,只是不再測驗上界和下界之間的所有值,而是在搜索范圍中隨機選取樣本點,它的理論依據是,如果樣本點集足夠大,那么通過隨機采樣也能大概率地找到全域最優值,或其近似值,隨機搜索一般會比網格搜索要快一些,但是和網格提索的快速版一樣,它的結果也是沒法保證的, -
貝葉斯優化演算法
貝葉斯優化演算法在尋找最優最值引數時,采用了與網格搜索、隨機搜索完全不同的方法,網格搜索和隨機搜索在測驗一個新點時,會忽略前一個點的資訊; 而貝葉斯優化演算法則充分利用了之前的資訊,貝葉斯優化演算法通過對目標函式形狀進行學習,找到使目標函式向全域最優值提升的引數,具體來說,它學習目標函式形狀的方法是,首先根據先驗分布,假設一個搜集函式,然后每一次使用心得采樣點來測驗目標函式時,利用這個資訊來更新目標函式的先驗分布; 最后,演算法通試由后驗分布給出的全域最值最可能出現位置的點,一旦找到了一個區域最優值,它會在該區域不斷采樣,所以很容易陷入區域最優值,為了彌補這個缺陷,貝葉斯優化演算法會在探索和利用之間找到一個平貨點,“探索" 就是在還未取樣的區域獲取采樣點; 而“利用”則是棍據后驗分布在最可能出現全域最值的區域進行采樣,
7:過擬臺與欠擬臺
場景描述
在模型評估與調整的程序中 ,我們往往會遇到“過擬合”或“欠擬合”的情況 , 如何
有效地識別 “過擬臺”和“欠擬合"現象 ,并有針對性地進行模型調整 ,是不斷改進機器學習模型的關鍵 , 特別是在實際專案中,采用多種方法、從多個角度降低“過擬臺”和“欠擬臺”的風險是演算法工程師應當真備的領域知識 ,
知識點:過擬臺 , 欠擬合
問題:在模型評估程序中,過擬合欠擬合真體是指什么現象?
過擬合是指模型對于訓練資料擬合呈過當的情況,反映到評估揭標上 ,就是模型在訓練集上的表現很好,但在測驗集和新資料上的表現較差 , 欠擬合指的是模型在訓練和預測時表現都不好的情況 , 圖2.5 形象地描述了過擬臺和欠擬臺的區別 ,
可以看出,圖
2.5
(
2.5(
2.5( a
)
)
) 是欠擬合的情況,擬合的黃線沒有很好地捕捉到資料的特征, 不能很好地擬合資料,圖
2.5
(
c
)
2.5(\mathrm{c})
2.5(c) 則是過擬合的情況,導致模型泛化能力下降,在后期應用程序中很容易輸出錯誤的預測結果,

問題:能否說出幾種降低過擬臺和欠擬合風險的方法?
- 降低“過擬合”風險的方法
(1)從資料入手,獲得更多的訓練資料,使用更多的訓練資料是解決過擬合問題最有效的手段,因為更多的樣本能夠讓模型學習到更多更有效的特征,減小噪聲的影響,當然,直接增加實驗資料一般是很困難的,但是可以通過一定的規則來擴充訓練資料,比如在影像分類的問題上,可以通過影像的平移、旋轉、縮放等方式擴充資料:更進一步地,可以使用生成式對抗網路來合成大量的新訓練資料,
(2)降低模型復雜度,在資料較少時,模型過于復雜是產生過擬合的主要因素, 適當降低模型復雜度可以避免模型擬合過多的采樣噪聲,例如,在神經網路模型中減少網路層數、神經元個數等;在決策樹模型中降低樹的深度、進行剪枝等
,
(3)正則化方法,給模型的引數加上一定的正則約束,比如將權值的大小加入到損失函式中,以 L2 正則化為例:
C = C 0 + λ 2 n ? ∑ i w i 2 C=C_{0}+\frac{\lambda}{2 n} \cdot \sum_{i} w_{i}^{2} C=C0?+2nλ??i∑?wi2?
這樣,在優化原來的目標函式 C 0 C_{0} C0?, 的同時,也能避免權值過大帶來的過擬合風險,
(4)集成學習方法,集成學習是把多個模型集成在一起,來降低單一模型的過擬合風險,如 Bagging 方法,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/163575.html
標籤:其他
