邏輯回歸問題實際工作中,,我們可能會遇到如下問題: 1. 預(yù)測一個用戶是否點擊特定的商品 2. 判斷用戶的性別 3. 預(yù)測用戶是否會購買給定的品類 4. 判斷一條評論是正面的還是負(fù)面的 這些都可以看做是分類問題,更準(zhǔn)確地,,都可以看做是二分類問題,。同時,,這些問題本身對美團也有很重要的價值,能夠幫助我們更好的了解我們的用戶,,服務(wù)我們的用戶,。要解決這些問題,通常會用到一些已有的分類算法,,比如邏輯回歸,,或者支持向量機。它們都屬于有監(jiān)督的學(xué)習(xí),,因此在使用這些算法之前,,必須要先收集一批標(biāo)注好的數(shù)據(jù)作為訓(xùn)練集。有些標(biāo)注可以從log中拿到(用戶的點擊,,購買),,有些可以從用戶填寫的信息中獲得(性別),也有一些可能需要人工標(biāo)注(評論情感極性),。另一方面,,知道了一個用戶或者一條評論的標(biāo)簽后,我們還需要知道用什么樣的特征去描述我們的數(shù)據(jù),,對用戶來說,,可以從用戶的瀏覽記錄和購買記錄中獲取相應(yīng)的統(tǒng)計特征,而對于評論來說,,最直接的則是文本特征,。這樣拿到數(shù)據(jù)的特征和標(biāo)簽后,就得到一組訓(xùn)練數(shù)據(jù): 值得一提的是,,模型效果往往和所用特征密切相關(guān),。特征工程在任何一個實用的機器學(xué)習(xí)系統(tǒng)中都是必不可少的,機器學(xué)習(xí)InAction系列已有一篇文章中對此做了詳細(xì)的介紹,,本文不再詳細(xì)展開,。 模型sigmoid 函數(shù)在介紹邏輯回歸模型之前,我們先引入sigmoid函數(shù),,其數(shù)學(xué)形式是: 從上圖可以看到sigmoid函數(shù)是一個s形的曲線,,它的取值在[0, 1]之間,在遠(yuǎn)離0的地方函數(shù)的值會很快接近0/1,。這個性質(zhì)使我們能夠以概率的方式來解釋(后邊延伸部分會簡單討論為什么用該函數(shù)做概率建模是合理的),。 決策函數(shù)一個機器學(xué)習(xí)的模型,實際上是把決策函數(shù)限定在某一組條件下,,這組限定條件就決定了模型的假設(shè)空間,。當(dāng)然,我們還希望這組限定條件簡單而合理。而邏輯回歸模型所做的假設(shè)是: 選擇0.5作為閾值是一個一般的做法,,實際應(yīng)用時特定的情況可以選擇不同閾值,,如果對正例的判別準(zhǔn)確性要求高,可以選擇閾值大一些,,對正例的召回要求高,,則可以選擇閾值小一些。 參數(shù)求解模型的數(shù)學(xué)形式確定后,,剩下就是如何去求解模型中的參數(shù),。統(tǒng)計學(xué)中常用的一種方法是最大似然估計,即找到一組參數(shù),,使得在這組參數(shù)下,,我們的數(shù)據(jù)的似然度(概率)越大。在邏輯回歸模型中,,似然度可表示為: 即在邏輯回歸模型中,,我們最大化似然函數(shù)和最小化log損失函數(shù)實際上是等價的。對于該優(yōu)化問題,,存在多種求解方法,,這里以梯度下降的為例說明。梯度下降(Gradient Descent)又叫作最速梯度下降,,是一種迭代求解的方法,,通過在每一步選取使目標(biāo)函數(shù)變化最快的一個方向調(diào)整參數(shù)的值來逼近最優(yōu)值?;静襟E如下: 沿梯度負(fù)方向選擇一個較小的步長可以保證損失函數(shù)是減小的,,另一方面,邏輯回歸的損失函數(shù)是凸函數(shù)(加入正則項后是嚴(yán)格凸函數(shù)),,可以保證我們找到的局部最優(yōu)值同時是全局最優(yōu),。此外,常用的凸優(yōu)化的方法都可以用于求解該問題,。例如共軛梯度下降,,牛頓法,LBFGS等,。 分類邊界知道如何求解參數(shù)后,,我們來看一下模型得到的最后結(jié)果是什么樣的。很容易可以從sigmoid函數(shù)看出,,當(dāng)θTx>0 時,,y=1,否則 y=0,。θTx=0 是模型隱含的分類平面(在高維空間中,我們說是超平面),。所以說邏輯回歸本質(zhì)上是一個線性模型,,但是,,這不意味著只有線性可分的數(shù)據(jù)能通過LR求解,實際上,,我們可以通過特征變換的方式把低維空間轉(zhuǎn)換到高維空間,,而在低維空間不可分的數(shù)據(jù),到高維空間中線性可分的幾率會高一些,。下面兩個圖的對比說明了線性分類曲線和非線性分類曲線(通過特征映射),。 左圖是一個線性可分的數(shù)據(jù)集,右圖在原始空間中線性不可分,,但是在特征轉(zhuǎn)換 后的空間是線性可分的,,對應(yīng)的原始空間中分類邊界為一條類橢圓曲線。 正則化當(dāng)模型的參數(shù)過多時,,很容易遇到過擬合的問題,。這時就需要有一種方法來控制模型的復(fù)雜度,典型的做法在優(yōu)化目標(biāo)中加入正則項,,通過懲罰過大的參數(shù)來防止過擬合: 實際應(yīng)用時,,由于我們數(shù)據(jù)的維度可能非常高,L1正則化因為能產(chǎn)生稀疏解,,使用的更為廣泛一些,。 延伸生成模型和判別模型邏輯回歸是一種判別模型,表現(xiàn)為直接對條件概率P(y|x)建模,,而不關(guān)心背后的數(shù)據(jù)分布P(x,y),。而高斯貝葉斯模型(Gaussian Naive Bayes)是一種生成模型,先對數(shù)據(jù)的聯(lián)合分布建模,,再通過貝葉斯公式來計算樣本屬于各個類別的后驗概率,,即: 可以看到,這個概率和邏輯回歸中的形式是一樣的,。這種情況下GNB 和 LR 會學(xué)習(xí)到同一個模型,。實際上,在更一般的假設(shè)(P(x|y)的分布屬于指數(shù)分布族)下,,我們都可以得到類似的結(jié)論,。 多分類(softmax)如果y不是在[0,1]中取值,而是在K個類別中取值,,這時問題就變?yōu)橐粋€多分類問題,。有兩種方式可以出處理該類問題:一種是我們對每個類別訓(xùn)練一個二元分類器(One-vs-all),當(dāng)K個類別不是互斥的時候,,比如用戶會購買哪種品類,,這種方法是合適的。如果K個類別是互斥的,即 y=i 的時候意味著 y 不能取其他的值,,比如用戶的年齡段,,這種情況下 Softmax 回歸更合適一些。Softmax 回歸是直接對邏輯回歸在多分類的推廣,,相應(yīng)的模型也可以叫做多元邏輯回歸(Multinomial Logistic Regression),。模型通過 softmax 函數(shù)來對概率建模,具體形式如下: 類似的,,我們也可以通過梯度下降或其他高階方法來求解該問題,,這里不再贅述。 應(yīng)用本文開始部分提到了幾個在實際中遇到的問題,,這里以預(yù)測用戶對品類的購買偏好為例,,介紹一下美團是如何用邏輯回歸解決工作中問題的。該問題可以轉(zhuǎn)換為預(yù)測用戶在未來某個時間段是否會購買某個品類,,如果把會購買標(biāo)記為1,,不會購買標(biāo)記為0,就轉(zhuǎn)換為一個二分類問題,。我們用到的特征包括用戶在美團的瀏覽,,購買等歷史信息,見下表
其中提取的特征的時間跨度為30天,,標(biāo)簽為2天。生成的訓(xùn)練數(shù)據(jù)大約在7000萬量級(美團一個月有過行為的用戶),,我們?nèi)斯ぐ严嗨频男∑奉惥酆掀饋?,最后?8個較為典型的品類集合。如果用戶在給定的時間內(nèi)購買某一品類集合,,就作為正例,。喲了訓(xùn)練數(shù)據(jù)后,使用Spark版的LR算法對每個品類訓(xùn)練一個二分類模型,,迭代次數(shù)設(shè)為100次的話模型訓(xùn)練需要40分鐘左右,,平均每個模型2分鐘,測試集上的AUC也大多在0.8以上,。訓(xùn)練好的模型會保存下來,,用于預(yù)測在各個品類上的購買概率,。預(yù)測的結(jié)果則會用于推薦等場景。 由于不同品類之間正負(fù)例分布不同,,有些品類正負(fù)例分布很不均衡,,我們還嘗試了不同的采樣方法,最終目標(biāo)是提高下單率等線上指標(biāo),。經(jīng)過一些參數(shù)調(diào)優(yōu),品類偏好特征為推薦和排序帶來了超過1%的下單率提升,。 此外,,由于LR模型的簡單高效,易于實現(xiàn),,可以為后續(xù)模型優(yōu)化提供一個不錯的baseline,,我們在排序等服務(wù)中也使用了LR模型。 總結(jié)邏輯回歸的數(shù)學(xué)模型和求解都相對比較簡潔,,實現(xiàn)相對簡單,。通過對特征做離散化和其他映射,邏輯回歸也可以處理非線性問題,,是一個非常強大的分類器,。因此在實際應(yīng)用中,當(dāng)我們能夠拿到許多低層次的特征時,,可以考慮使用邏輯回歸來解決我們的問題,。 參考資料· Trevor Hastie et al. The elements of statistical learning · Andrew Ng, CS 229 lecture notes · C.M. Bishop, Pattern recognition and machine learning · Andrew Ng et al. On discriminative vs. generative classifiers:a comparison of logistic regression and na?ve bayes · Wikipedia, http://en./wiki/Logistic_regression 本文轉(zhuǎn)自美團技術(shù)博客
|
|