1. 程式人生 > >乾貨請收好:終於有人把使用者畫像的流程、方法講明白了

乾貨請收好:終於有人把使用者畫像的流程、方法講明白了

 

文章釋出於公號【數智物語】 (ID:decision_engine),關注公號不錯過每一篇乾貨。

 

作者:馬海平 於俊 呂昕 向海

來源:大資料(ID:hzdashuju)

本文摘編自《Spark機器學習進階實戰》

 

導讀:使用者畫像將產品設計的焦點放在目標使用者的動機和行為上,從而避免產品設計人員草率地代表使用者。產品設計人員經常不自覺的把自己當作使用者代表,根據自己的需求設計產品,導致無法抓住實際使用者的需求。往往對產品做了很多功能的升級,使用者卻覺得體驗變差了。

 

在大資料領域,使用者畫像的作用遠不止於此。使用者的行為資料無法直接用於資料分析和模型訓練,我們也無法從使用者的行為日誌中直接獲取有用的資訊。而將使用者的行為資料標籤化以後,我們對使用者就有了一個直觀的認識。

 

同時計算機也能夠理解使用者,將使用者的行為資訊用於個性化推薦、個性化搜尋、廣告精準投放和智慧營銷等領域。

 

01 概述

 

使用者畫像的核心工作就是給使用者打標籤,標籤通常是人為規定的高度精煉的特徵標識,如年齡、性別、地域、興趣等。這些標籤集合就能抽象出一個使用者的資訊全貌,如圖10-1所示是某個使用者的標籤集合,每個標籤分別描述了該使用者的一個維度,各個維度之間相互聯絡,共同構成對使用者的一個整體描述。

 

▲圖10-1 使用者標籤集合

 

02 使用者畫像流程

 

1. 整體流程

 

我們對構建使用者畫像的方法進行總結歸納,發現使用者畫像的構建一般可以分為目標分析、體系構建、畫像建立三步。 

 

畫像構建中用到的技術有資料統計、機器學習和自然語言處理技術(NLP)等,如圖10-2所示。具體的畫像構建方法會在本章後面的部分詳細介紹。

 

▲圖10-2 使用者畫像的構建技術

 

2. 標籤體系

 

目前主流的標籤體系都是層次化的,如下圖10-3所示。首先標籤分為幾個大類,每個大類下進行逐層細分。在構建標籤時,我們只需要構建最下層的標籤,就能夠對映到上面兩級標籤。

 

上層標籤都是抽象的標籤集合,一般沒有實用意義,只有統計意義。例如我們可以統計有人口屬性標籤的使用者比例,但使用者有人口屬性標籤本身對廣告投放沒有任何意義。

 

▲圖10-3 網際網路大資料領域常用標籤體系

 

用於廣告投放和精準營銷的一般是底層標籤,對於底層標籤有兩個要求:一個是每個標籤只能表示一種含義,避免標籤之間的重複和衝突,便於計算機處理;另一個是標籤必須有一定的語義,方便相關人員理解每個標籤的含義。

 

此外,標籤的粒度也是需要注意的,標籤粒度太粗會沒有區分度,粒度過細會導致標籤體系太過複雜而不具有通用性。

 

表10-1列舉了各個大類常見的底層標籤。

 

標籤類別

標籤內容

人口標籤

性別、年齡、地域、教育水平、出生日期、職業、星座

興趣特徵

興趣愛好、使用APP/網站、瀏覽/收藏內容、互動內容、品牌偏好、產品偏好

社會特徵

婚姻狀況、家庭情況、社交/資訊渠道偏好

消費特徵

收入狀況、購買力水平、已購商品、購買渠道偏好、最後購買時間、購買頻次

▲表10-1:常見標籤

 

最後介紹一下各類標籤構建的優先順序。構建的優先順序需要綜合考慮業務需求、構建難易程度等,業務需求各有不同,這裡介紹的優先順序排序方法主要依據構建的難易程度和各類標籤的依存關係,優先順序如圖10-4所示。

 

▲圖10-4 各類標籤的構建優先順序

 

基於原始資料首先構建的是事實標籤,事實標籤可以從資料庫直接獲取(如註冊資訊),或通過簡單的統計得到。這類標籤構建難度低、實際含義明確,且部分標籤可用作後續標籤挖掘的基礎特徵(如產品購買次數可用來作為使用者購物偏好的輸入特徵資料)。

 

事實標籤的構造過程,也是對資料加深理解的過程。對資料進行統計的同時,不僅完成了資料的處理與加工,也對資料的分佈有了一定的瞭解,為高階標籤的構造做好了準備。

 

模型標籤是標籤體系的核心,也是使用者畫像工作量最大的部分,大多數使用者標籤的核心都是模型標籤。模型標籤的構造大多需要用到機器學習和自然語言處理技術,我們下文中介紹的標籤構造方法主要指的是模型標籤,具體的構造演算法會在本文第03章詳細介紹。

 

最後構造的是高階標籤,高階標籤是基於事實標籤和模型標籤進行統計建模得出的,它的構造多與實際的業務指標緊密聯絡。只有完成基礎標籤的構建,才能夠構造高階標籤。構建高階標籤使用的模型,可以是簡單的資料統計,也可以是複雜的機器學習模型。

 

03 構建使用者畫像

 

我們把標籤分為三類,這三類標籤有較大的差異,構建時用到的技術差別也很大。

 

第一類是人口屬性,這一類標籤比較穩定,一旦建立很長一段時間基本不用更新,標籤體系也比較固定;

第二類是興趣屬性,這類標籤隨時間變化很快,標籤有很強的時效性,標籤體系也不固定;

第三類是地理屬性,這一類標籤的時效性跨度很大,如GPS軌跡標籤需要做到實時更新,而常住地標籤一般可以幾個月不用更新,挖掘的方法和前面兩類也大有不同,如圖10-5所示。

 

▲圖10-5 三類標籤屬性

 

1. 人口屬性畫像

 

人口屬性包括年齡、性別、學歷、人生階段、收入水平、消費水平、所屬行業等。這些標籤基本是穩定的,構建一次可以很長一段時間不用更新,標籤的有效期都在一個月以上。同時標籤體系的劃分也比較固定,表10-2是MMA中國無線營銷聯盟對人口屬性的一個劃分。

 

大部分主流的人口屬性標籤都和這個體系比較類似,有些在分段上有一些區別。

 

性別

未知

年齡

12 以下

12-17

18-19

20-24

25-29

30-34

35-39

40-44

45-49

50-54

55-59

60-64

65 及以上

未知

月收入

3500 元以下

3500-5000 元

5000-8000 元

8000-12500 元

12500-25000 元

25001-40000

40000 元以上

未知

婚姻狀態

未婚

已婚

離異

未知

從事行業

廣告/營銷/公關

航天

農林化工

汽車

計算機/網際網路

建築

教育/學生

能源/採礦

金融/保險/房地產

政府/軍事/房地產

服務業

傳媒/出版/娛樂

醫療/保險服務

製藥

零售

電信/網路

旅遊/交通

其它

教育程度

初中及以下

高中

中專

大專

本科

碩士

博士

▲表10-2  人口標籤

 

很多產品(如QQ、facebook等)都會引導使用者填寫基本資訊,這些資訊就包括年齡、性別、收入等大多數的人口屬性,但完整填寫個人資訊的使用者只佔很少一部分。而對於無社交屬性的產品(如輸入法、團購APP、視訊網站等)使用者資訊的填充率非常低,有的甚至不足5%。

 

在這種情況下,我們一般會用填寫了資訊的這部分使用者作為樣本,把使用者的行為資料作為特徵訓練模型,對無標籤的使用者進行人口屬性的預測。這種模型把使用者的標籤傳給和他行為相似的使用者,可以認為是對人群進行了標籤擴散,因此常被稱為標籤擴散模型。

 

下面我們用視訊網站性別年齡畫像的例子來說明標籤擴散模型是如何構建的。

 

一個視訊網站,希望瞭解自己的使用者組成,於是對使用者的性別進行畫像。通過資料統計,有大約30%的使用者註冊時填寫了個人資訊,我們將這30%的使用者作為訓練集,來構建全量使用者的性別畫像,我們的資料如表10-3所示。

 

Uid

Gender

Watched  videos

525252

Male

Game  of throat

532626

 

Runing  men、最強大腦

526267

 

琅琊榜、偽裝者

573373

Female

歡樂喜劇人

▲表10-3:視訊網站使用者資料

 

下面我們來構建特徵。通過分析,我們發現男性和女性,對於影片的偏好是有差別的,因此使用觀看的影片列表來預測使用者性別有一定的可行性。此外我們還可以考慮使用者的觀看時間、瀏覽器、觀看時長等,為了簡化,這裡我們只使用使用者觀看的影片特徵。

 

由於觀看影片特徵是稀疏特徵,我們可以使用呼叫MLlib,使用LR、線性SVM等模型進行訓練。考慮到註冊使用者填寫的使用者資訊本身的準確率不高,我們可以從30%的樣本集中提取準確率較高的部分(如使用者資訊填寫較完備的)用於訓練,因此我們整體的訓練流程如圖10-6所示。

 

對於預測性別這樣的二分類模型,如果行為的區分度較好,一般準確率和覆蓋率都可以達到70%左右。

 

▲圖10-6 訓練流程

 

對於人口屬性標籤,只要有一定的樣本標籤資料,並找到能夠區分標籤分類的使用者行為特徵,就可以構建標籤擴散模型。其中使用的技術方法主要是機器學習中的分類技術,常用的模型有LR、FM、SVM、GBDT等。

 

2. 興趣畫像

 

興趣畫像是網際網路領域使用最廣泛的畫像,網際網路廣告、個性化推薦、精準營銷等各個領域最核心的標籤都是興趣標籤。興趣畫像主要是從使用者海量行為日誌中進行核心資訊的抽取、標籤化和統計,因此在構建使用者興趣畫像之前需要先對使用者有行為的內容進行內容建模。

 

內容建模需要注意粒度,過細的粒度會導致標籤沒有泛化能力和使用價值,過粗的粒度會導致沒有區分度。

 

為了保證興趣畫像既有一定的準確度又有較好的泛化性,我們會構建層次化的興趣標籤體系,使用中同時用幾個粒度的標籤去匹配,既保證了標籤的準確性,又保證了標籤的泛化性。下面我們用新聞的使用者興趣畫像舉例,介紹如何構建層次化的興趣標籤。

 

2.1 內容建模

 

新聞資料本身是非結構化的,首先需要人工構建一個層次的標籤體系。我們考慮如下圖10-7的一篇新聞,看看哪些內容可以表示使用者的興趣。

 

▲圖10-7 新聞例子

 

首先,這是一篇體育新聞,體育這個新聞分類可以表示使用者興趣,但是這個標籤太粗了,使用者可能只對足球感興趣,體育這個標籤就顯得不夠準確。

 

其次,我們可以使用新聞中的關鍵詞,尤其是裡面的專有名詞(人名、機構名),如“桑切斯”、“阿森納”、“厄齊爾”,這些詞也表示了使用者的興趣。關鍵詞的主要問題在於粒度太細,如果一天的新聞裡沒有這些關鍵詞出現,就無法給使用者推薦內容。

 

最後,我們希望有一箇中間粒度的標籤,既有一定的準確度,又有一定的泛化能力。於是我們嘗試對關鍵詞進行聚類,把一類關鍵詞當成一個標籤,或者把一個分類下的新聞進行拆分,生成像“足球”這種粒度介於關鍵詞和分類之間的主題標籤。我們可以使用文字主題聚類完成主題標籤的構建。

 

至此我們就完成了對新聞內容從粗到細的“分類-主題-關鍵詞”三層標籤體系內容建模,新聞的三層標籤如表10-4所示。

 

 

分類

主題

關鍵詞

使用演算法

文字分類、SVM、LR、Bayes

PLSA、LDA

Tf*idf、專門識別、領域詞表

粒度

泛化性

舉例

體育、財經、娛樂

足球、理財

梅西、川普、機器學習

量級

10-30

100-1000

百萬

▲表10-4  三層標籤體系

 

既然主題的準確率和覆蓋率都不錯,我們只使用主題不就可以了嘛?為什麼還要構建分類和關鍵詞這兩層標籤呢?這麼做是為了給使用者進行儘可能精確和全面的內容推薦。

 

當用戶的關鍵詞命中新聞時,顯然能夠給使用者更準確的推薦,這時就不需要再使用主題標籤;而對於比較小眾的主題(如體育類的冰上運動主題),若當天沒有新聞覆蓋,我們就可以根據分類標籤進行推薦。層次標籤兼顧了對使用者興趣刻畫的覆蓋率和準確性。

 

2.2 興趣衰減

 

在完成內容建模以後,我們就可以根據使用者點選,計算使用者對分類、主題、關鍵詞的興趣,得到使用者興趣標籤的權重。最簡單的計數方法是使用者點選一篇新聞,就把使用者對該篇新聞的所有標籤在使用者興趣上加一,使用者對每個詞的興趣計算就使用如下的公式:

 

 

其中:詞在這次瀏覽的新聞中出現C=1,否則C=0,weight表示詞在這篇新聞中的權重。

 

這樣做有兩個問題:一個是使用者的興趣累加是線性的,數值會非常大,老的興趣權重會特別高;另一個是使用者的興趣有很強的時效性,昨天的點選要比一個月之前的點選重要的多,線性疊加無法突出近期興趣。

 

為了解決這個問題,需要要對使用者興趣得分進行衰減,我們使用如下的方法對興趣得分進行次數衰減和時間衰減。 

 

次數衰減的公式如下:

 

 

其中,α是衰減因子,每次都對上一次的分數做衰減,最終得分會收斂到一個穩定值 ,α取0.9時,得分會無限接近10。

 

時間衰減的公式如下:

 

 

它表示根據時間對興趣進行衰減,這樣做可以保證時間較早的興趣會在一段時間以後變的非常弱,同時近期的興趣會有更大的權重。根據使用者興趣變化的速度、使用者活躍度等因素,也可以對興趣進行周級別、月級別或小時級別的衰減。

 

3. 地理位置畫像

 

地理位置畫像一般分為兩部分:一部分是常駐地畫像;一部分是GPS畫像。兩類畫像的差別很大,常駐地畫像比較容易構造,且標籤比較穩定,GPS畫像需要實時更新。

 

常駐地包括國家、省份、城市三級,一般只細化到城市粒度。常駐地的挖掘基於使用者的IP地址資訊,對使用者的IP地址進行解析,對應到相應的城市,對使用者IP出現的城市進行統計就可以得到常駐城市標籤。

 

使用者的常駐城市標籤,不僅可以用來統計各個地域的使用者分佈,還可以根據使用者在各個城市之間的出行軌跡識別出差人群、旅遊人群等,如圖10-8所示是人群出行軌跡的一個示例。

 

▲圖10-8 人群出行軌跡

 

GPS資料一般從手機端收集,但很多手機APP沒有獲取使用者 GPS資訊的許可權。能夠獲取使用者GPS資訊的主要是百度地圖、滴滴打車等出行導航類APP,此外收集到的使用者GPS資料比較稀疏。

 

百度地圖使用該方法結合時間段資料,構建了使用者公司和家的GPS標籤。此外百度地圖還基於GPS資訊,統計各條路上的車流量,進行路況分析,如圖10-9是北京市的實時路況圖,紅色表示擁堵線路。

 

▲圖10-9 北京的實時路況圖

 

04 使用者畫像評估和使用

 

人口屬性畫像的相關指標比較容易評估,而興趣畫像的標籤比較模糊,興趣畫像的人為評估比較困難,我們對於興趣畫像的常用評估方法是設計小流量的A/B-test進行驗證。

 

我們可以篩選一部分標籤使用者,給這部分使用者進行和標籤相關的推送,看標籤使用者對相關內容是否有更好的反饋。

 

例如,在新聞推薦中,我們給使用者構建了興趣畫像,我們從體育類興趣使用者中選取一小批使用者,給他們推送體育類新聞,如果這批使用者的點選率和閱讀時長明顯高於平均水平,就說明標籤是有效的。

 

1. 效果評估

 

使用者畫像效果最直接的評估方法就是看其對實際業務的提升,如網際網路廣告投放中畫像效果主要看使用畫像以後點選率和收入的提升,精準營銷過程中主要看使用畫像後銷量的提升等。

 

但是如果把一個沒有經過效果評估的模型直接用到線上,風險是很大的,因此我們需要一些上線前可計算的指標來衡量使用者畫像的質量。

 

使用者畫像的評估指標主要是指準確率、覆蓋率、時效性等指標。

 

1.1 準確率

 

標籤的準確率指的是被打上正確標籤的使用者比例,準確率是使用者畫像最核心的指標,一個準確率非常低的標籤是沒有應用價值的。準確率的計算公式如下:

 

 

其中| Utag |表示被打上標籤的使用者數,| Utag=true |表示有標籤使用者中被打對標籤的使用者數。準確率的評估一般有兩種方法:一種是在標註資料集裡留一部分測試資料用於計算模型的準確率;另一種是在全量使用者中抽一批使用者,進行人工標註,評估準確率。

 

由於初始的標註資料集的分佈和全量使用者分佈相比可能有一定偏差,故後一種方法的資料更可信。準確率一般是對每個標籤分別評估,多個標籤放在一起評估準確率是沒有意義的。

 

1.2 覆蓋率

 

標籤的覆蓋率指的是被打上標籤的使用者佔全量使用者的比例,我們希望標籤的覆蓋率儘可能的高。但覆蓋率和準確率是一對矛盾的指標,需要對二者進行權衡,一般的做法是在準確率符合一定標準的情況下,儘可能的提升覆蓋率。

 

我們希望覆蓋儘可能多的使用者,同時給每個使用者打上儘可能多的標籤,因此標籤整體的覆蓋率一般拆解為兩個指標來評估。一個是標籤覆蓋的使用者比例,另一個是覆蓋使用者的人均標籤數,前一個指標是覆蓋的廣度,後一個指標表示覆蓋的密度。

 

使用者覆蓋比例的計算方法是:

 

 

其中| U |表示使用者的總數,| Utag |表示被打上標籤的使用者數。

 

人均標籤數的計算方法是:

 

 

其中| tagi |表示每個使用者的標籤數,| Utag |表示被打上標籤的使用者數。覆蓋率既可以對單一標籤計算,也可以對某一類標籤計算,還可以對全量標籤計算,這些都是有統計意義的。

 

1.3 時效性

 

有些標籤的時效性很強,如興趣標籤、出現軌跡標籤等,一週之前的就沒有意義了;有些標籤基本沒有時效性,如性別、年齡等,可以有一年到幾年的有效期。對於不同的標籤,需要建立合理的更新機制,以保證標籤時間上的有效性。

 

1.4 其他指標

 

標籤還需要有一定的可解釋性,便於理解;同時需要便於維護且有一定的可擴充套件性,方便後續標籤的新增。這些指標難以給出量化的標準,但在構架使用者畫像時也需要注意。

 

2. 畫像使用

 

使用者畫像在構建和評估之後,就可以在業務中應用,一般需要一個視覺化平臺,對標籤進行檢視和檢索。畫像的視覺化一般使用餅圖、柱狀圖等對標籤的覆蓋人數、覆蓋比例等指標做形象的展示,如下圖10-10所示是使用者畫像的一個視覺化介面。

 

▲圖10-10 使用者畫像的視覺化介面

 

此外,對於構建的畫像,我們還可以使用不同維度的標籤,進行高階的組合分析,產出高質量的分析報告。在智慧營銷、計算廣告、個性化推薦等領域使用者畫像都可以得到應用,具體的應用方法,與其應用領域結合比較緊密,我們不再詳細介紹。