本發(fā)明屬于人工智能技術領域,尤其涉及一種自動多閥值特征過濾方法及裝置。
背景技術:
超大規(guī)模機器學習算法是當前互聯(lián)網公司實現搜索查詢結果排序、互聯(lián)網廣告點擊率預測、商品個性化推薦、語音識別、智能問答等系統(tǒng)的基礎技術支撐。不斷擴大的數據規(guī)模在提升算法應用效果的同時,也對大規(guī)模數據處理帶來了極大的理論和工程實踐的挑戰(zhàn)。高效的數據處理成為互聯(lián)網大數據應用的核心技術。
互聯(lián)網數據通常都非常稀疏,所以在使用互聯(lián)網數據對機器學習模型進行訓練后,會得到稀疏模型,而且稀疏模型方便后續(xù)存儲和預測。在極度稀疏的互聯(lián)網數據訓練中應用高效的特征過濾算法,可以有效地去除不相關的特征和冗余特征,提高學習算法的泛化性能和運行效率,對于訓練機器學習模型具有較大的幫助。
互聯(lián)網公司用于機器學習模型訓練的大規(guī)模數據,一般由若干樣本數據組成,每個樣本由固定數目的特征集合組成。以下是一個例子:
一個樣本特征:{feature_1,feature_2,…,feature_n};
由于互聯(lián)網大數據樣本特征非常稀疏,大部分特征(feature)都是0,所以可以應用某種機制把某些特征過濾掉,不參與后續(xù)的模型訓練,這樣將會極大的提升機器學習模型的訓練效率。
現有的特征過濾方法通常通過人工設置一個固定的閾值進行過濾,例如:
設置一個固定的過濾閾值r;
根據樣本數據算得梯度g;
根據某維梯度值gi和其他模型參數算得一個值x,比較x與r的大小,如果x小于r則過濾掉該維特征。
可見現有的特征過濾方法中用于過濾的閾值需要人工指定,所以過濾的效果強依賴人的經驗,過濾效果不穩(wěn)定,因為過濾的閾值不能根據樣本數據自動調整,導致訓練得到的模型預測精度降低;并且閾值只有一個而且是固定的,不能根據訓練的情況動態(tài)調整閾值,所以不能很好地過濾所有特征。由于閾值的大小不好確定,如果閾值選擇不好,會導致訓練得到的機器學習模型不可靠,預測精度降低。
技術實現要素:
本發(fā)明的目的是提供一種自動多閥值特征過濾方法及裝置,以解決現有技術的特征過濾方法只能使用固定閥值進行特征過濾,造成訓練效率不高及訓練得到的機器學習模型不夠精確的問題。
為了實現上述目的,本發(fā)明技術方案如下:
一種自動多閥值特征過濾方法,用于在機器學習模型訓練時對樣本數據進行特征過濾,所述特征過濾方法包括:
根據上一輪迭代的結果計算本輪迭代的特征過濾閾值及特征相關值;
根據計算得到的特征過濾閾值和特征相關值,對樣本進行特征過濾。
進一步地,所述特征過濾閥值為樣本數據中各維度特征在上一輪迭代時得到的梯度中最大梯度與樣本數據數量的比值。
進一步地,所述根據上一輪迭代的結果計算本輪迭代的特征相關值,包括:
根據上一輪迭代的結果計算本輪迭代樣本數據各維度特征的梯度;
根據各維度特征的梯度計算對應的特征相關值。
進一步地,所述各維度特征的特征相關值為各維度的梯度的線性函數。
進一步地,所述根據計算得到的特征過濾閾值和特征相關值,對樣本進行特征過濾,包括:
如果各維度特征相關值小于本維度特征過濾閾值,則本維特征被過濾掉,不參與后續(xù)迭代計算,否則保留本維特征,繼續(xù)參與后續(xù)迭代計算。
本發(fā)明同時提出了一種自動多閥值特征過濾裝置,用于在機器學習模型訓練時對樣本數據進行特征過濾,所述特征過濾裝置包括:
計算模塊,用于根據上一輪迭代的結果計算本輪迭代的特征過濾閾值及特征相關值;
特征過濾模塊,用于根據計算得到的特征過濾閾值和特征相關值,對樣本進行特征過濾。
進一步地,所述特征過濾閥值為樣本數據中各維度特征在上一輪迭代時得到的梯度中最大梯度與樣本數據數量的比值。
進一步地,所述計算模塊在根據上一輪迭代的結果計算本輪迭代的特征相關值時,執(zhí)行如下步驟:
根據上一輪迭代的結果計算本輪迭代樣本數據各維度特征的梯度;
根據各維度特征的梯度計算對應的特征相關值。
進一步地,所述各維度特征的特征相關值為各維度的梯度的線性函數。
進一步地,所述特征過濾模塊根據計算得到的特征過濾閾值和特征相關值,對樣本進行特征過濾,執(zhí)行如下步驟:
如果各維度特征相關值小于本維度特征過濾閾值,則本維特征被過濾掉,不參與后續(xù)迭代計算,否則保留本維特征,繼續(xù)參與后續(xù)迭代計算。
本發(fā)明提出了一種自動多閥值特征過濾方法及裝置,突破了現有人工設置單閾值進行特征過濾的方式,可以根據每批樣本數據的迭代結果自動計算出多個閾值來過濾特征,極大的提升了訓練速度和訓練得到的機器學習模型的精準度。
附圖說明
圖1為本發(fā)明自動多閥值特征過濾方法流程圖;
圖2為本發(fā)明自動多閥值特征過濾裝置結構示意圖。
具體實施方式
下面結合附圖和實施例對本發(fā)明技術方案做進一步詳細說明,以下實施例不構成對本發(fā)明的限定。
互聯(lián)網業(yè)務中有大量原始用戶數據,比如在廣告點擊和商品推薦業(yè)務中為了提升點擊率和商品推薦的精度會使用大量原始樣本數據訓練一個機器學習模型。樣本數據有多維特征,比如價格、商品類目等,這些特征對效果的提升不一樣,有的特征可能對效果沒有提升作用,可以把這個特征過濾掉,而有效果的特征會保留下來,這些保留下來的特征最后通過訓練會得到不同的權重,這些權重就是得到的機器學習模型對應的模型參數。在機器學習模型的訓練過程中,需要通過不斷迭代計算來得到機器學習模型對應的模型參數。本發(fā)明的總體思路就是在機器學習模型訓練的每一輪迭代的過程中,根據當前模型參數來計算特征過濾值,并使用計算得到的特征過濾值來進行特征過濾。
如圖1所示,本實施例自動多閥值特征過濾方法,包括:
步驟s1、根據上一輪迭代的結果計算本輪迭代的特征過濾閾值及特征相關值。
本實施例以一個典型的機器學習過程為例,假設機器學習模型的估計函數為:
hθ(x)=θ0+θ1x1+…+θnxn公式1
其中θ為模型參數,x為樣本特征,兩者都為矢量,xi為第i維特征。
在機器學習中還定義了損失函數j(θ)來評估θ是否比較好,調整θ以使得j(θ)取得最小值。為了達到這個目的,需要根據最小二乘法或梯度下降法進行迭代直到最終收斂取得一個θ值使得j(θ)最小。
本實施例以梯度下降法為例,計算第k輪梯度gk的公式如下:
關于機器學習模型的訓練過程以及梯度下降方法這里不再贅述,本實施例利用上述過程中迭代結果來計算特征過濾閾值。具體計算方法如下:
假設第k輪迭代的特征過濾閾值為rk,則:
其中,l為樣本數量,g(k-1)i為第k-1輪第i維特征對應的梯度值。
需要說明的是,本實施例根據原始樣本數據樣本數量l以及梯度gk計 算出特征過濾閥值rk,該計算可以采用多種算法實現,并不依賴某種特定的算法。例如還可以根據梯度gk以及樣本特征的維度來進行計算,或者是根據梯度gk以及樣本特征的顯著性參數來進行計算,這里不一一贅述。
同理,本實施例還需要計算出第k輪第i維特征對應的特征相關值ski,計算公式如下:
ski=gki+δ公式4
其中,δ為固定常數??梢姳緦嵤├卣鬟^濾閾值rk根據上一輪迭代的梯度g(k-1)i來計算,而特征相關值根據本輪的梯度gki來計算,各維度特征的特征相關值為各維度的梯度的線性函數。
為此需要根據公式2先計算出本輪迭代的梯度gk,關于梯度的計算,這里不再贅述。在第一輪迭代的時候,由于沒有上一輪的梯度數據,不進行特征過濾。
需要說明的是,本實施例特征過濾閾值與特征相關值的計算參數需要統(tǒng)一,即特征過濾閾值根據梯度來計算,則特征相關值也根據梯度來計算,但是具體的計算公式根據訓練模型的不同,可以設計的不一樣,即使是訓練相同模型也可以設計的不一樣。比如在邏輯斯特回歸(lr)模型訓練中,固定閾值過濾特征的kkt方法,計算相關值的公式就是:si=gi+δ。本實施例特征相關值與此不同之處在于,對每輪迭代計算不同的特征相關值。本發(fā)明并不限于具體的特征過濾閾值與特征相關值的計算方法。
步驟s2、根據計算得到的特征過濾閾值和特征相關值,對樣本進行特征過濾。
步驟s1已經計算得到特征過濾閾值和特征相關值,本步驟通過比較特征過濾閾值gki和過濾閾值ski之間的大小,對樣本進行特征過濾。具體地:
如果ski小于gki,則第i維特征被過濾掉,不參與后續(xù)計算,否則保留第i維特征,繼續(xù)參與后續(xù)計算。
通過特征過濾后,原始樣本數據將有部分維度的特征被過濾掉,過濾完成后的數據將作為新的樣本數據導入系統(tǒng)進行下一輪迭代,直到達到迭代終止條件。
需要說明的是,由于特征過濾閥值gki以及樣本數據的每維特征的特征相關值ski都和梯度gki相關,而梯度gki是根據樣本數據、損失函數和模型參數算得的,每輪迭代中的樣本數據和模型參數都不同,因此每輪迭代中算出來的特征過濾閥值和樣本數據的每維特征的相關值ski都不同。
容易理解的是,隨著迭代次數的增加,被過濾掉的無效特征會越來越多,每輪迭代中計算出來的特征過濾閥值也會越來越精確,這會極大地加快訓練的速度。
關于迭代計算的終止條件,根據具體的算法而定,例如完成上一輪迭代后不再有新的特征被過濾掉,或者迭代次數超過設定的最大值,這里不再贅述。迭代完成后保留下來的特征最后通過訓練會得到不同的模型參數,根據這些模型參數就得到機器學習模型。
如圖2所示,與上述方法對應地,本實施例同時提出了一種自動多閥值特征過濾裝置,用于在機器學習模型訓練時對樣本數據進行特征過濾,該裝置包括:
計算模塊,用于根據上一輪迭代的結果計算本輪迭代的特征過濾閾值及特征相關值;
特征過濾模塊,用于根據計算得到的特征過濾閾值和特征相關值,對樣本進行特征過濾。
在本實施例中,特征過濾閥值為樣本數據中各維度特征在上一輪迭代時得到的梯度中最大梯度與樣本數據數量的比值。計算模塊根據上一輪迭代的結果計算本輪迭代的特征過濾閾值及特征相關值,其中計算模塊在根據上一輪迭代的結果計算本輪迭代的特征相關值時,執(zhí)行如下步驟:
根據上一輪迭代的結果計算本輪迭代樣本數據各維度特征的梯度;
根據各維度特征的梯度計算對應的特征相關值。
本實施例第k輪第i維特征對應的特征相關值ski根據公式4來進行計算,各維度特征的特征相關值為各維度的梯度的線性函數。
在本實施例中,特征過濾模塊根據計算得到的特征過濾閾值和特征相關值,對樣本進行特征過濾,執(zhí)行如下步驟:
如果各維度特征相關值小于本維度特征過濾閾值,則本維特征被過濾 掉,不參與后續(xù)迭代計算,否則保留本維特征,繼續(xù)參與后續(xù)迭代計算。
以上實施例僅用以說明本發(fā)明的技術方案而非對其進行限制,在不背離本發(fā)明精神及其實質的情況下,熟悉本領域的技術人員當可根據本發(fā)明作出各種相應的改變和變形,但這些相應的改變和變形都應屬于本發(fā)明所附的權利要求的保護范圍。