用戶畫像標籤體系——從零開始搭建實時用戶畫像 -三-

用戶畫像標籤體系

用戶畫像的核心在於給用戶 “打標籤”,每一個標籤通常是人爲規定的特徵標識,用高度精煉的特徵描述一類人,例如年齡、性別、興趣偏好等,不同的標籤通過結構化的數據體系整合,就可與組合出不同的用戶畫像。

梳理標籤體系是實現用戶畫像過程中最基礎、也是最核心的工作,後續的建模、數據倉庫搭建都會依賴於標籤體系。

爲什麼需要梳理標籤體系,因爲不同的企業做用戶畫像有不同的戰略目的,廣告公司做用戶畫像是爲精準廣告服務,電商做用戶畫像是爲用戶購買更多商品,內容平臺做用戶畫像是推薦用戶更感興趣的內容提升流量再變現,金融行業做用戶畫像是爲了尋找到目標客戶的同時做好風險的控制。

所以第一步,我們要結合所在的行業,業務去分析我們用戶畫像的目的。這其實就是戰略,我們要通過戰略去指引我們最終的方向。

對於電商企業來說,可能最重要的兩個問題就是:

現有用戶 - 我的現存用戶是誰?爲什麼買我的產品?他們有什麼偏好?哪些用戶價值最高?

而對於金融企業,還要加上一條:

電商類標籤體系

可以看到電商類的標籤體系,更關注用戶的屬性,行爲等等信息。那麼我們需要的數據也就來源於用戶可提供的基本信息,以及用戶的行爲信息,這些我們可以通過埋點獲取,而用戶的訂單情況也是非常的重要的標籤。

金融類標籤體系

對於金融行業,最明顯的區別是增加了用戶的價值和用戶風險的信息。這些信息在用戶申請貸款時一般都可以提供,還有很多信息需要通過徵信獲取。

最終,不管是電商還是金融或者其他領域,我們都可以通過數據對用戶進行畫像,最終建立標籤體系,影響我們的業務,最終實現戰略目的。

下面我們來具體看一下如何一步步的分析建立整體標籤體系。

標籤的維度與類型

在我們建立用戶標籤時,首先要明確基於哪種維度去建立標籤。

一般除了基於用戶維度(userid)建立用戶標籤體系外,還有基於設備維度(cookieid)建立相應的標籤體系,當用戶沒有登錄設備時,就需要這個維度。當然這兩個維度還可以進行關聯。

而兩者的關聯就是需要 ID-Mapping 算法來解決,這也是一個非常複雜的算法。更多的時候我們還是以用戶的唯一標識來建立用戶畫像。

而標籤也分爲很多種類型,這裏參照常見的分類方式,

從對用戶打標籤的方式來看,一般分爲三種類型:1、基於統計類的標籤;2、基於規則類的標籤、3、基於挖掘類的標籤。下面我們介紹這三種類型標籤的區別:

標籤的類型是對標籤的一個區分,方便我們瞭解標籤是在數據處理的哪個階段產生的,也更方便我們管理。

標籤分級分類

把標籤分成不同的層級和類別,一是方便管理數千個標籤,讓散亂的標籤體系化;二是維度並不孤立,標籤之間互有關聯;三可以爲標籤建模提供標籤子集。

梳理某類別的子分類時,儘可能的遵循 MECE 原則(相互獨立、完全窮盡),尤其是一些有關用戶分類的,要能覆蓋所有用戶,但又不交叉。比如:用戶活躍度的劃分爲核心用戶、活躍用戶、新用戶、老用戶、流失用戶,用戶消費能力分爲超強、強、中、弱,這樣按照給定的規則每個用戶都有分到不同的組裏。

標籤命名

標籤的命名也是爲了我們可以對標籤進行統一的管理,也更好識別出是什麼標籤。

這是一種非常好的命名方式,解釋如下:

標籤主題:用於刻畫屬於那種類型的標籤,如用戶屬性、用戶行爲、用戶消費、風險控制等多種類型,可用 A、B、C、D 等 字母表示各標籤主題; 標籤類型:標籤類型可劃爲分類型和統計型這兩種類型,其中分類型用於刻畫用戶屬於哪種類型,如是男是女、是否是會員、 是否已流失等標籤,統計型標籤用於刻畫統計用戶的某些行爲次數,如歷史購買金額、優惠券使用次數、近 30 日登陸次數等 標籤,這類標籤都需要對應一個用戶相應行爲的權重次數; 開發方式:開發方式可分爲統計型開發和算法型開發兩大開發方式。其中統計型開發可直接從數據倉庫中各主題表建模加工 而成,算法型開發需要對數據做機器學習的算法處理得到相應的標籤; 是否互斥標籤:對應同一級類目下(如一級標籤、二級標籤),各標籤之間的關係是否爲互斥,可將標籤劃分爲互斥關係和 非互斥關係。例如對於男、女標籤就是互斥關係,同一個用戶不是被打上男性標籤就是女性標籤,對於高活躍、中活躍、低 活躍標籤也是互斥關係; 用戶維度:用於刻畫該標籤是打在用戶唯一標識(userid)上,還是打在用戶使用的設備(cookieid)上。可用 U、C 等字 母分別標識 userid 和 cookieid 維度。

最終形成得標籤示例:

對於用戶是男是女這個標籤,標籤主題是用戶屬性,標籤類型屬於分類型,開發方式爲統計型,爲互斥關係,用戶 維度爲 userid。這樣給男性用戶打上標籤 “A111U001_001”,女性用戶打上標籤 “A111U001_002”,其中 “A111U”爲上面介紹的命名方式,“001”爲一級標籤的 id,後面對於用戶屬性維度的其他一級標籤可用 “002”、 “003” 等方式追加命名,“_”後面的 “001” 和“002”爲該一級標籤下的標籤明細,如果是劃分高、中、低活躍 用戶的,對應一級標籤下的明細可劃分爲“001”、“002”、“003”。

標籤存儲與管理

Hive 與 Druid 數倉存儲標籤計算結果集

因爲數據非常大,所以跑標籤出來的結果必須要通過 hive 和 druid 數倉引擎來完成。

在數據倉庫的建模過程中,主要是事實表和維度表的開發。

事實表依據業務來開發,描述業務的過程,可以理解爲我們對原始數據做 ETL 整理後業務事實。

而維度表就是我們最終形成的用戶維度,維度表是實時變化的,逐漸的建立起用戶的畫像。

比如用戶維度標籤:

首先我們根據之前討論的用戶指標體系,將用戶按照人口,行爲,消費等等建立相關中間表,注意表的命名。

第一張人口屬性表:

同樣的,其他的也按這種方式進行存儲,這種屬性類的計算很容易篩選出來。

然後,我們將用戶的標籤查詢出來,彙總到用戶身上:

最終用戶的標籤就形成了

當然,對於複雜的規則和算法類標籤,就需要在計算中間表時做更復雜的計算,我們需要在 Flink 裏解決這些複雜的計算,未來開發中我們會詳細的討論,這一部分先根據標籤體系把相應的表結構都設計出來。

Mysql 存儲標籤元數據

Mysql 對於小數據量的讀寫速度更快,也更適合我們對標籤定義,管理。我們也可以在前端開發標籤的管理頁面。

我們在 mysql 存儲的字段如圖所示,在頁面上提供編輯等功能,在開發標籤的過程中,就可以控制標籤的使用了。

這樣,我們的標籤體系已經根據實際的業務情況建立起來了,在明確了標籤體系以後,也就明確了我們的業務支撐,從下一章開始我們將正式開始搭建大數據集羣,接入數據,進行標籤開發,未完待續~

參考文獻

《用戶畫像:方法論與工程化解決方案》

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/2hld1eQicdl2SAkzeLrOgw