自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

推薦系統(tǒng)的數(shù)據(jù)源與數(shù)據(jù)預(yù)處理

開發(fā) 前端
推薦系統(tǒng)是機(jī)器學(xué)習(xí)的子領(lǐng)域,跟一般的機(jī)器學(xué)習(xí)算法一樣,推薦算法依賴數(shù)據(jù)來構(gòu)建推薦模型,有了模型后需要進(jìn)行模型訓(xùn)練,最終為用戶提供個性化的推薦服務(wù)(模型推斷)。

[[429443]]

本文轉(zhuǎn)載自微信公眾號「數(shù)據(jù)與智能」,作者gongyouliu。轉(zhuǎn)載本文請聯(lián)系數(shù)據(jù)與智能公眾號。

大家好,我是強(qiáng)哥。一個熱愛暴走、讀書、寫作的人!

一、推薦系統(tǒng)的數(shù)據(jù)源

1. 根據(jù)產(chǎn)品功能要素來劃分

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

(2)用戶畫像數(shù)據(jù)

(3)物品畫像數(shù)據(jù)

(4)場景化數(shù)據(jù)

2. 根據(jù)數(shù)據(jù)載體來劃分

(1)數(shù)據(jù)價值

(2)類別數(shù)據(jù)

(3)文本數(shù)據(jù)

(4)圖片數(shù)據(jù)

(5)音視頻數(shù)據(jù)

3. 根據(jù)數(shù)據(jù)組織形式來劃分

(1)結(jié)構(gòu)化數(shù)據(jù)

(2)半結(jié)構(gòu)數(shù)據(jù)

(3)非結(jié)構(gòu)化數(shù)據(jù)

二、數(shù)據(jù)預(yù)處理

1. 抽提(Extract)

2. 轉(zhuǎn)換(Transform)

3. 加載(Load)

總結(jié)

推薦系統(tǒng)是機(jī)器學(xué)習(xí)的子領(lǐng)域,跟一般的機(jī)器學(xué)習(xí)算法一樣,推薦算法依賴數(shù)據(jù)來構(gòu)建推薦模型,有了模型后需要進(jìn)行模型訓(xùn)練,最終為用戶提供個性化的推薦服務(wù)(模型推斷)。推薦系統(tǒng)由于其解決的問題的特性(推薦系統(tǒng)解決的是信息過濾與資源匹配的問題)以及自身的強(qiáng)業(yè)務(wù)相關(guān)性,構(gòu)建推薦系統(tǒng)的數(shù)據(jù)來源及數(shù)據(jù)處理方式有自身的特點(diǎn),本章我們就對推薦系統(tǒng)涉及到的數(shù)據(jù)源及數(shù)據(jù)預(yù)處理相關(guān)的知識進(jìn)行介紹,方便我們在后續(xù)章節(jié)中構(gòu)建推薦算法模型。

一、推薦系統(tǒng)的數(shù)據(jù)源

推薦系統(tǒng)根據(jù)用戶在產(chǎn)品(APP、網(wǎng)站等)上的操作行為,挖掘用戶的興趣點(diǎn),預(yù)測用戶的興趣偏好,最終為用戶做個性化推薦。在整個推薦過程中,涉及到的要素有用戶、物品、用戶的操作行為、用戶當(dāng)前所處的場景等4類。這每類要素都是具備對應(yīng)數(shù)據(jù)的。按照這種要素劃分,推薦算法可以利用4類數(shù)據(jù)。另外,根據(jù)數(shù)據(jù)自身的特性,數(shù)據(jù)也可以分為數(shù)值數(shù)據(jù)、類別數(shù)據(jù)、文本數(shù)據(jù)、圖片數(shù)據(jù)、音視頻數(shù)據(jù)等5類。最后,根據(jù)推薦系統(tǒng)依賴的數(shù)據(jù)的組織形式(數(shù)據(jù)范式),又可以將數(shù)據(jù)分為結(jié)構(gòu)化數(shù)據(jù)、半結(jié)構(gòu)化數(shù)據(jù)、非結(jié)構(gòu)化數(shù)據(jù)3大類。下面我們分別按照這3種分類方式來詳細(xì)描述推薦系統(tǒng)所依賴的數(shù)據(jù)及這些數(shù)據(jù)的特點(diǎn)。

1. 根據(jù)產(chǎn)品功能要素來劃分

根據(jù)數(shù)據(jù)來源的產(chǎn)品功能要素來分,推薦系統(tǒng)依賴的數(shù)據(jù)分為用戶行為數(shù)據(jù)、用戶畫像數(shù)據(jù)、物品畫像數(shù)據(jù)、場景化數(shù)據(jù)4大類,見下面圖1,下面我們分別介紹各類數(shù)據(jù)及其特點(diǎn)。

圖1:推薦系統(tǒng)依賴的4類數(shù)據(jù)源

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

行為數(shù)據(jù)是用戶在產(chǎn)品上的各種操作行為,比如瀏覽、點(diǎn)擊、播放、購買、搜索、收藏、點(diǎn)贊、評論、轉(zhuǎn)發(fā)、加購物車、甚至滑動、暫定、快進(jìn)快退等等一切操作行為。用戶在產(chǎn)品上的操作行為為我們了解用戶提供了線索,用戶的操作行為也是用戶真實(shí)意圖的反饋。通過挖掘用戶行為,我們可以獲得對用戶興趣偏好的深刻洞察。

根據(jù)用戶的行為是否直接表明用戶對物品的興趣偏好,用戶行為一般分為顯式行為和隱式行為。顯式行為是直接表明用戶興趣的行為,比如點(diǎn)贊、評分等。隱式行為雖不是直接表示用戶的興趣,但是該行為可以間接反饋用戶的興趣變化,只要不是用戶直接評分、點(diǎn)贊的操作行為都算隱式反饋,包括瀏覽、點(diǎn)擊、播放、收藏等等。

用戶行為數(shù)據(jù)是最容易收集、數(shù)據(jù)量最多的一類數(shù)據(jù)(因?yàn)橛脩舻娜魏尾僮餍袨?,我們都可以進(jìn)行埋點(diǎn)收集)。這類數(shù)據(jù)需要我們進(jìn)行收集、預(yù)處理才能最終被推薦算法使用。這類數(shù)據(jù)獲取也相對容易,只要我們按照規(guī)范進(jìn)行埋點(diǎn)就能夠保證數(shù)據(jù)范式正確,當(dāng)然埋點(diǎn)也是需要經(jīng)驗(yàn)的,目前有很多第三方服務(wù)商提供埋點(diǎn)實(shí)施方案,在這方面沒有經(jīng)驗(yàn)的企業(yè)是可以進(jìn)行采購的。

有些產(chǎn)品由于自身特性,往往是很難收集到除了用戶行為外的其他數(shù)據(jù)的(或者即使可以收集到,但是成本太大,比如UGC產(chǎn)生的數(shù)據(jù)可能就非常臟亂),因此,充分利用用戶行為數(shù)據(jù)對構(gòu)建高質(zhì)量的推薦系統(tǒng)是非常關(guān)鍵的。

目前個人信息保護(hù)法正式實(shí)施了(2021年9月1日正式實(shí)施),另外國家也會開始管控算法業(yè)務(wù),未來用戶是可以關(guān)閉日志收集等相關(guān)服務(wù)的,這對未來的推薦算法落地是有比較大的挑戰(zhàn)的。

(2)用戶畫像數(shù)據(jù)

用戶畫像數(shù)據(jù)是對用戶相關(guān)信息的客觀描述。包含用戶自身所帶的屬性,比如年齡、身高、體重、性別、學(xué)歷、家庭組成、職業(yè)等等。這些數(shù)據(jù)一般是穩(wěn)定不變(如性別)或者緩慢變化(如年齡)的。而有些用戶畫像數(shù)據(jù)是通過用戶的行為來刻畫的,通過用戶行為給用戶打上相關(guān)標(biāo)簽,這些標(biāo)簽也成為用戶畫像的一部分,比如動漫迷、果粉、健身達(dá)人等等。

人類是一個社會化物種,用戶的不同屬性決定了用戶所處的階層或生活圈層。不同的階層或生活圈又有不同的行為特征、生活方式、偏好特點(diǎn),在同一圈層的用戶具備一定的相似性,這種相似性為我們做個性化推薦提供了特有的方法和思路(比如基于社交關(guān)系的推薦就可以很好利用用戶畫像相關(guān)的信息)。

另外,通過用戶對物品的操作行為,我們可以將物品所具備的特征按照某種權(quán)重賦予用戶,這些特征就構(gòu)建了用戶的興趣畫像,相當(dāng)于給用戶打上了相關(guān)的標(biāo)簽(比如喜歡看“恐怖片”的人)。從這些興趣偏好出發(fā),我們可以給用戶做個性化推薦。

有些產(chǎn)品由于業(yè)務(wù)特性是可以很好地收集到用戶畫像信息的,比如支付寶、微信等需要用戶用身份證或者綁定銀行卡,這就可以獲得比較完整、隱私的用戶個人信息了。而有些產(chǎn)品(比如今日頭條、快手等),用戶不需要注冊就可以使用,比較難獲得用戶自身相關(guān)的信息。不管怎樣,用戶在產(chǎn)品上都會留下行為軌跡,基于這些行為軌跡,我們都可以挖掘出用戶行為刻畫出的畫像特征。

(3)物品畫像數(shù)據(jù)

推薦系統(tǒng)中最重要的一個“參與方”是待推薦的物品,物品自身是包含很多特征和屬性的。對于商品來說,品類、價格、產(chǎn)地、顏色、質(zhì)地、外觀、品牌、保質(zhì)期等等都是商品的元數(shù)據(jù)。如果有關(guān)于物品的描述信息(如電影的劇情介紹),我們還可以利用NLP技術(shù)從描述信息中提取關(guān)鍵詞來作為畫像特征。另外,圖片、音頻、視頻中,我們通過深度學(xué)習(xí)等技術(shù)也是可以提取關(guān)鍵詞來作為畫像特征的。

物品畫像也可以通過用戶行為來刻畫。比如某個物品是比較熱門的物品,我們可以給該物品打上“熱門”的標(biāo)簽。某個物品很受某類人喜歡,也可以給該商品打上相關(guān)標(biāo)簽,比如“白領(lǐng)專用”。

(4) 場景化數(shù)據(jù)

場景化數(shù)據(jù)是用戶在對物品進(jìn)行操作時所處的環(huán)境特征及狀態(tài)的總稱,比如用戶所在地理位置、當(dāng)時的時間、是否是工作日、是否是重大節(jié)日、是否有重大事件(比如雙十一)、當(dāng)時的天氣、用戶當(dāng)時的心情、用戶所在產(chǎn)品的路徑等等。這些場景化信息對用戶的決策是非常重要的、甚至是起決定作用的。比如,美團(tuán)餓了么這類基于地理位置服務(wù)的產(chǎn)品,給用戶推薦餐廳是一定是在用戶所在位置或者用戶指定收貨地點(diǎn)附近的。

恰當(dāng)?shù)厥褂脠鼍盎瘮?shù)據(jù),將該類數(shù)據(jù)整合到推薦算法中,可以更加精準(zhǔn)地為用戶進(jìn)行個性化推薦,產(chǎn)生更好的使用體驗(yàn)和商業(yè)化價值。

按照產(chǎn)品功能要素來劃分是一種比較偏業(yè)務(wù)的劃分方式,可以讓我們更清晰地看到問題。我們在第三篇中講解召回算法時,就是按照這4類產(chǎn)品功能要素(即用戶行為召回、用戶畫像召回、物品畫像召回、場景信息召回)來展開的。

2. 根據(jù)數(shù)據(jù)載體來劃分

隨著互聯(lián)網(wǎng)與科技的發(fā)展,網(wǎng)絡(luò)上傳輸、交換、展示的數(shù)據(jù)種類越來越多樣化,從最初的數(shù)字、類別、文本到圖片,再到現(xiàn)在主流的音視頻,基于這些數(shù)據(jù)載體的不同,推薦系統(tǒng)建模依賴的數(shù)據(jù)可以分為5類,見下面圖2。

圖2:推薦系統(tǒng)依賴的5種數(shù)據(jù)載體

(1)數(shù)值數(shù)據(jù)

推薦系統(tǒng)算法用到的可以用數(shù)值來表示的數(shù)據(jù)都屬于這一類,比如用戶年齡、收入、商品價格、配送距離等等。數(shù)值數(shù)據(jù)也是計算機(jī)最容易處理的一類數(shù)據(jù),基本上是直接可以用于算法中的。其他類型的數(shù)據(jù)要想很好地被推薦算法利用,一般會先利用各種方法轉(zhuǎn)化為數(shù)值數(shù)據(jù)(我們會在特征工程那一章講解具體的方法和策略)。

(2)類別數(shù)據(jù)

類別數(shù)據(jù)是這類具備有限個值的數(shù)據(jù),類似計算機(jī)編程語言中的枚舉值,比如用戶性別、學(xué)歷、物地域、商品品牌、商品尺碼等等。類別數(shù)據(jù)也比較容易處理,一般用one-hot編碼或者編號就可以轉(zhuǎn)化為數(shù)值型數(shù)據(jù)。當(dāng)然如果類別數(shù)量巨大,用one-hot編碼會導(dǎo)致維度很高、數(shù)據(jù)過于稀疏等問題,這時可以采用hash編碼或者嵌入的方法了。

(3)文本數(shù)據(jù)

文本數(shù)據(jù)是互聯(lián)網(wǎng)中數(shù)量最多的、最普遍的一類數(shù)據(jù),物品的描述信息、新聞文本、歌詞、劇情簡介等都是文本數(shù)據(jù)。處理文本類數(shù)據(jù)需要借助自然語言處理相關(guān)技術(shù)。比如TF-IDF、LDA等都是比較傳統(tǒng)的處理文本數(shù)據(jù)的方法,當(dāng)前比較流行的Embedding方法可以獲得比較好的效果。

(4)圖片數(shù)據(jù)

隨著智能手機(jī)攝像頭技術(shù)的成熟,圖像處理軟件的發(fā)展,以及各類APP的流行,拍照和分享照片更加容易了。另外圖片比文本更容易傳達(dá)信息,因此當(dāng)前互聯(lián)網(wǎng)上到處充斥著各種圖片,圖片數(shù)據(jù)是互聯(lián)網(wǎng)上的主流數(shù)據(jù)類型,商品的展示圖、電影的縮略圖、用戶朋友圈的照片等等都以圖片的形式存在。

對于圖片類數(shù)據(jù)的處理,目前的深度學(xué)習(xí)技術(shù)相對成熟,包括圖片的分類、對象識別、OCR、圖片的特征提取等等,精度已經(jīng)足夠用于產(chǎn)品了,在某些方面(如圖片分類)甚至超越了人類專家的水平。

(5)音視頻數(shù)據(jù)

音視頻數(shù)據(jù)我們并不陌生,甚至在移動互聯(lián)網(wǎng)爆發(fā)之前都已經(jīng)存在了很多年了(錄音機(jī)和攝像機(jī)可以記錄聲音和視頻)。但只有當(dāng)移動網(wǎng)絡(luò)及軟硬件成熟后,以這兩類數(shù)據(jù)為載體的產(chǎn)品才發(fā)展壯大。音頻類的產(chǎn)品有喜馬拉雅、荔枝FM等,視頻類除了愛奇藝、騰訊視頻、優(yōu)酷等長視頻APP外,目前大火的抖音、快手等短視頻應(yīng)用非常受歡迎。游戲直播、電商導(dǎo)購直播等應(yīng)用也是視頻類數(shù)據(jù)的輸出媒介。音樂的數(shù)字化,各類音頻學(xué)習(xí)軟件(如樊登讀書、得到APP等)也促進(jìn)了音頻數(shù)據(jù)的增長。

音視頻數(shù)據(jù)的價值密度小,占用空間多,處理相對復(fù)雜,在深度學(xué)習(xí)時代,這些復(fù)雜數(shù)據(jù)的處理也變得可行了。音頻數(shù)據(jù)可以通過語音識別轉(zhuǎn)換為文字,最終歸結(jié)為文本數(shù)據(jù)的處理問題,視頻數(shù)據(jù)可以通過抽幀轉(zhuǎn)換為圖片數(shù)據(jù)來處理。目前比較火的多模態(tài)技術(shù)也可以直接處理原始的音視頻數(shù)據(jù)。

圖片、音視頻數(shù)據(jù)屬于富媒體數(shù)據(jù),隨著傳感器種類的豐富(手機(jī)、無人機(jī)、激光雷達(dá)等)、精度的增強(qiáng)(比如拍照能力越來越強(qiáng))、相關(guān)互聯(lián)網(wǎng)應(yīng)用的繁榮(如抖音、快手等都是基于富媒體數(shù)據(jù)的應(yīng)用),網(wǎng)絡(luò)上出現(xiàn)了越來越多的富媒體數(shù)據(jù),并且占據(jù)了互聯(lián)網(wǎng)數(shù)據(jù)的絕大多數(shù),因此是非常重要的一類數(shù)據(jù),也是未來的推薦系統(tǒng)需要重點(diǎn)關(guān)注的數(shù)據(jù)。

按照數(shù)據(jù)載體來劃分?jǐn)?shù)據(jù)的好處是方便對數(shù)據(jù)進(jìn)行處理,從中提取構(gòu)建推薦算法需要的特征。我們在第15章講解特征工程時,就是按照數(shù)據(jù)的這種劃分方式來講解的。

3. 根據(jù)數(shù)據(jù)組織形式來劃分

按照數(shù)據(jù)組織形式不同,不同類型的數(shù)據(jù)處理起來難易程度是不一樣的。人類是比較善于理解和處理二維表格類數(shù)據(jù)(結(jié)構(gòu)化數(shù)據(jù))的,這就是為什么關(guān)系型數(shù)據(jù)庫(主要是處理表格類數(shù)據(jù))在計算機(jī)發(fā)展史上具有舉足輕重地位的原因。隨著互聯(lián)網(wǎng)的發(fā)展,數(shù)據(jù)形式越發(fā)豐富,不是所有數(shù)據(jù)都是結(jié)構(gòu)化的,有些數(shù)據(jù)是半結(jié)構(gòu)化甚至是無結(jié)構(gòu)化的(具體見下面圖3),下面分別對這3類數(shù)據(jù)加以說明。

圖3:三種數(shù)據(jù)組織形式

(1)結(jié)構(gòu)化數(shù)據(jù)

所謂結(jié)構(gòu)化數(shù)據(jù)就是可以用關(guān)系型數(shù)據(jù)庫中的一張表來存儲的數(shù)據(jù),每一列代表一個屬性/特征,每一行就是一個數(shù)據(jù)樣本。一般用戶畫像數(shù)據(jù)和物品畫像數(shù)據(jù)都可以用一張表來存儲,用戶和物品的每一個屬性都是表的一個字段,因此是結(jié)構(gòu)化數(shù)據(jù)。下表就是商品的結(jié)構(gòu)化表示。

 

商品

品牌

價格

品類

顏色

iPhone13 Pro

蘋果

9888元

手機(jī)

遠(yuǎn)峰藍(lán)、石墨色、銀色、金色

尼康 D7500

尼康

7299元

數(shù)碼

黑色

浪琴(Longines)瑞士手表 康卡斯?jié)撍盗?機(jī)械鋼帶男表 L37824066

浪琴

 

13000元

鐘表

L37824766、L37824566等


表1:商品畫像數(shù)據(jù)的結(jié)構(gòu)化表示

結(jié)構(gòu)化數(shù)據(jù)是一類具備Schema的數(shù)據(jù),也就是每一列數(shù)據(jù)的類型、值的長度或者范圍是確定的,一般可以用關(guān)系型數(shù)據(jù),如MySQL、ProgreSQL、Hive等來存儲,這類數(shù)據(jù)可以用非常成熟的SQL語言來進(jìn)行查詢、處理。

(2)半結(jié)構(gòu)數(shù)據(jù)

半結(jié)構(gòu)化數(shù)據(jù)雖不具備關(guān)系型數(shù)據(jù)庫這么嚴(yán)格的Schema,但數(shù)據(jù)組織是有一定規(guī)律或者規(guī)范的,利用特殊的標(biāo)記或者規(guī)則來分隔語義元素或?qū)τ涗浐妥侄芜M(jìn)行區(qū)隔。因此,也被稱為自描述的數(shù)據(jù)結(jié)構(gòu)。常見的XML、Json、HTML等數(shù)據(jù)就屬于這一類。

對于用戶在產(chǎn)品上的操作行為,我們一般按照一定的規(guī)則來對相關(guān)字段進(jìn)行記錄(比如可以用Json格式來記錄日志,或者按照規(guī)定的分割字符來分割不同字段,再拼接起來記錄日志),這類數(shù)據(jù)也屬于半結(jié)構(gòu)化數(shù)據(jù),一些半結(jié)構(gòu)化數(shù)據(jù)是可以通過一定的預(yù)處理轉(zhuǎn)化為結(jié)構(gòu)化數(shù)據(jù)的。

半結(jié)構(gòu)化數(shù)據(jù)對推薦系統(tǒng)是非常關(guān)鍵的。推薦系統(tǒng)最終的推薦結(jié)果可以采用Json的格式進(jìn)行存儲或者以Json的形式在互聯(lián)網(wǎng)上傳輸最終展示給終端用戶。很多推薦模型也是采用固定的數(shù)據(jù)格式存儲的,比如ONNX(Open Neural Network EXchange,開放神經(jīng)網(wǎng)絡(luò)交換)格式,是一種用于表示深度學(xué)習(xí)模型的標(biāo)準(zhǔn),可使模型在不同框架之間進(jìn)行遷移。

半結(jié)構(gòu)化的數(shù)據(jù)一般有比較松散的范式,這類數(shù)據(jù)也有適合的數(shù)據(jù)存儲工具,一般會用key-value形式的NoSQL數(shù)據(jù)庫存儲,比如HBase、Redis、MongoDB、Elastic Search等等。

(3)非結(jié)構(gòu)化數(shù)據(jù)

非結(jié)構(gòu)化數(shù)據(jù),是數(shù)據(jù)結(jié)構(gòu)不規(guī)則或不完整,沒有預(yù)定義的數(shù)據(jù)模型,不方便用數(shù)據(jù)庫二維邏輯表來存儲的數(shù)據(jù),也沒有半結(jié)構(gòu)化數(shù)據(jù)這種有一定的規(guī)律或者規(guī)范。非結(jié)構(gòu)化數(shù)據(jù)包括文本、圖片、各類數(shù)據(jù)報表、圖像和音視頻數(shù)據(jù)等等。非結(jié)構(gòu)化數(shù)據(jù)由于沒有固定的數(shù)據(jù)范式,也是最難處理的一類數(shù)據(jù)。

文本、短視頻、音頻、商品等都包含大量的非結(jié)構(gòu)化數(shù)據(jù)。即使物品本身是非結(jié)構(gòu)化的(比如抖音上的短視頻),我們也可以從幾個已知的維度來定義物品,從而形成對物品結(jié)構(gòu)化的描述,如上面表1中就是針對商品從多個維度來構(gòu)建結(jié)構(gòu)化數(shù)據(jù)。

隨著移動互聯(lián)網(wǎng)、物聯(lián)網(wǎng)的發(fā)展,各類傳感器日益豐富,功能多樣,人際交往也更加密切,人們更愿意表達(dá)自我,人類的社交和生產(chǎn)活動產(chǎn)生了非常多的非結(jié)構(gòu)化數(shù)據(jù),非結(jié)構(gòu)化數(shù)據(jù)量成幾何級數(shù)增長。

怎么很好地處理非結(jié)構(gòu)化數(shù)據(jù),將非結(jié)構(gòu)化數(shù)據(jù)中包含的豐富信息挖掘出來,并應(yīng)于算法模型中,是具備極大挑戰(zhàn)的,但是如果利用的好,是可以大大提升推薦算法的精準(zhǔn)度、轉(zhuǎn)化率等用戶體驗(yàn)、商業(yè)化指標(biāo)的。隨著NLP、圖像處理、深度學(xué)習(xí)等AI技術(shù)的發(fā)展與成熟,我們現(xiàn)在有更多的工具和方法來處理非結(jié)構(gòu)化數(shù)據(jù)了。推薦系統(tǒng)也享受到了這一波技術(shù)紅利,在這些新技術(shù)的加持下,推薦效果越來越好。

非結(jié)構(gòu)化的數(shù)據(jù)由于沒有固定的范式,一般可以采用對象存儲工具進(jìn)行存儲,如Apache Ozone(https://ozone.apache.org/)等。目前基本所有的云服務(wù)廠商都會提供對象存儲工具,方便客戶存儲非結(jié)構(gòu)化的對象文件。

上面從3個不同的分類角度來介紹了推薦系統(tǒng)的數(shù)據(jù)源,我們知道了哪些數(shù)據(jù)是對推薦系統(tǒng)有用的,當(dāng)我們獲取了這些數(shù)據(jù)之后我們就需要對它們進(jìn)行適當(dāng)?shù)念A(yù)處理并存儲下來,方面后續(xù)的推薦系統(tǒng)建模使用。下面一節(jié)我們來簡介介紹一下數(shù)據(jù)預(yù)處理相關(guān)的知識點(diǎn)。

二、數(shù)據(jù)預(yù)處理

數(shù)據(jù)預(yù)處理一般稱為ETL(Extract-Transform-Load),用來描述數(shù)據(jù)從來源到最終存儲之間的一系列處理過程,一般經(jīng)過抽提、轉(zhuǎn)換、加載3個階段。數(shù)據(jù)預(yù)處理的目的是將企業(yè)中的分散、零亂、標(biāo)準(zhǔn)不統(tǒng)一的數(shù)據(jù)整合到一起,將非結(jié)構(gòu)化或者半結(jié)構(gòu)化的數(shù)據(jù)處理為后續(xù)業(yè)務(wù)可以方便處理使用的(結(jié)構(gòu)化)數(shù)據(jù),為企業(yè)的數(shù)據(jù)驅(qū)動、數(shù)據(jù)決策、智能服務(wù)提供數(shù)據(jù)支撐。

數(shù)據(jù)基礎(chǔ)設(shè)施完善的企業(yè)一般會構(gòu)建層次化的數(shù)據(jù)倉庫系統(tǒng),數(shù)據(jù)預(yù)處理的最終目的也是將雜亂的數(shù)據(jù)結(jié)構(gòu)化、層次化、有序化,最終存入數(shù)據(jù)倉庫。對于推薦系統(tǒng)來說,通過ETL將數(shù)據(jù)處理成具備特殊結(jié)構(gòu)(可能是結(jié)構(gòu)化的)的數(shù)據(jù),方便進(jìn)行特征工程,最終供推薦算法學(xué)習(xí)和模型訓(xùn)練使用。下面分別對ETL3個階段的作用進(jìn)行簡單介紹。

1. 抽提(Extract)

這一階段的主要目的是將企業(yè)中分散的數(shù)據(jù)聚合起來,方便后續(xù)進(jìn)行統(tǒng)一處理,對于推薦系統(tǒng)來說,依賴的數(shù)據(jù)源多種多樣,因此是非常有必要將所有這些算法依賴的數(shù)據(jù)聚合起來的。推薦系統(tǒng)的數(shù)據(jù)源比較多樣,不同的數(shù)據(jù)抽取的方式不一樣,下面分別簡單介紹。

用戶行為數(shù)據(jù)一般通過在客戶端埋點(diǎn),通過HTTP協(xié)議上傳到日志收集web服務(wù)(如Nginx服務(wù)器),中間可能會通過域名分流或者LB負(fù)載均衡服務(wù)來增加日志收集的容錯性、可拓展性。日志一般通過離線和實(shí)時兩條數(shù)據(jù)流進(jìn)行處理。離線數(shù)據(jù)通過預(yù)處理(比如安全性校驗(yàn)等)進(jìn)入數(shù)倉,實(shí)時流經(jīng)Kafka等消息隊(duì)列,然后被實(shí)時處理程序(如Spark Streaming、Flink等)處理或者進(jìn)入HBase、ElasticSearch等實(shí)時存儲系統(tǒng)供后續(xù)的業(yè)務(wù)使用。用戶行為日志的收集流程見下面圖4。

圖4:用戶行為日志收集流程(右上角進(jìn)入DW的屬于離線數(shù)據(jù),右下角經(jīng)過Kafka的屬于實(shí)時流)

對于用戶畫像數(shù)據(jù)、物品畫像數(shù)據(jù)一般是存放在關(guān)系型數(shù)據(jù)庫中的,實(shí)時性要求不高的推薦業(yè)務(wù)可以采用數(shù)據(jù)表快照(按天從業(yè)務(wù)系統(tǒng)中將數(shù)據(jù)庫同步到Hive中)進(jìn)行抽取,對實(shí)時性有要求的信息流推薦可以采用binlog實(shí)時同步或者消息隊(duì)列的方式抽取。

場景化相關(guān)數(shù)據(jù)一般是描述用戶當(dāng)前狀態(tài)的數(shù)據(jù),一般是通過各種傳感器或者埋點(diǎn)收集的,這類數(shù)據(jù)也生成于客戶端。通過上面圖4右下角的實(shí)時日志收集系統(tǒng)進(jìn)入消息隊(duì)列,供后端的實(shí)時統(tǒng)計(如時間序列數(shù)據(jù)庫、ES進(jìn)行存儲進(jìn)而查詢展示)或者算法(通過Spark Streaming或者Flink等)進(jìn)行處理。

2.轉(zhuǎn)換(Transform)

這個階段是ETL的核心環(huán)節(jié),也是最復(fù)雜的一環(huán)。它的主要目標(biāo)是將抽取到的各種數(shù)據(jù),進(jìn)行數(shù)據(jù)的清洗、格式的轉(zhuǎn)換、缺失值填補(bǔ)、剔除重復(fù)等操作,最終得到一份格式統(tǒng)一、高度結(jié)構(gòu)化、數(shù)據(jù)質(zhì)量高、兼容性好的數(shù)據(jù),提供給推薦算法的特征工程階段進(jìn)行處理。

清洗過程包括剔除掉臟數(shù)據(jù)、對數(shù)據(jù)合法性進(jìn)行校驗(yàn)、剔除無效字段、字段格式檢查等過程。格式轉(zhuǎn)換是根據(jù)推薦算法對數(shù)據(jù)的定義和要求將不同來源的同一類數(shù)據(jù)轉(zhuǎn)為相同的格式,使之統(tǒng)一化、規(guī)范化的過程。由于日志埋點(diǎn)或者數(shù)據(jù)收集過程中存在的各種問題,真實(shí)業(yè)務(wù)場景中,字段值缺失是一定存在的,缺失值填補(bǔ)可以根據(jù)平均數(shù)或者眾數(shù)進(jìn)行填補(bǔ)或者利用算法來學(xué)習(xí)填充(如樣條差值等)。由于網(wǎng)絡(luò)原因日志一般會有重傳策略,導(dǎo)致重復(fù)數(shù)據(jù),剔除重復(fù)就是將重復(fù)的數(shù)據(jù)從中過濾掉,從而提升數(shù)據(jù)質(zhì)量,以免影響最終推薦算法的效果(如果一個人有更多的數(shù)據(jù),那么在推薦算法訓(xùn)練過程中,相當(dāng)于他就有更多的投票權(quán),模型學(xué)習(xí)會向他的興趣傾斜,導(dǎo)致泛化能力下降)。

3. 加載(Load)

加載的主要目標(biāo)是把數(shù)據(jù)存放至最終的存儲系統(tǒng),比如數(shù)據(jù)倉庫、關(guān)系型數(shù)據(jù)庫、key-value型NoSQL中等。對于離線的推薦系統(tǒng),訓(xùn)練數(shù)據(jù)放到數(shù)倉中,畫像數(shù)據(jù)存放到關(guān)系型數(shù)據(jù)庫或NoSQL中。

用戶行為數(shù)據(jù)通過數(shù)據(jù)預(yù)處理一般可以轉(zhuǎn)化為結(jié)構(gòu)化數(shù)據(jù)或者半結(jié)構(gòu)化數(shù)據(jù),行為數(shù)據(jù)是最容易獲得的一類數(shù)據(jù),也是數(shù)據(jù)量最大的一類數(shù)據(jù),這類數(shù)據(jù)一般存放在分布式文件系統(tǒng)中,原始數(shù)據(jù)一般放到HDFS中,通過處理后的行為數(shù)據(jù)都會統(tǒng)一存放到企業(yè)的數(shù)據(jù)倉庫中,離線數(shù)據(jù)基于Hive等構(gòu)建數(shù)倉,而實(shí)時數(shù)據(jù)基于HBase等構(gòu)建數(shù)倉,最終形成統(tǒng)一的數(shù)據(jù)服務(wù),供上層的業(yè)務(wù)使用。

某些數(shù)據(jù),比如通過特征工程轉(zhuǎn)化為具體特征的數(shù)據(jù),這類數(shù)據(jù)可能需要實(shí)時獲取、實(shí)時更新、實(shí)時服務(wù)于業(yè)務(wù),一般可以存放在HBase或者Redis等NoSQL中。

用戶畫像、物品畫像數(shù)據(jù)一般屬于關(guān)系型數(shù)據(jù),這類數(shù)據(jù)比較適合存放在關(guān)系型數(shù)據(jù)庫(如MySQL)或者NoSQL中。

對于圖片、音視頻這類比較復(fù)雜的非結(jié)構(gòu)化的數(shù)據(jù),一般適合存放在對象存儲中。當(dāng)前比較火的數(shù)據(jù)湖技術(shù)(如Delta Lake、Iceberg、Hudi等)就是希望整合以數(shù)倉為主導(dǎo)的傳統(tǒng)結(jié)構(gòu)化數(shù)據(jù)存儲與以圖像音視頻為主的非結(jié)構(gòu)化數(shù)據(jù)。在數(shù)據(jù)湖體系下,推薦系統(tǒng)依賴的所有數(shù)據(jù)源都可以存儲在數(shù)據(jù)湖中。

總結(jié)

推薦系統(tǒng)是機(jī)器學(xué)習(xí)的一個分支,因此推薦算法依賴數(shù)據(jù)來構(gòu)建模型,最終為用戶提供個性化的物品推薦。本章簡單梳理了推薦系統(tǒng)的數(shù)據(jù)源及數(shù)據(jù)預(yù)處理相關(guān)的知識點(diǎn)。

推薦系統(tǒng)數(shù)據(jù)源可以按照3種形式來分類。按照推薦產(chǎn)品功能要素來劃分,可以分為用戶行為數(shù)據(jù)、用戶畫像數(shù)據(jù)、物品畫像數(shù)據(jù)和場景化數(shù)據(jù)四類。按照數(shù)據(jù)載體來劃分,可以分為數(shù)值數(shù)據(jù)、類別數(shù)據(jù)、文本數(shù)據(jù)、圖片數(shù)據(jù)、音視頻數(shù)據(jù)等5類。按照數(shù)據(jù)組織形式來劃分,可以分為結(jié)構(gòu)化數(shù)據(jù)、半結(jié)構(gòu)化數(shù)據(jù)與非結(jié)構(gòu)化數(shù)據(jù)。

 

當(dāng)我們獲得了各類不同的、可以用于推薦系統(tǒng)模型構(gòu)建的數(shù)據(jù),我們還需要將這些數(shù)據(jù)收集、轉(zhuǎn)運(yùn)、預(yù)處理并存儲到數(shù)據(jù)中心。當(dāng)所有的數(shù)據(jù)都準(zhǔn)備就緒了,后面我們才可以基于這些數(shù)據(jù)去構(gòu)建算法模型。我們會在后續(xù)章節(jié)具體介紹推薦系統(tǒng)相關(guān)的算法模型。

 

責(zé)任編輯:武曉燕 來源: 數(shù)據(jù)與智能
相關(guān)推薦

2017-09-04 14:52:51

Tomcat線程數(shù)據(jù)源

2017-06-14 23:42:27

大數(shù)據(jù)數(shù)據(jù)源架構(gòu)

2010-12-27 09:59:11

ODBC數(shù)據(jù)源

2009-06-15 13:24:46

JBoss數(shù)據(jù)源

2023-05-26 16:30:20

人工智能邊緣計算

2025-01-09 11:21:25

2023-11-27 09:16:53

Python數(shù)據(jù)源類型

2013-12-04 09:54:32

CA TechnoloCA ERwin

2013-06-09 10:15:09

2017-05-02 08:40:36

機(jī)器學(xué)習(xí)預(yù)處理整理

2017-04-29 10:16:14

機(jī)器學(xué)習(xí)數(shù)據(jù)清洗數(shù)據(jù)整理

2013-06-07 10:05:18

2009-07-21 17:41:58

JDBC數(shù)據(jù)源

2010-06-04 10:31:05

tomcat MySQ

2025-04-14 01:00:00

Calcite電商系統(tǒng)MySQL

2009-09-08 11:09:39

LINQ數(shù)據(jù)源

2024-10-30 10:22:17

2009-09-15 17:15:33

Linq排序

2025-03-07 08:00:00

數(shù)據(jù)數(shù)據(jù)集集神經(jīng)網(wǎng)絡(luò)數(shù)據(jù)預(yù)處理

2021-03-10 19:01:02

SQL數(shù)據(jù)源
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號