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

1 評論 5133 瀏覽 21 收藏 17 分鐘

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

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

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

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

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

具體分為以下幾點講述:

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

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

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

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

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

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

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

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

Arthur枚舉了一下幾種類型:

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

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

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

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

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

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

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

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

用戶行為數(shù)據(jù)是推薦系統(tǒng)最常用、也是最為關(guān)鍵的數(shù)據(jù),因為用戶的潛在興趣、用戶對物品的真實評價都包含在用戶的行為歷史當(dāng)中。

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

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

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

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

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

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

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

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

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

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

大體上分為以下幾類:

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

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

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

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

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

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

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

實體識別

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

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

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

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

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

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

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

6. 組合類特征

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

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

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

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

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

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

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

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

1. 連續(xù)型特征

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

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

1)歸一化

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

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

2)離散化

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

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

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

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

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

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

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

2. 類別型特征

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

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

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

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

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

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

四、特征選擇

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

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

特征選擇一般包括生產(chǎn)過程、評價函數(shù)、停止準則、驗證過程。

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

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

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

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

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

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

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

    來自廣東 回復(fù)