策略產(chǎn)品必知系列之一文詳解“特征工程”

2 評(píng)論 5047 瀏覽 21 收藏 17 分鐘

本篇文章作者分享策略產(chǎn)品在特征工程上需要了解的原則和工作方法。特征工程在推薦系統(tǒng)中至關(guān)重要,需要遵循幾個(gè)基本原則:包括正確理解問題背景和業(yè)務(wù)需求、理解數(shù)據(jù)和特征的含義、保證數(shù)據(jù)的穩(wěn)定性和完整性等。希望通過本篇文章能對(duì)你有所幫助。

從策略產(chǎn)品的角度來審視特征工程,在算法工程師 & 策略產(chǎn)品屆有一句話叫做“Garbage in garbage out (垃圾進(jìn),垃圾出)”。這句話深刻的解釋了特征與數(shù)據(jù)對(duì)于深度學(xué)習(xí)模型的重要性。機(jī)器學(xué)習(xí)模型的能力邊界就在于對(duì)數(shù)據(jù)的擬合泛化,那么數(shù)據(jù)及其表達(dá)數(shù)據(jù)的特征就決定了起學(xué)習(xí)模型效果的上限。

數(shù)據(jù)與特征工程決定了模型的上限,改進(jìn)算法只不過是逼近這個(gè)上限而已。

今天Arthur就給大家介紹一下關(guān)于推薦系統(tǒng)的特征工程,幫助大家從全貌了解策略產(chǎn)品在特征工程需要捻熟于心的關(guān)鍵原則工作方法。

本文分為上下兩篇,上篇主要提綱挈領(lǐng)的介紹特征工程的定義原則、重要特征類型以及常用的特征處理方法;下篇會(huì)著重的講解策略產(chǎn)品實(shí)用的特征數(shù)據(jù)處理的工作內(nèi)容。

具體分為以下幾點(diǎn)講述:

  1. 什么是特征工程、特征工程的基本工作原則。
  2. 有哪些常用的特征類別。
  3. 常見的特征數(shù)據(jù)類型與處理辦法。
  4. 特征的選擇。

一、什么是特征工程、構(gòu)建特征工程的基本原則是什么

特征工程(feature engineering)定義:特征的本質(zhì)其實(shí)就是對(duì)某個(gè)行為過程相關(guān)信息的抽象表達(dá)

推薦過程某個(gè)行為必須轉(zhuǎn)化成某種數(shù)字形式才能被機(jī)器學(xué)習(xí)模型學(xué)習(xí)。所以為了完成這種轉(zhuǎn)化,就必須把這種行為過程的信息以特征形式抽取出來,用多個(gè)維度上的特征表達(dá)這一行為。

存在的問題:從具體行為轉(zhuǎn)化成抽象的特征,過程必然會(huì)造成信息損失。這個(gè)過程中具體有兩個(gè)問題:

  1. 因?yàn)榫唧w的推薦行為和場景包含大量原始的場景、圖片和狀態(tài)信息,保存所有的信息存儲(chǔ)空間過大,現(xiàn)實(shí)中無法滿足。
  2. 具體的推薦場景也包含大量榮譽(yù)無用的信息,都考慮進(jìn)來會(huì)損害模型的泛化能力。

特征工程構(gòu)建基本原則:基于以上存在的問題,在特征工程構(gòu)建中的基本原則為:盡可能讓特征工程抽取的一組特征能夠保留推薦環(huán)境以及用戶行為過程中的有用信息,盡量摒棄冗余信息

舉個(gè)垂直場景推薦系統(tǒng)中具象化的例子便于大家理解,在推薦系統(tǒng)中對(duì)于書本推薦有哪些重要的因素呢?

Arthur枚舉了一下幾種類型:

推薦系統(tǒng)當(dāng)中對(duì)于書本推薦的重要藝術(shù)

可以從上圖中看出,在抽取特征過程當(dāng)中,必然存在信息的損失。例如“當(dāng)時(shí)的心情”就從要素中被舍棄了;再比如,用戶觀看歷史推斷用戶偏好也會(huì)存在一定的信息丟失情況。

因此,在已有的、可獲取的數(shù)據(jù)基礎(chǔ)上,“盡量”保留有用信息是是實(shí)現(xiàn)特征工程的原則。

二、推薦系統(tǒng)常用的特征類別

推薦系統(tǒng)會(huì)使用到各個(gè)維度的特征信息。而不同的特征信息對(duì)于不同的推薦系統(tǒng)所帶來的增益效果大不相同,并且不同的業(yè)務(wù)抽取特征的時(shí)候權(quán)重也大相徑庭。

例如電商系統(tǒng)更加關(guān)注用戶的屬性特征、用戶點(diǎn)擊、加購商品類型,其中加購相對(duì)來說對(duì)于最終成交比點(diǎn)擊行為權(quán)重更大。而新聞推薦更加關(guān)注用戶關(guān)注的新聞?lì)悇e,所在LBS的地域信息等等。

因此我將推薦系統(tǒng)的常用特征進(jìn)行枚舉,提供大家在構(gòu)建特征工程時(shí)候的選擇,該部分與之前介紹的定向類型有點(diǎn)相似。

1. 用戶行為數(shù)據(jù)類型

用戶行為數(shù)據(jù)是推薦系統(tǒng)最常用、也是最為關(guān)鍵的數(shù)據(jù),因?yàn)橛脩舻臐撛谂d趣、用戶對(duì)物品的真實(shí)評(píng)價(jià)都包含在用戶的行為歷史當(dāng)中。

一般用戶行為特征包含顯性反饋行為(explicit feedback)隱性反饋行為(implicit feedback)。在不同業(yè)務(wù)場景中,用不同方式體現(xiàn)。

各業(yè)務(wù)場景中的顯性和隱性反饋行為

當(dāng)前推薦系統(tǒng)的發(fā)展中,隱性反饋行為越來越重要,主要原因是顯性反饋的收集難度更大,數(shù)據(jù)量也比較小。在深度學(xué)習(xí)模型對(duì)于數(shù)據(jù)要求越來越大的背景下,如果只是用線性反饋的數(shù)據(jù)不足以支持推薦系統(tǒng)訓(xùn)練過程中直到收斂。

所以,能夠反映用戶行為特點(diǎn)的隱性反饋行為是目前特征挖掘的重點(diǎn)。

2. 用戶關(guān)系數(shù)據(jù)類型

互聯(lián)網(wǎng)本質(zhì)上是人和人、人和信息之間的鏈接。“物以類聚,人以群分”其實(shí)就是用戶關(guān)系數(shù)據(jù)最好的體現(xiàn),同時(shí)也是推薦系統(tǒng)利用的有價(jià)值信息。

用戶關(guān)系類型分為“顯性”和“隱性”,又可以稱之為“強(qiáng)關(guān)系”與“弱關(guān)系”。

  • 強(qiáng)關(guān)系類型:用戶可以通過用戶之間的“關(guān)注”、“好友關(guān)系”,以及“通訊錄授權(quán)”建立“強(qiáng)關(guān)系”聯(lián)系。
  • 弱關(guān)系類型:通過“相互點(diǎn)贊”、“同處在一個(gè)社區(qū)”,甚至是“同看一部電影”來建立“弱關(guān)系”的聯(lián)系。

3. 屬性、標(biāo)簽數(shù)據(jù)類型

屬性、標(biāo)簽數(shù)據(jù)類型本質(zhì)上都是直接描述用戶或者物品客觀特征。標(biāo)簽和屬性的主體可以是用戶,也可以是物品,他們的來源非常多樣化。

大體上分為以下幾類:

用戶屬性、物品屬性以及標(biāo)簽數(shù)據(jù)是屬于最重要的描述型數(shù)據(jù)。

成熟的公司會(huì)建立一套用戶和物品的標(biāo)簽體系,有專門的團(tuán)隊(duì)維護(hù)。典型的例子就是電商公司的商品分類體系,同樣這一套分類也會(huì)用于搜索召回策略中的實(shí)體識(shí)別當(dāng)中。

阿里云中關(guān)于query詞的分類

在推薦系統(tǒng)當(dāng)中使用屬性、標(biāo)簽類數(shù)據(jù),一般都是通過multi-hot編碼方式轉(zhuǎn)化成特征向量。一些重要的屬性標(biāo)簽類特征也可以先轉(zhuǎn)化成Embedding,再輸入推薦模型。

4. 內(nèi)容類數(shù)據(jù)

內(nèi)容類型的數(shù)據(jù)可以看做是標(biāo)簽類型的衍生,同樣也是描述用戶和物品的數(shù)據(jù)。但是相比較標(biāo)簽數(shù)據(jù),內(nèi)容類型的數(shù)據(jù)往往都是大段的描述型文字、圖片,甚至是視頻。

一般來說,內(nèi)容類數(shù)據(jù)無法直接轉(zhuǎn)化成推薦系統(tǒng)可以“消化”的特征,需要通過自然語言處理、計(jì)算機(jī)視覺等手段提取關(guān)鍵的內(nèi)容特征,再輸入到推薦系統(tǒng)。

實(shí)體識(shí)別

例如,在圖片類、食品類或者帶有圖片的信息流場景中,往往會(huì)使用計(jì)算機(jī)視覺模型進(jìn)行目標(biāo)檢測,抽取圖片特征,再把特征轉(zhuǎn)化為標(biāo)簽類數(shù)據(jù)提供給推薦系統(tǒng)。

5. 上下文Context信息數(shù)據(jù)

上下文信息表示的是描述推薦行為產(chǎn)生的場景信息。最常用的就是利用“時(shí)間”和通過GPS獲取到的“地點(diǎn)”信息。

根據(jù)推薦場景的不同,上下文信息的范圍非常的廣,包括地點(diǎn)、季節(jié)、時(shí)間、是否節(jié)假日、天氣濕度、社會(huì)大事件等等。

引入上下文信息的目的是盡可能保證推薦行為發(fā)生推薦場景的實(shí)時(shí)性。

典型的例子是:在美團(tuán)外賣APP場景中、臨近中午12-2點(diǎn)會(huì)推薦用戶愛吃的外賣食物,到了下午3-5點(diǎn),可能用戶吃過飯了那么就會(huì)更加傾向于甜點(diǎn)、下午茶(奶茶、飲料等)。

如果不引用上下文特征,則推薦系統(tǒng)無法捕捉到這些有價(jià)值的實(shí)時(shí)信息。

6. 組合類特征

組合類特征指代將不同的特征類型進(jìn)行組合后的得到的新特征。最常見的就是“年齡+性別”組成人口屬性分段特征(segment)。

在早期的推薦系統(tǒng)當(dāng)中,推薦模型(比如說邏輯回歸LR)是不具備特征組合的能力。

隨著神對(duì)學(xué)習(xí)推薦系統(tǒng)的提出,組合類特征不一定通過人工組合、人工篩選的方法選出,還可以交給模型自行處理。

例如GBDT+LR的形式就是講特征工程模型化來處理。

三、常見的特征數(shù)據(jù)類型與特征處理方法

對(duì)于推薦系統(tǒng)來說,模型的輸入往往是數(shù)字組成的特征向量。有“年齡”、“播放時(shí)長”、“歷史點(diǎn)擊率CTR”這些可以由數(shù)字表達(dá)的特征,可以自然成為特征向量中的維度。

更多的特征來說,像是用戶的性別、觀看歷史也需要轉(zhuǎn)化成為數(shù)字特征向量。

因此需要從連續(xù)型特征和類別型特征兩個(gè)角度來介紹特征處理方法。

1. 連續(xù)型特征

連續(xù)型特征的典型例子就是用戶年齡、播放時(shí)長以及物品發(fā)布時(shí)間等統(tǒng)計(jì)類型特征。

對(duì)于這一類特征的處理,最常見的就是歸一化、離散化、加非線性函數(shù)等手段。

1)歸一化

統(tǒng)一各個(gè)特征的量綱,將連續(xù)值特征歸一到[0,1]之間。也可以做0均值的歸一化,即將原始數(shù)據(jù)歸一化為均值為0、方差為1的數(shù)據(jù)集。

  • 解決方案:將所有的數(shù)據(jù)映射到同一個(gè)尺度當(dāng)中。
  • 最值歸一化:把所有的數(shù)據(jù)映射到0-1之間。

2)離散化

通過分位數(shù)的形式將原來的連續(xù)值進(jìn)行分桶,最終形成離散值的過程。

離散化的主要目的是放置連續(xù)紙帶來的過擬合現(xiàn)象以及特征值分布不均勻情況。

經(jīng)過離散化處理的連續(xù)型特征和經(jīng)過One-hot處理的類別型特征一樣,都是以特征向量的形式輸入特征模型當(dāng)中的。

3)加非線性函數(shù)

加非線性函數(shù)的處理方法,就是直接把原來的特征通過非線性函數(shù)做變換,然后把原來的特征和變換后的特征一起加入模型進(jìn)行訓(xùn)練的過程。

加入非線性函數(shù)的目的為了更好的捕獲特征與優(yōu)化目標(biāo)之間的非線性關(guān)系。

常用的非線性函數(shù)包括以下幾類:

2. 類別型特征

類別型特征典型的例子:用戶歷史行為數(shù)據(jù)、屬性標(biāo)簽類數(shù)據(jù)等。其原始表現(xiàn)為一個(gè)類別或者一個(gè)id。

這類特征最常用的方法就是使用one-hot編碼將其轉(zhuǎn)化成為一個(gè)數(shù)值向量,在one-hot編碼基礎(chǔ)上,面對(duì)同一個(gè)特征域或者非唯一類別選擇,還可以采用multi-hot編碼。

歷史行為序列類、標(biāo)簽特征類數(shù)據(jù)來說,用戶往往會(huì)與多個(gè)物品產(chǎn)生交互行為,或者被打上多個(gè)同類別標(biāo)簽,這是最常用的特征向量生成方式就是轉(zhuǎn)化為multi-hot編碼。

舉個(gè)例子,帶上網(wǎng)站共有1000個(gè)商品,用戶購買了其中10種,那么用戶的歷史行為就編程1000維的數(shù)值向量。其中僅有10個(gè)商品數(shù)值是1,其余的都是0,這就是multi-hot編碼。

對(duì)類別進(jìn)行One-hot編碼或者是multi-hot編碼主要的問題就是特征向量的維度過大,特征過于稀疏的問題,這容易導(dǎo)致模型欠擬合,模型的權(quán)重參數(shù)的數(shù)量過多,導(dǎo)致模型收斂也會(huì)很慢。

所以在Embedding技術(shù)成熟之后,被廣泛應(yīng)用在類別特征的處理之上?,F(xiàn)將類別特征編碼成稠密Embedding向量,再和其他的特征組合,最終形成輸入特征向量。

四、特征選擇

特征選擇是指為了構(gòu)建模型而選擇相關(guān)特征子集的過程。特征選擇的目的有三個(gè):

  1. 簡化模型。使模型更易于研究人員和用戶的理解。 可解釋性不僅讓我們對(duì)模型效果的穩(wěn)定性有更多的把握,而且也能為業(yè)務(wù)運(yùn)營等工作提供指引和決策支持。
  2. 改善性能。特征選擇的另一個(gè)作用就是節(jié)省存儲(chǔ)和計(jì)算QPS耗時(shí)開銷。
  3. 改善通用性。降低過擬合風(fēng)險(xiǎn)。 特征的增多會(huì)大大地增加模型的搜索空間,大多數(shù)模型所需要的訓(xùn)練樣本數(shù)目隨著特征數(shù)量的增加而顯著增加,特征的增加雖然會(huì)更好的擬合訓(xùn)練數(shù)據(jù),但也可能增加方差。

特征選擇一般包括生產(chǎn)過程、評(píng)價(jià)函數(shù)、停止準(zhǔn)則、驗(yàn)證過程

為了進(jìn)行特征選擇,我們首先需要產(chǎn)生特征或特征子集候選集合;其次需要衡量特征或特征子集的重要性或者好壞程度。

因此需要量化特征變量和目標(biāo)變量之間的聯(lián)系以及特征之間的相互聯(lián)系。

為了避免過擬合,我們一般采用交叉驗(yàn)證的方式來評(píng)估特征的好壞;為了減少計(jì)算復(fù)雜度,我們還需要設(shè)定一個(gè)閾值,當(dāng)評(píng)價(jià)函數(shù)到達(dá)閾值后搜索停止;最后,我們需要在驗(yàn)證數(shù)據(jù)集上驗(yàn)證選出來的特征子集的有效性。

本文由 @策略產(chǎn)品Arthur 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)許可,禁止轉(zhuǎn)載

題圖來自 Unsplash,基于 CC0 協(xié)議

該文觀點(diǎn)僅代表作者本人,人人都是產(chǎn)品經(jīng)理平臺(tái)僅提供信息存儲(chǔ)空間服務(wù)。

更多精彩內(nèi)容,請(qǐng)關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號(hào)或下載App
評(píng)論
評(píng)論請(qǐng)登錄
  1. 你好,這篇文章沒有下篇了嘛

    來自廣東 回復(fù)
  2. 關(guān)注主頁了解更多策略產(chǎn)品知識(shí)

    來自北京 回復(fù)