(北京物資學(xué)院 北京 101149)
21世紀(jì)被認(rèn)為是一個(gè)互聯(lián)網(wǎng)爆發(fā)的世紀(jì),諸多行業(yè)伴隨著互聯(lián)網(wǎng)的興起或煥發(fā)新的生機(jī),或是直接井噴。電商行業(yè)的興起無疑直接踏入井噴的行業(yè)之一,其需求量也是增長迅速。隨著消費(fèi)者畫像概念的興起,消費(fèi)者的特征與訴求被更好的展現(xiàn)了出來,這樣廠家就可以根據(jù)消費(fèi)者的年齡、性別、職位、興趣愛好、住址、婚姻狀況等對消費(fèi)者進(jìn)行特征勾勒,深層挖掘消費(fèi)者的潛在消費(fèi)意向,更好的使消費(fèi)者獲得滿足。用戶畫像能更多的反應(yīng)消費(fèi)者的真實(shí)需求,而不是設(shè)計(jì)人員和產(chǎn)品經(jīng)理強(qiáng)行塞給客戶的需求,設(shè)計(jì)人員與產(chǎn)品經(jīng)理有很多都認(rèn)為自己喜歡的客戶也會(huì)喜歡,自己不喜歡的客戶也不會(huì)喜歡,然而事實(shí)情況是它們自己并不能為推出的產(chǎn)品買單,最后買單的是客戶,一旦客戶不買賬,那就意味著產(chǎn)品的崩盤,設(shè)計(jì)人員和產(chǎn)品經(jīng)理精心設(shè)計(jì)的產(chǎn)品和可能被客戶認(rèn)為糟糕。因此,本文立足于大數(shù)據(jù)進(jìn)行消費(fèi)者精準(zhǔn)畫像研究,為行業(yè)提供高效低成本的發(fā)展依據(jù)。
圖1 2008-2017年電商行業(yè)用戶數(shù)量和增長曲線
考慮所有機(jī)器學(xué)習(xí)的問題時(shí),機(jī)器學(xué)習(xí)可以從兩個(gè)角度考慮模型的學(xué)習(xí)。一個(gè)是將模型看作一個(gè)預(yù)測函數(shù),訓(xùn)練過程就是令損失函數(shù)最小化以求得相應(yīng)的參數(shù)w,預(yù)測過程就是輸入新樣本的特征值x,輸出標(biāo)簽值y。另一個(gè)則是將模型看作一個(gè)概率密度函數(shù),它可以表示數(shù)據(jù)的分布,訓(xùn)練過程就是概率分布的參數(shù)估計(jì)過程,預(yù)測過程就是求條件概率P(y=?|x)。在特征值取值為x的條件下,y值取哪個(gè)值條件概率最大,就屬于哪一類。本文將要提出的LR+FTRL物流服務(wù)推薦模型中除了將LR作為基本學(xué)習(xí)器外,還需要采用在線學(xué)習(xí)的優(yōu)化算法使得算出的結(jié)果更加精確以及符合時(shí)代的步調(diào)。
LR是線性回歸模型通過logistic的分布函數(shù),將預(yù)測結(jié)果映射到概率空間,進(jìn)而預(yù)測不同分類的概率,其概率由條件概率P(Y|X)表示。LR模型既可以做二分類也可以做多分類,因?yàn)楸疚闹皇窍氪_定是否對于給定公司的推定合理能得到消費(fèi)者的滿意,故這次只闡述LR模型的二分類原理及其實(shí)現(xiàn)。二分類的LR模型的條件概率分布如下所示:
選用LR模型的好處也是顯而易見的,比如:
1.作為統(tǒng)計(jì)模型與機(jī)器學(xué)習(xí)的結(jié)合點(diǎn),具有較好的預(yù)測結(jié)果以及可解釋性。
2.直接對分類的可能性建模,無需事先假設(shè)數(shù)據(jù)的分布,這就避免了假設(shè)分布不準(zhǔn)確帶來的影響。
3.不僅預(yù)測得到分類,還有分類對應(yīng)的概率,這對很多需要使用概率輔助決策的任務(wù)很有用。
4.sigmod函數(shù)是高階可導(dǎo)的凸函數(shù),具有很好的數(shù)學(xué)性質(zhì),很多數(shù)值優(yōu)化的算法都可以直接用于求解最優(yōu)解。
FTRL[55]是屬于在線凸優(yōu)化算法中的一個(gè)算法思想,是谷歌的Brendan在2013年提出的,在融合了FOBOS與RDA的優(yōu)點(diǎn)之后,改善了過擬合的問題。FTRL算法設(shè)計(jì)思想歸納起來并不復(fù)雜,其目的就是每次算出讓之前所有目標(biāo)函數(shù)(損失函數(shù)加正則項(xiàng))的和為最小的參數(shù)。這個(gè)算法當(dāng)在處理像邏輯回歸這種類型的的帶非光滑正則化項(xiàng)(如L1正則項(xiàng))的凸優(yōu)化問題上表現(xiàn)非常好,在計(jì)算特征的稀疏性和精度上做到了很好的平衡與取舍,而且它在工程實(shí)現(xiàn)上做了很多優(yōu)化,性能表現(xiàn)優(yōu)異。
權(quán)值的優(yōu)化過程:
FTRL算法就是在FTL優(yōu)化目標(biāo)的基礎(chǔ)上,加入正規(guī)化,防止過擬合的現(xiàn)象。
其中,R(ω)是正規(guī)化項(xiàng)。
FTRL算法的損失函數(shù),一般來說也不是能夠很快求解的,這種情況下,一般情況下需要找一個(gè)代理的損失函數(shù)。
代理損失函數(shù)需要滿足幾個(gè)要求:
代理損失函數(shù)相對容易求解,最好的是有解析解
優(yōu)化代理損失函數(shù)的求解,和優(yōu)化原函數(shù)所得到的解差距不可以太大
為了衡量條件2中兩個(gè)解的差距,需要引入regret概念。
假設(shè)每一步用的代理函數(shù)是ht(ω)
每次取
wt=argminwht-1(w)
隨著訓(xùn)練樣本的增多,這兩個(gè)優(yōu)化目標(biāo)優(yōu)化出的參數(shù)的實(shí)際損失值差距越來越小。
如果ft(ω)是凸函數(shù),我們可以用下面的代理損失函數(shù):
其中g(shù)i是fi(ω)次梯度(如果fi(ω)是可導(dǎo)的,次梯度就是梯度)。ηt滿足:
為了產(chǎn)生稀疏的效果,我們也可以加入L1正規(guī)化:
只要ft(ω)是凸函數(shù),上面的代理函數(shù)一定滿足:
上面的式子我們可以得出w的解析解:
(A) (B) (C)
其中(A)代表累積梯度項(xiàng),(B)代表正則化處理項(xiàng),(C)代表累加和項(xiàng)(該項(xiàng)限制了新的迭代結(jié)果不要與之前的迭代結(jié)果偏離太遠(yuǎn),也就是FTRL算法中proximal的含義)。
從類型上來看,簡單截?cái)喾?、TG、FOBOS屬于同一類,都是梯度下降類的算法,并且TG在特定條件可以轉(zhuǎn)換成簡單截?cái)喾ê虵OBOS;RDA屬于簡單對偶平均的擴(kuò)展應(yīng)用;FTRL可以視作RDA和FOBOS的結(jié)合,同時(shí)具備二者的優(yōu)點(diǎn)。目前來看,RDA和FTRL是最好的稀疏模型Online Training的算法。FTRL并行化處理,一方面可以參考ParallelSGD,另一方面可以使用高維向量點(diǎn)乘,及梯度分量并行計(jì)算的思路。
從學(xué)習(xí)的維度來看,F(xiàn)TRL算法的每個(gè)維度的學(xué)習(xí)都是單獨(dú)考慮的,這有別于OGD傳統(tǒng)學(xué)習(xí)的理論-每個(gè)樣本都是使用的相同的學(xué)習(xí)速率。舉例說明就是當(dāng)機(jī)器學(xué)習(xí)投硬幣這個(gè)事件時(shí),假設(shè)使用相同的學(xué)習(xí)速率,用coini表示正面的概率,coinj表示背面出現(xiàn)的概率,當(dāng)投擲一定次數(shù)的硬幣后如果正面出現(xiàn)的次數(shù)更多,那么coini的學(xué)習(xí)速率應(yīng)該下降的更快,表現(xiàn)為coini具有更多的數(shù)據(jù),而coinj的速率應(yīng)該還是保持在比較高的狀態(tài),這就表示著coinj依舊對數(shù)據(jù)保持很高的敏感度。而如果這個(gè)事件發(fā)散到多維,倘若硬幣在投擲過程中一次也沒有出現(xiàn)正面,而因?yàn)槠渌S度的頻繁出現(xiàn)而一并調(diào)低該維度的學(xué)習(xí)速率,這是有位常理的。
當(dāng)樣本集比較少的時(shí)候,每個(gè)樣本都很珍貴,那么該特征維度所對應(yīng)的訓(xùn)練速率可以獨(dú)自維持比較大的值,每出現(xiàn)一個(gè)包含該特征的樣本,就可以在這個(gè)樣本的梯度上前進(jìn)一大步,而不會(huì)被迫與其他特征維度的學(xué)習(xí)步調(diào)強(qiáng)行保持一致。
所以FTRL算法與w所有特征維度使用統(tǒng)一的學(xué)習(xí)速率相比,這種方法考慮了訓(xùn)練樣本本身在不同特征上分布的不均勻性。
首先要通過數(shù)據(jù)提煉出每個(gè)物流服務(wù)供應(yīng)商的特征,并對應(yīng)構(gòu)建出模型,本文選擇了4個(gè)物流服務(wù)供應(yīng)商,并把第三章選取的17個(gè)屬性作為它的特征,將之前爬取的物流信息篩選出包含4個(gè)物流服務(wù)供應(yīng)商的數(shù)據(jù)。因?yàn)檫x取了4個(gè)物流服務(wù)供應(yīng)商,那么最后將會(huì)得到4組模型,最終的選擇結(jié)果應(yīng)該在輸入各個(gè)模型后取輸出值最接近1的那個(gè)模型對應(yīng)的物流服務(wù)供應(yīng)商作為推薦供應(yīng)商。
消費(fèi)者對各個(gè)指標(biāo)針對該物流服務(wù)供應(yīng)商的評價(jià)的好壞特征值,作為算法的輸入變量X,用戶在購買過該公司物流服務(wù)最終打分作為標(biāo)簽值,作為算法的輸出Y。
當(dāng)做完上述的步驟后將數(shù)據(jù)分為兩份,一份為數(shù)據(jù)總量的60%作為A數(shù)據(jù),一份為數(shù)據(jù)總量的20%用于驗(yàn)證和新一輪在線學(xué)習(xí)數(shù)據(jù)作為B數(shù)據(jù),剩下的20%用于驗(yàn)證在線學(xué)習(xí)的效果作為C數(shù)據(jù)。拿出A數(shù)據(jù)進(jìn)行在線學(xué)習(xí)調(diào)參后得出模型M1,將B數(shù)據(jù)的XB輸入到模型中,輸出Yb與原本B中的YB進(jìn)行比對,并統(tǒng)計(jì)出正確率R1,倘若正確率高于90%,則認(rèn)為該模型沒有問題,可以有效的推薦用戶購買哪種物流服務(wù)。將B中的數(shù)據(jù)放入模型中再進(jìn)行訓(xùn)練得到模型M2,將C數(shù)據(jù)的XC輸入到模型中,輸出Yc與原本中的YC進(jìn)行比對,并統(tǒng)計(jì)出正確率R2,倘若正確率相較于R1提高1%以上,則認(rèn)為在線學(xué)習(xí)的優(yōu)化方式強(qiáng)于傳統(tǒng)離線學(xué)習(xí),就可以驗(yàn)證基于在線學(xué)習(xí)的物流服務(wù)推薦模型是可行的。
本文給出了四個(gè)參數(shù)α,β,λ1,λ2。α是全局學(xué)習(xí)速率,而β唯一的作用是為了避免在第一次遇到第i維特征時(shí)由于梯度太小而使得學(xué)習(xí)率過高的問題,一般設(shè)為1就使得這種情況下學(xué)習(xí)率與全局學(xué)習(xí)率α接近。λ1,λ2為正則化系數(shù),λ1可以使解更加稀疏,λ2使求解結(jié)果更加平滑。為控制模型的復(fù)雜度,通常在損失函數(shù)中加L1或L2范數(shù)做正則化(regularization),通過懲罰過大的參數(shù)來防止過擬合。L1范數(shù)是指向量中各個(gè)元素絕對值之和,也稱為Lasso regularization;L2范數(shù)是指向量中各個(gè)元素平方之和,也稱為Ridge Regression。L1正則化產(chǎn)生稀疏的權(quán)值,因此可用來做特征選擇,在高維數(shù)據(jù)中使用更為廣泛一些;L2正則化產(chǎn)生平滑的權(quán)值(還有一種說法認(rèn)為L2限制了解的空間,因此可以加速收斂速度,但實(shí)際作用并不大)。L1在實(shí)際中使用的更多一些,L2和L1要配合使用,增加L2會(huì)減弱L1的系數(shù)作用。
當(dāng)輸入A數(shù)據(jù)用B數(shù)據(jù)驗(yàn)證時(shí),得到的模型M1中的w的權(quán)值分別為:[-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]
此時(shí)各項(xiàng)參數(shù)分別為α=0.1,β=1.0,λ1=0.8,λ2=0.6,準(zhǔn)確率為90.83%。說明LR+FTRL構(gòu)建的模型準(zhǔn)確度可以達(dá)到要求。
當(dāng)M1中輸入數(shù)據(jù)B作為在線學(xué)習(xí)的數(shù)據(jù)時(shí),得到的模型M2中的w的權(quán)值分別為:
[-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]
此時(shí)各項(xiàng)參數(shù)分別為α=0.1,β=1.0,λ1=0.8,λ2=0.6,準(zhǔn)確率為93.59%。可見準(zhǔn)確率提升了2.76%,谷歌工程師認(rèn)為機(jī)器學(xué)習(xí)的準(zhǔn)確率只要提高1%就能說明該算法能顯著優(yōu)化機(jī)器學(xué)習(xí),基于這樣的考慮,可以認(rèn)為該算法的建立及優(yōu)化達(dá)到了要求,是可行且有顯著效果的。
本文使用Python編出LR+FTRL的程序,輸入的是已經(jīng)數(shù)值化的指標(biāo)樣本集,通過在線機(jī)器學(xué)習(xí)的方法,輸出權(quán)值和準(zhǔn)確率,選取了其他的機(jī)器學(xué)習(xí)方法與LR+FTRL算法做了對比,證明本文所選取的方法具有可實(shí)施性和優(yōu)越性。另外重點(diǎn)給出了在線學(xué)習(xí)算法與傳統(tǒng)離線學(xué)習(xí)算法的區(qū)別,并給出了準(zhǔn)確率的比較,可以從準(zhǔn)確率的比較上直觀的看出在線學(xué)習(xí)算法的準(zhǔn)確率是明顯要高于傳統(tǒng)離線學(xué)習(xí)算法的,實(shí)現(xiàn)了基于FTRL算法的消費(fèi)者精準(zhǔn)畫像求解。