【機(jī)器學(xué)習(xí)】那些決定模型上限的操作
????在實(shí)踐中,特征工程目前依然是建模過(guò)程中最為核心的一塊,也是提升最快最簡(jiǎn)單的部分;有些公司的搜索推薦團(tuán)隊(duì)只使用了embedding相關(guān)的信息,并希望通過(guò)embedding的交叉或者序列等信息建模得到最終的推薦結(jié)果,并沒(méi)有加入非常多人為構(gòu)建的特征。
????但在很多的場(chǎng)景下,特征工程還是非常重要的。尤其是在有好幾年數(shù)據(jù)積累的場(chǎng)景中,數(shù)據(jù)量是非常大的,甚至可以上PB級(jí)別,在建模的過(guò)程中基本上是不大可能把所有的數(shù)據(jù)全部使用上,我們一般會(huì)選擇使用最新的數(shù)據(jù),但為了盡可能不浪費(fèi)老的數(shù)據(jù)信息,會(huì)選擇通過(guò)特征工程的方式從老的數(shù)據(jù)集中提取盡可能多的信息。為模型帶來(lái)提升,而在我們的實(shí)踐中,也發(fā)現(xiàn),特征工程帶來(lái)的提升還是非常大的。

特征歸一化
????為了消除數(shù)據(jù)特征之間的量綱影響,讓不同特征之間具有可比性,需要對(duì)特征進(jìn)行歸一化處理。常用的的歸一化方法有Max-Min歸一化、Z-Score歸一化。
????在實(shí)際應(yīng)用中,特征歸一化并不是萬(wàn)能的,但線性回歸、邏輯回歸、SVM、NN等模型需要通過(guò)梯度下降發(fā)求解的模型通常是需要進(jìn)行歸一化的。
類(lèi)型特征
類(lèi)別特征常見(jiàn)的策處理略:
Target Encoding
Count Encoding
Categorifying
Target Encoding
Count Encoding
Categorifying
文本特征
????詳細(xì)的文本特征可以參考煉丹筆記往期干貨《數(shù)據(jù)挖掘20大文本特征》。
expansion編碼
consolidation編碼
文本的長(zhǎng)度特征
標(biāo)點(diǎn)符號(hào)特征
特殊詞匯特征
詞頻特征
TF-IDF特征
LDA特征

????上面內(nèi)容更多的是一些基礎(chǔ)的特征處理技巧。很多較為傳統(tǒng),如果轉(zhuǎn)化業(yè)務(wù)中該如何構(gòu)建特征工程呢?此處我們描述一套特征框架,過(guò)多的細(xì)節(jié)不闡述,畢竟是很多大佬打磨了很多從非常多的實(shí)踐中實(shí)踐得到的,而且也不一定各種業(yè)務(wù)都會(huì)100%有效。
首先我們建模的目的是為了預(yù)估:

其中,
是用戶(hù)側(cè)的特征; 是商品側(cè)的特征; 是上下文相關(guān)的特征,例如時(shí)間,訪問(wèn)使用的app等; 是query相關(guān)的特征(在搜索問(wèn)題中較為常見(jiàn)) 表示用戶(hù)支付; 是候選商品的個(gè)數(shù);
找到所有商品中最有可能被購(gòu)買(mǎi)的那一件,然后曝光給用戶(hù)。從上面的定義中,我們可以發(fā)現(xiàn),特征至少可以劃分為下面的幾塊。
2.1?用戶(hù)相關(guān)的特征
這塊特征實(shí)在是有些多,還有一些專(zhuān)門(mén)做用戶(hù)畫(huà)像的組。包含的特征有很多:
用戶(hù)的固定屬性特征,比如:用戶(hù)的性別、年齡、身高其它信息; 用戶(hù)的歷史統(tǒng)計(jì)特征,比如:過(guò)去某段時(shí)間的購(gòu)買(mǎi)率、點(diǎn)擊率、消費(fèi)次數(shù)、平均每次消費(fèi)額、平均消費(fèi)間隔、最近一次消費(fèi)的時(shí)間等等。 用戶(hù)的其它特征,比如:喜好特征, 實(shí)時(shí)行為建模,更細(xì)粒度的對(duì)當(dāng)前請(qǐng)求下的興趣刻畫(huà)與描述等等;
這塊特征非常多,很多組都有一套自己的特征組。
2.2?商品相關(guān)的特征
和用戶(hù)的特征類(lèi)似,商品的特征也是海量的:
商品的固定屬性特征,比如:商品的上架時(shí)間、商品的體積、商品的價(jià)格、是否是當(dāng)季商品、是否促銷(xiāo)、是否有優(yōu)惠活動(dòng)等等; 商品的歷史統(tǒng)計(jì)特征,比如:商品的歷史點(diǎn)擊率、商品的曝光次數(shù)、商品的加購(gòu)率、商品的購(gòu)買(mǎi)率、商品上次被購(gòu)買(mǎi)的時(shí)間等等; 商品的其它特征,比如:商品是否有代言,代言人,代言人的粉絲情況等等;
這塊特征非常多,很多組都有一套自己的特征組。
2.3 Query相關(guān)的特征
這塊在搜索相關(guān)的競(jìng)賽中,也是非常多的,參見(jiàn)阿里媽媽IJCAI2018年的競(jìng)賽:
Query的固定屬性特征,比如:Query的embedding,Query中關(guān)鍵詞的統(tǒng)計(jì)信息; Query的歷史統(tǒng)計(jì)特征,比如:Query的歷史出現(xiàn)次數(shù),Query的歷史點(diǎn)擊率,購(gòu)買(mǎi)率等等; Query的其它特征:近義詞的次數(shù)等;
????這塊的特征和用戶(hù)以及商品是類(lèi)似的,也是自成一套。
2.4 上下文特征
地點(diǎn)、時(shí)間、網(wǎng)絡(luò)信號(hào)形式、使用的app等信息;
2.5 交叉特征
????特征交叉這塊是探討最多的,因?yàn)榻徊嫘畔?shí)在是太多了,從很多大佬的分享以及相關(guān)的數(shù)據(jù)競(jìng)賽最后的分享方案中,我們也發(fā)現(xiàn):短短的幾個(gè)原始字段在進(jìn)行交叉之后都可以得到成百上千的特征,更別說(shuō)是在工業(yè)界了,工業(yè)界的字段都有幾百個(gè),甚至?xí)猩锨€(gè),所以這塊要是單純的做特征交叉,可以枚舉幾個(gè)月甚至幾年。
????從kaggle的諸多特征專(zhuān)家寫(xiě)的write-ups來(lái)看,特征又可以分為:二階的交叉,三階的交叉,四階的交叉......
????這么做下去,幾乎是一個(gè)天文數(shù)字,再加上這么大的數(shù)據(jù)量,我們對(duì)每個(gè)新構(gòu)建的特征進(jìn)行驗(yàn)證,耗費(fèi)的資源也將會(huì)是一個(gè)天文數(shù)字,而且存儲(chǔ)資源也是無(wú)法接受的,舉個(gè)最簡(jiǎn)單的例子,我們做用戶(hù)和商品的二階交叉特征,
在很多朋友,用戶(hù)都是上千萬(wàn)甚至是上億的,商品的個(gè)數(shù)更不用說(shuō)了,最少也是上百萬(wàn)的,所以簡(jiǎn)單的交叉可能會(huì)帶來(lái)上億*上百萬(wàn)的個(gè)數(shù),當(dāng)然實(shí)踐中肯定沒(méi)這么多,如果從存儲(chǔ)的代價(jià)角度看,這將會(huì)是一個(gè)非常巨大的負(fù)擔(dān)。 從上面的角度來(lái)看,做用戶(hù)和Query和商品的三階交叉將會(huì)是一種巨大的負(fù)擔(dān)。
????大家都知道這些特征是非常有用的,但是直接做交叉的代價(jià)又是巨大的,怎么辦呢?我們可以使用下面的兩個(gè)技巧來(lái)進(jìn)行處理。
1.Top截?cái)?/strong>:
????這幾乎在所有的大數(shù)據(jù)競(jìng)賽中都有提到,例如IJCAI18年的競(jìng)賽就是,在我們的數(shù)據(jù)量非常大的時(shí)候,我們會(huì)選擇保留排序之后TopN的信息,例如:
保留用戶(hù)最常購(gòu)買(mǎi)的TopN個(gè)Item的點(diǎn)擊率,購(gòu)買(mǎi)率等等; 保留用戶(hù)最常訪問(wèn)的TopN個(gè)Query的點(diǎn)擊率,購(gòu)買(mǎi)率等等; 保留Query下最常購(gòu)買(mǎi)的TopN個(gè)Item的點(diǎn)擊率,購(gòu)買(mǎi)率等等; ...
2.轉(zhuǎn)變?yōu)榉植急硎?/strong>:
????該技巧也主要來(lái)源于推薦相關(guān)的競(jìng)賽,以及AAA21年最新的競(jìng)賽分享中,大致的思路是將原先的直接統(tǒng)計(jì)user+item的信息轉(zhuǎn)而去統(tǒng)計(jì)其它的特征:
先統(tǒng)計(jì)商品的歷史點(diǎn)擊率,然后拼接到商品信息中,當(dāng)做商品的統(tǒng)計(jì)信息,然后再統(tǒng)計(jì)用戶(hù)關(guān)于商品的這些統(tǒng)計(jì)信息的統(tǒng)計(jì)特征。
????該方法被稱(chēng)之為用商品的點(diǎn)擊/購(gòu)買(mǎi)分布來(lái)表示用戶(hù)。類(lèi)似的,商品也可以用用戶(hù)來(lái)表示,即。
先統(tǒng)計(jì)用戶(hù)的歷史點(diǎn)擊率,然后拼接到用戶(hù)信息中,當(dāng)做用戶(hù)的統(tǒng)計(jì)信息,然后再統(tǒng)計(jì)商品關(guān)于用戶(hù)的這些統(tǒng)計(jì)信息的統(tǒng)計(jì)特征。
????這種用交叉信息的一側(cè)主體的統(tǒng)計(jì)信息來(lái)表示另外一側(cè)主體的策略也是極其方便的一種策略。
2.6 其它新技術(shù)帶來(lái)的特征
????這塊的特征如果從技術(shù)的角度來(lái)看都是可以被包含到上面的幾大類(lèi)中的,但是因?yàn)檫@些特征是通過(guò)最新的一些硬件或者其它的技術(shù)發(fā)展帶來(lái)的,例如邊緣計(jì)算等,此處我們將其單獨(dú)列舉出來(lái)作為一節(jié)。
????最典型的一些特征就是阿里巴巴EdgeRec文章中所列舉的:

2.7 上游特征
????這個(gè)在KDD20的競(jìng)賽中有看到,大致就是利用模型上游的很多統(tǒng)計(jì)或者其它模型輸出的一些特征,每個(gè)公司產(chǎn)出的可能不一樣,此處不做過(guò)多描述。
2.8 實(shí)驗(yàn)小結(jié)
????上面的特征工程只是冰山一角,因?yàn)殡S著業(yè)務(wù)相關(guān)的數(shù)據(jù)集的擴(kuò)充,肯定也會(huì)涉及到非常多其它相關(guān)的特征。比如與圖片相關(guān)的特征,用戶(hù)購(gòu)買(mǎi)商品之后對(duì)于商品的文字評(píng)價(jià)等等諸多的信息,這些都可以作為商品或者用戶(hù)商品相關(guān)的信息加入模型。
????整體來(lái)說(shuō),特征作為模型的輸入能帶來(lái)非常大的幫助,所以還是非常重要的,我們通過(guò)特征工程的方式能在原先的基礎(chǔ)上帶來(lái)非常大的提升。

往期精彩回顧 本站qq群554839127,加入微信群請(qǐng)掃碼:
