?

基于FTRL算法的消費者精準畫像研究

2020-03-03 08:10
福建質量管理 2020年2期
關鍵詞:正則準確率維度

(北京物資學院 北京 101149)

一、引言

21世紀被認為是一個互聯網爆發的世紀,諸多行業伴隨著互聯網的興起或煥發新的生機,或是直接井噴。電商行業的興起無疑直接踏入井噴的行業之一,其需求量也是增長迅速。隨著消費者畫像概念的興起,消費者的特征與訴求被更好的展現了出來,這樣廠家就可以根據消費者的年齡、性別、職位、興趣愛好、住址、婚姻狀況等對消費者進行特征勾勒,深層挖掘消費者的潛在消費意向,更好的使消費者獲得滿足。用戶畫像能更多的反應消費者的真實需求,而不是設計人員和產品經理強行塞給客戶的需求,設計人員與產品經理有很多都認為自己喜歡的客戶也會喜歡,自己不喜歡的客戶也不會喜歡,然而事實情況是它們自己并不能為推出的產品買單,最后買單的是客戶,一旦客戶不買賬,那就意味著產品的崩盤,設計人員和產品經理精心設計的產品和可能被客戶認為糟糕。因此,本文立足于大數據進行消費者精準畫像研究,為行業提供高效低成本的發展依據。

圖1 2008-2017年電商行業用戶數量和增長曲線

二、機器學習理論

考慮所有機器學習的問題時,機器學習可以從兩個角度考慮模型的學習。一個是將模型看作一個預測函數,訓練過程就是令損失函數最小化以求得相應的參數w,預測過程就是輸入新樣本的特征值x,輸出標簽值y。另一個則是將模型看作一個概率密度函數,它可以表示數據的分布,訓練過程就是概率分布的參數估計過程,預測過程就是求條件概率P(y=?|x)。在特征值取值為x的條件下,y值取哪個值條件概率最大,就屬于哪一類。本文將要提出的LR+FTRL物流服務推薦模型中除了將LR作為基本學習器外,還需要采用在線學習的優化算法使得算出的結果更加精確以及符合時代的步調。

LR是線性回歸模型通過logistic的分布函數,將預測結果映射到概率空間,進而預測不同分類的概率,其概率由條件概率P(Y|X)表示。LR模型既可以做二分類也可以做多分類,因為本文只是想確定是否對于給定公司的推定合理能得到消費者的滿意,故這次只闡述LR模型的二分類原理及其實現。二分類的LR模型的條件概率分布如下所示:

選用LR模型的好處也是顯而易見的,比如:

1.作為統計模型與機器學習的結合點,具有較好的預測結果以及可解釋性。

2.直接對分類的可能性建模,無需事先假設數據的分布,這就避免了假設分布不準確帶來的影響。

3.不僅預測得到分類,還有分類對應的概率,這對很多需要使用概率輔助決策的任務很有用。

4.sigmod函數是高階可導的凸函數,具有很好的數學性質,很多數值優化的算法都可以直接用于求解最優解。

三、FTRL算法構建

FTRL[55]是屬于在線凸優化算法中的一個算法思想,是谷歌的Brendan在2013年提出的,在融合了FOBOS與RDA的優點之后,改善了過擬合的問題。FTRL算法設計思想歸納起來并不復雜,其目的就是每次算出讓之前所有目標函數(損失函數加正則項)的和為最小的參數。這個算法當在處理像邏輯回歸這種類型的的帶非光滑正則化項(如L1正則項)的凸優化問題上表現非常好,在計算特征的稀疏性和精度上做到了很好的平衡與取舍,而且它在工程實現上做了很多優化,性能表現優異。

權值的優化過程:

FTRL算法就是在FTL優化目標的基礎上,加入正規化,防止過擬合的現象。

其中,R(ω)是正規化項。

FTRL算法的損失函數,一般來說也不是能夠很快求解的,這種情況下,一般情況下需要找一個代理的損失函數。

代理損失函數需要滿足幾個要求:

代理損失函數相對容易求解,最好的是有解析解

優化代理損失函數的求解,和優化原函數所得到的解差距不可以太大

為了衡量條件2中兩個解的差距,需要引入regret概念。

假設每一步用的代理函數是ht(ω)

每次取

wt=argminwht-1(w)

隨著訓練樣本的增多,這兩個優化目標優化出的參數的實際損失值差距越來越小。

如果ft(ω)是凸函數,我們可以用下面的代理損失函數:

其中gi是fi(ω)次梯度(如果fi(ω)是可導的,次梯度就是梯度)。ηt滿足:

為了產生稀疏的效果,我們也可以加入L1正規化:

只要ft(ω)是凸函數,上面的代理函數一定滿足:

上面的式子我們可以得出w的解析解:

(A) (B) (C)

其中(A)代表累積梯度項,(B)代表正則化處理項,(C)代表累加和項(該項限制了新的迭代結果不要與之前的迭代結果偏離太遠,也就是FTRL算法中proximal的含義)。

從類型上來看,簡單截斷法、TG、FOBOS屬于同一類,都是梯度下降類的算法,并且TG在特定條件可以轉換成簡單截斷法和FOBOS;RDA屬于簡單對偶平均的擴展應用;FTRL可以視作RDA和FOBOS的結合,同時具備二者的優點。目前來看,RDA和FTRL是最好的稀疏模型Online Training的算法。FTRL并行化處理,一方面可以參考ParallelSGD,另一方面可以使用高維向量點乘,及梯度分量并行計算的思路。

從學習的維度來看,FTRL算法的每個維度的學習都是單獨考慮的,這有別于OGD傳統學習的理論-每個樣本都是使用的相同的學習速率。舉例說明就是當機器學習投硬幣這個事件時,假設使用相同的學習速率,用coini表示正面的概率,coinj表示背面出現的概率,當投擲一定次數的硬幣后如果正面出現的次數更多,那么coini的學習速率應該下降的更快,表現為coini具有更多的數據,而coinj的速率應該還是保持在比較高的狀態,這就表示著coinj依舊對數據保持很高的敏感度。而如果這個事件發散到多維,倘若硬幣在投擲過程中一次也沒有出現正面,而因為其他維度的頻繁出現而一并調低該維度的學習速率,這是有位常理的。

當樣本集比較少的時候,每個樣本都很珍貴,那么該特征維度所對應的訓練速率可以獨自維持比較大的值,每出現一個包含該特征的樣本,就可以在這個樣本的梯度上前進一大步,而不會被迫與其他特征維度的學習步調強行保持一致。

所以FTRL算法與w所有特征維度使用統一的學習速率相比,這種方法考慮了訓練樣本本身在不同特征上分布的不均勻性。

四、實證分析

首先要通過數據提煉出每個物流服務供應商的特征,并對應構建出模型,本文選擇了4個物流服務供應商,并把第三章選取的17個屬性作為它的特征,將之前爬取的物流信息篩選出包含4個物流服務供應商的數據。因為選取了4個物流服務供應商,那么最后將會得到4組模型,最終的選擇結果應該在輸入各個模型后取輸出值最接近1的那個模型對應的物流服務供應商作為推薦供應商。

消費者對各個指標針對該物流服務供應商的評價的好壞特征值,作為算法的輸入變量X,用戶在購買過該公司物流服務最終打分作為標簽值,作為算法的輸出Y。

當做完上述的步驟后將數據分為兩份,一份為數據總量的60%作為A數據,一份為數據總量的20%用于驗證和新一輪在線學習數據作為B數據,剩下的20%用于驗證在線學習的效果作為C數據。拿出A數據進行在線學習調參后得出模型M1,將B數據的XB輸入到模型中,輸出Yb與原本B中的YB進行比對,并統計出正確率R1,倘若正確率高于90%,則認為該模型沒有問題,可以有效的推薦用戶購買哪種物流服務。將B中的數據放入模型中再進行訓練得到模型M2,將C數據的XC輸入到模型中,輸出Yc與原本中的YC進行比對,并統計出正確率R2,倘若正確率相較于R1提高1%以上,則認為在線學習的優化方式強于傳統離線學習,就可以驗證基于在線學習的物流服務推薦模型是可行的。

本文給出了四個參數α,β,λ1,λ2。α是全局學習速率,而β唯一的作用是為了避免在第一次遇到第i維特征時由于梯度太小而使得學習率過高的問題,一般設為1就使得這種情況下學習率與全局學習率α接近。λ1,λ2為正則化系數,λ1可以使解更加稀疏,λ2使求解結果更加平滑。為控制模型的復雜度,通常在損失函數中加L1或L2范數做正則化(regularization),通過懲罰過大的參數來防止過擬合。L1范數是指向量中各個元素絕對值之和,也稱為Lasso regularization;L2范數是指向量中各個元素平方之和,也稱為Ridge Regression。L1正則化產生稀疏的權值,因此可用來做特征選擇,在高維數據中使用更為廣泛一些;L2正則化產生平滑的權值(還有一種說法認為L2限制了解的空間,因此可以加速收斂速度,但實際作用并不大)。L1在實際中使用的更多一些,L2和L1要配合使用,增加L2會減弱L1的系數作用。

當輸入A數據用B數據驗證時,得到的模型M1中的w的權值分別為:[-0.20643208,0.05337572,0.02230369,-0.20103844,-0.18545858,0.18834476,0.21569858,0.12562398,0.09625056,0.2021136,-0.20011114,0.15564337,-0.14094467,-0.21531557,0.04882969,0.16891462,-0.1744338]

此時各項參數分別為α=0.1,β=1.0,λ1=0.8,λ2=0.6,準確率為90.83%。說明LR+FTRL構建的模型準確度可以達到要求。

當M1中輸入數據B作為在線學習的數據時,得到的模型M2中的w的權值分別為:

[-0.45656009,0.17982253,0.06603741,-0.41315945,-0.40623559,0.23822012,0.42470959,0.13409622,0.05876127,0.40251397,-0.39827032,0.3084882,-0.20718602,-0.47891542,0.13075843,0.0666782,-0.20014235]

此時各項參數分別為α=0.1,β=1.0,λ1=0.8,λ2=0.6,準確率為93.59%??梢姕蚀_率提升了2.76%,谷歌工程師認為機器學習的準確率只要提高1%就能說明該算法能顯著優化機器學習,基于這樣的考慮,可以認為該算法的建立及優化達到了要求,是可行且有顯著效果的。

五、總結

本文使用Python編出LR+FTRL的程序,輸入的是已經數值化的指標樣本集,通過在線機器學習的方法,輸出權值和準確率,選取了其他的機器學習方法與LR+FTRL算法做了對比,證明本文所選取的方法具有可實施性和優越性。另外重點給出了在線學習算法與傳統離線學習算法的區別,并給出了準確率的比較,可以從準確率的比較上直觀的看出在線學習算法的準確率是明顯要高于傳統離線學習算法的,實現了基于FTRL算法的消費者精準畫像求解。

猜你喜歡
正則準確率維度
理解“第三次理論飛躍”的三個維度
J-正則模與J-正則環
π-正則半群的全π-正則子半群格
Virtually正則模
乳腺超聲檢查診斷乳腺腫瘤的特異度及準確率分析
不同序列磁共振成像診斷脊柱損傷的臨床準確率比較探討
2015—2017 年寧夏各天氣預報參考產品質量檢驗分析
認識黨性的五個重要維度
淺論詩中“史”識的四個維度
剩余有限Minimax可解群的4階正則自同構
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合