1. 程式人生 > >使用者畫像入門(轉)

使用者畫像入門(轉)

這篇文章在巨集觀上很好地描述了使用者畫像的主要內容。(文章內的圖片來源於不同帖子,侵刪)

一、 什麼是使用者畫像

        使用者畫像是指根據使用者的屬性、偏好、生活習慣、行為等資訊,抽象出來的標籤化使用者模型。通俗說就是給使用者打標籤,而標籤是通過對使用者資訊分析而來的高度精煉的特徵標識。通過打標籤可以利用一些高度概括、容易理解的特徵來描述使用者,可以讓人更容易理解使用者,並且可以方便計算機處理。

使用者畫像是對現實世界中使用者的建模,使用者畫像包含目標,方式,組織,標準,驗證這5個方面。

目標:指的是描述人,認識人,瞭解人,理解人。

方式:分為非形式化手段,如使用文字、語言、影象、視訊等方式描述人;形式化手段,即使用資料的方式來刻畫人物的畫像。

組織:指的是結構化、非結構化的組織形式。

標準:指的是使用常識、共識、知識體系的漸進過程來刻畫人物,認識瞭解使用者。

驗證:依據側重說明了使用者畫像應該來源事實、經得起推理和檢驗。

        在產品早期和發展期,會較多地藉助使用者畫像,幫助產品人員理解使用者的需求,想象使用者使用的場景,產品設計從為所有人做產品變成為三四個人做產品,間接的降低複雜度。

二、 使用者畫像的作用

在網際網路、電商領域使用者畫像常用來作為精準營銷、推薦系統的基礎性工作,其作用總體包括:

(1)精準營銷:根據歷史使用者特徵,分析產品的潛在使用者和使用者的潛在需求,針對特定群體,利用簡訊、郵件等方式進行營銷。

(2)使用者統計:根據使用者的屬性、行為特徵對使用者進行分類後,統計不同特徵下的使用者數量、分佈;分析不同使用者畫像群體的分佈特徵。

(3)資料探勘:以使用者畫像為基礎構建推薦系統、搜尋引擎、廣告投放系統,提升服務精準度。

(4)服務產品:對產品進行使用者畫像,對產品進行受眾分析,更透徹地理解使用者使用產品的心理動機和行為習慣,完善產品運營,提升服務質量。

(5)行業報告&使用者研究:通過使用者畫像分析可以瞭解行業動態,比如人群消費習慣、消費偏好分析、不同地域品類消費差異分析

        根據使用者畫像的作用可以看出,使用者畫像的使用場景較多,使用者畫像可以用來挖掘使用者興趣、偏好、人口統計學特徵,主要目的是提升營銷精準度、推薦匹配度,終極目的是提升產品服務,起到提升企業利潤。使用者畫像適合於各個產品週期:從新使用者的引流到潛在使用者的挖掘、從老使用者的培養到流失使用者的迴流等。

        總結來說,使用者畫像必須從實際業務場景出發,解決實際的業務問題,之所以進行使用者畫像,要麼是獲取新使用者,要麼是提升使用者體驗、或者挽回流失使用者等具有明確的業務目標。

        另外關於使用者畫像資料維度的問題,並不是說資料維度越豐富越好,總之,畫像維度的設計同樣需要緊跟業務實際情況進行開展。

 三、 使用者畫像的分類

        從畫像方法來說,可以分為定性畫像、定性+定量畫像、定量畫像

        從應用角度來看,可以分為行為畫像、健康畫像、企業信用畫像、個人信用畫像、靜態產品畫像、旋轉裝置畫像、社會畫像和經濟畫像等。

四、 使用者畫像需要用到哪些資料

        一般來說,根據具體的業務內容,會有不同的資料,不同的業務目標,也會使用不同的資料。在網際網路領域,使用者畫像資料可以包括以下內容:

(1)人口屬性:包括性別、年齡等人的基本資訊

(2)興趣特徵:瀏覽內容、收藏內容、閱讀諮詢、購買物品偏好等

(3)消費特徵:與消費相關的特徵

(4)位置特徵:使用者所處城市、所處居住區域、使用者移動軌跡等

(5)裝置屬性:使用的終端特徵等

(6)行為資料:訪問時間、瀏覽路徑等使用者在網站的行為日誌資料

(7)社交資料:使用者社交相關資料

        使用者畫像資料來源廣泛,這些資料是全方位瞭解使用者的基礎,這裡以Qunar的畫像為例,其畫像資料主要維度如下所示,包括使用者RFM資訊、航線資訊等。

        Qunar的畫像資料倉庫構建都是基於Qunar基礎資料倉庫構建,然後按照維度進行劃分。

五、 使用者畫像主要應用場景

a)使用者屬性

b)使用者標籤畫像

c)使用者偏好畫像

d)使用者流失

e)使用者行為

f)產品設計

g) 個性化推薦、廣告系統、活動營銷、內容推薦、興趣偏好

六、 使用者畫像使用的技術方法

七、 使用者畫像標籤體系的建立

1、什麼是標籤體系

        使用者畫像是對現實使用者做的一個數學模型,在整個數學模型中,核心是怎麼描述業務知識體系,而這個業務知識體系就是本體論,本體論很複雜,我們找到一個特別樸素的實現,就是標籤。

        標籤是某一種使用者特徵的符號表示。是一種內容組織方式,是一種關聯性很強的關鍵字,能方便的幫助我們找到合適的內容及內容分類。(注:簡單說,就是你把使用者分到多少個類別裡面去,這些類是什麼,彼此之間有什麼關係,就構成了標籤體系

        標籤解決的是描述(或命名)問題,但在實際應用中,還需要解決資料之間的關聯,所以通常將標籤作為一個體系來設計,以解決資料之間的關聯問題。

        一般來說,將能關聯到具體使用者資料的標籤,稱為葉子標籤。對葉子標籤進行分類彙總的標籤,稱為父標籤。父標籤和葉子標籤共同構成標籤體系,但兩者是相對概念。例如:下表中,地市、型號在標籤體系中相對於省份、品牌,是葉子標籤。

一級標籤

二級標籤

三級標籤

四級標籤

 

移動屬性

使用者所在地

省份

地市

手機品牌

品牌

型號

 

 

業務屬性

 

 

使用者等級

普通

音樂普通會員

音樂高階會員

音樂VIP會員

        使用者畫像標籤體系建立後一般要包含以下幾個方面的內容

(1)標籤分類

        使用者畫像標籤可以分為基礎屬性標籤和行為屬性標籤。

        由於基於一個目標的畫像,其標籤是在動態擴充套件的,所以其標籤體系也沒有統一的模板,在大分類上,與自身的業務特徵有很大的關聯,在整體思路上可以從橫縱兩個維度展開思考:橫向是產品內資料和產品外資料,縱向是線上資料和線下資料。而正中間則是永恆不變的“人物基礎屬性”。

        如果說其他的分類因企業特徵而定,那麼只有人物特徵屬性(至於名字叫什麼不重要,關鍵是內涵)是各家企業不能缺失的板塊。

        所謂人物基礎屬性指的是:使用者客觀的屬性而非使用者自我表達的屬性,也就是描述使用者真實人口屬性的標籤。所謂非“自我表達”,舉例來說,某產品內個人資訊有性別一項,使用者填寫為“女”,而通過使用者上傳的身份證號,以及使用者照片,使用者購買的產品,甚至使用者打來的客服電話,都發現該使用者性別是“男性”。那麼在人物基礎屬性中的性別,應該標識的是“男性”,但是使用者資訊標籤部分,自我描述的性別則可能標註為女性。

(2)標籤級別(標籤的體系結構)

        分級有兩個層面的含義,其一是:指標到最低層級的涵蓋的層級;其二是指:指標的運算層級。其一非常好理解,這裡重點說運算層級。

        標籤從運算層級角度可以分為三層:事實標籤、模型標籤、預測標籤。

        事實標籤:是通過對於原始資料庫的資料進行統計分析而來的,比如使用者投訴次數,是基於使用者一段時間內實際投訴的行為做的統計。

        模型標籤:模型標籤是以事實標籤為基礎,通過構建事實標籤與業務問題之間的模型,進行模型分析得到。比如,結合使用者實際投訴次數、使用者購買品類、使用者支付的金額等,進行使用者投訴傾向型別的識別,方便客服進行分類處理。

        預測標籤:則是在模型的基礎上做預測,比如針對投訴傾向型別結構的變化,預測平臺輿情風險指數。

(3)標籤命名&賦值

        我們用一張圖來說明一下命名和賦值的差別,只要在構建使用者標籤的過程種,有意識的區別標籤命名和賦值足矣,不再贅述。

(4)標籤屬性

        標籤屬性可以理解為針對標籤進行的再標註,這一環節的工作主要目的是幫助內部理解標籤賦值的來源,進而理解指標的含義。如圖所示,可以總結為5種來源:

1、固有屬性:是指這些指標的賦值體現的是使用者生而有之或者事實存在的,不以外界條件或者自身認知的改變而改變的屬性。比如:性別、年齡、是否生育等。

2、推導屬性:由其他屬性推導而來的屬性,比如星座,我們可以通過使用者的生日推導,比如使用者的品類偏好,則可以通過日常購買來推導。

3、行為屬性:產品內外實際發生的行為被記錄後形成的賦值,比如使用者的登陸時間,頁面停留時長等。

4、態度屬性:使用者自我表達的態度和意願。比如說我們通過一份問卷向用戶詢問一些問題,並形成標籤,如詢問使用者:是否願意結婚,是否喜歡某個品牌等。當然在大資料的需求背景下,利用問卷收集使用者標籤的方法效率顯得過低,更多的是利用產品中相關的模組做了使用者態度資訊收集。

5、測試屬性:測試屬性是指來自使用者的態度表達,但並不是使用者直接表達的內容,而是通過分析使用者的表達,結構化處理後,得出的測試結論。比如,使用者填答了一系列的態度問卷,推匯出使用者的價值觀型別等。

        值得注意的是,一種標籤的屬性可以是多重的,比如:個人星座這個標籤,既是固有屬性,也是推導屬性,它首先不以個人的意志為轉移,同時可以通過身份證號推導而來。

        即便你成功了建立使用者畫像的標籤體系,也不意味著你就開啟了使用者畫像的成功之路,因為有很大的可能是這些標籤根本無法獲得,或者說無法賦值。

        標籤無法賦值的原因有:資料無法採集(沒有有效的渠道和方法採集到準確的資料,比如使用者身份證號)、資料庫不能打通、建模失敗(預測指標無法獲得賦值)等等。

 2、標籤體系結構

        標籤體系可以歸納出如下的層級結構。

(1)原始輸入層

        主要指使用者的歷史資料資訊,如會員資訊、消費資訊、網路行為資訊。經過資料的清洗,從而達到使用者標籤體系的事實層。

(2)事實層

        事實層是使用者資訊的準確描述層,其最重要的特點是,可以從使用者身上得到確定與肯定的驗證。如使用者的人口屬性、性別、年齡、籍貫、會員資訊等。

(3)模型預測層

        通過利用統計建模,資料探勘、機器學習的思想,對事實層的資料進行分析利用,從而得到描述使用者更為深刻的資訊。如通過建模分析,可以對使用者的性別偏好進行預測,從而能對沒有收集到性別資料的新使用者進行預測。還可以通過建模與資料探勘,使用聚類、關聯思想,發現人群的聚集特徵。

(4)營銷模型預測

        利用模型預測層結果,對不同使用者群體,相同需求的客戶,通過打標籤,建立營銷模型,從而分析使用者的活躍度、忠誠度、流失度、影響力等可以用來進行營銷的資料。

(5)業務層

        業務層可以是展現層。它是業務邏輯的直接體現,如圖中所表示的,有車一族、有房一族等。

3、標籤體系結構分類

        一般來說,設計一個標籤體系有3種思路,分別是:(1)結構化標籤體系;(2)半結構化標籤體系;(3)非結構化標籤體系。

(1)結構化標籤體系

        簡單地說,就是標籤組織成比較規整的樹或森林,有明確的層級劃分和父子關係。結構化標籤體系看起來整潔,又比較好解釋,在面向品牌廣告井噴時比較好用。性別、年齡這類人口屬性標籤,是最典型的結構化體系。下圖就是Yahoo!受眾定向廣告平臺採用的結構化標籤體系。

(2)半結構化標籤體系

        在用於效果廣告時,標籤設計的靈活性大大提高了。標籤體系是不是規整,就不那麼重要了,只要有效果就行。在這種思路下,使用者標籤往往是在行業上呈現出一定的並列體系,而各行業內的標籤設計則以“逮住老鼠就是好貓”為最高指導原則,切不可拘泥於形式。下圖是Bluekai聚合多家資料形成的半結構化標籤體系。

(3)非結構化標籤體系

        非結構化,就是各個標籤就事論事,各自反應各自的使用者興趣,彼此之間並無層級關係,也很難組織成規整的樹狀結構。非結構化標籤的典型例子,是搜尋廣告裡用的關鍵詞。還有Facebook用的使用者興趣詞。

 4、使用者畫像標籤層級的建模方法

        使用者畫像的核心是標籤的建立,使用者畫像標籤建立的各個階段使用的模型和演算法如下圖所示。

原始資料層。對原始資料,我們主要使用文字挖掘的演算法進行分析如常見的TF-IDF、TopicModel主題模型、LDA 等演算法,主要是對原始資料的預處理和清洗,對使用者資料的匹配和標識。

事實標籤層。通過文字挖掘的方法,我們從資料中儘可能多的提取事實資料資訊,如人口屬性資訊,使用者行為資訊,消費資訊等。其主要使用的演算法是分類和聚類。分類主要用於預測新使用者,資訊不全的使用者的資訊,對使用者進行預測分類。聚類主要用於分析挖掘出具有相同特徵的群體資訊,進行受眾細分,市場細分。對於文字的特徵資料,其主要使用相似度計算,如餘弦夾角,歐式距離等。

模型標籤層。使用機器學習的方法,結合推薦演算法。模型標籤層完成對使用者的標籤建模與使用者標識。其主要可以採用的演算法有迴歸,決策樹,支援向量機等。通過建模分析,我們可以進一步挖掘出使用者的群體特徵和個性權重特徵,從而完善使用者的價值衡量,服務滿意度衡量等。

預測層。也是標籤體系中的營銷模型預測層。這一層級利用預測演算法,如機器學習中的監督學習,計量經濟學中的迴歸預測,數學中的線性規劃等方法。實習對使用者的流失預測,忠實度預測,興趣程度預測等等,從而實現精準營銷,個性化和定製化服務。

不同的標籤層級會考慮使用對其適用的建模方法,對一些具體的問題,有專門的文章對其進行研究。

八、 使用者畫像基本步驟[F2] 

        根據具體業務規則確定使用者畫像方向後,開展使用者畫像分析,總體來說,一個使用者畫像流程包括以下三步。(1)使用者畫像的基本方向;(2)使用者資料收集;(3)使用者標籤建模。

        另外,需要注意的是使用者畫像的時效性,構建畫像的資料多為歷史資料,但使用者的行為、偏好等特徵多會隨著時間的推移而發生變化。

九、 使用者畫像驗證

十、 使用者畫像的實際例子

        注:此處涉及到工作中的專案內容,由於保密,就不能分享了

十一、    使用者畫像平臺&架構

使用者畫像平臺需要實現的功能。

        使用者畫像系統技術架構

(1)    資料處理

a、資料指標的梳理來源於各個系統日常積累的日誌記錄系統,通過sqoop匯入hdfs,也可以用程式碼來實現,比如spark的jdbc連線傳統資料庫進行資料的cache。還有一種方式,可以通過將資料寫入本地檔案,然後通過sparksql的load或者hive的export等方式匯入HDFS。

b、通過hive編寫UDF 或者hiveql根據業務邏輯拼接ETL,使使用者對應上不同的使用者標籤資料(這裡的指標可以理解為每個使用者打上了相應的標籤),生成相應的源表資料,以便於後續使用者畫像系統,通過不同的規則進行標籤寬表的生成。

(2)    資料平臺

a、資料平臺應用的分散式檔案系統為Hadoop的HDFS,因為Hadoop2.0以後,任何的大資料應用都可以通過ResoureManager申請資源,註冊服務。比如(sparksubmit、hive)等等。而基於記憶體的計算框架的出現,就並不選用Hadoop的MapReduce了。當然很多離線處理的業務,很多人還是傾向於使用Hadoop,但是Hadoop封裝的函式只有map和Reduce太過單一,而不像spark一類的計算框架有更多封裝的函式(可參考部落格spark專欄)。可以大大提升開發效率。

b、計算的框架選用Spark以及RHadoop,這裡Spark的主要用途有兩種,一種是對於資料處理與上層應用所指定的規則的資料篩選過濾,(通過Scala編寫spark程式碼提交至sparksubmit)。一種是服務於上層應用的SparkSQL(通過啟動spark thriftserver與前臺應用進行連線)。 RHadoop的應用主要在於對於標籤資料的打分,比如利用協同過濾演算法等各種推薦演算法對資料進行各方面評分。

c、MongoDB記憶體資料的應用主要在於對於單個使用者的實時的查詢,也是通過對spark資料梳理後的標籤寬表進行資料格式轉換(json格式)匯入mongodb,前臺應用可通過連線mongodb進行資料轉換,從而進行單個標籤的展現。(當然也可將資料轉換為Redis中的key value形式,匯入Redis叢集)

d、mysql的作用在於針對上層應用標籤規則的儲存,以及頁面資訊的展現。後臺的資料寬表是與spark相關聯,通過連線mysql隨後cache元資料進行filter、select、map、reduce等對元資料資訊的整理,再與真實存在於Hdfs的資料進行處理。

(3)    面向應用

從剛才的資料整理、資料平臺的計算,都已經將服務於上層應用的標籤大寬表生成。(使用者所對應的各類標籤資訊)。那麼前臺根據業務邏輯,勾選不同的標籤進行求和、剔除等操作,比如本月流量大於200M使用者(標籤)+本月消費超過100元使用者(標籤)進行和的操作,通過前臺程式碼實現sql的拼接,進行客戶數目的探索。這裡就是通過jdbc的方式連線spark的thriftserver,通過叢集進行HDFS上的大寬表的運算求count。(這裡要注意一點,很多sql聚合函式以及多表關聯join 相當於hadoop的mapreduce的shuffle,很容易造成記憶體溢位,相關引數調整可參考本部落格spark欄目中的配置資訊)這樣便可以定位相應的客戶數量,從而進行客戶群、標籤的分析,產品的策略匹配從而精準營銷。

十二、使用者畫像困難點、使用者畫像瓶頸

使用者畫像困難點主要表現為以下4個方面

資料蒐集和資料探勘

       在畫像之前需要知道產品的使用者特徵和使用者使用產品的行為等因素,從而從總體上掌握對使用者需求需求

         建立使用者畫像不是抽離出典型進行單獨標籤化的過程,而是要融合邊緣環境的相關資訊來進行討論

定量調研分析

使用者標籤畫像

我們的使用者標籤包含基本特徵、社會身份、顧客使用者生命週期、類目偏好等等。比如說你怎麼判斷一個人是不是對女裝感興趣,假設我們有一個類目就是女裝,那很好辦,如果你購買都是女裝,那會認為你這個人對女裝比較感興趣。

挑戰

我們期間遇到了兩方面的挑戰:

億級畫像系統實踐和應用

記錄和儲存億級使用者的畫像,支援和擴充套件不斷增加的維度和偏好,毫秒級的更新,支撐個公司性化推薦、廣告投放和精細化營銷等產品。

轉自網路,感謝原作者

 

這裡講解下使用者畫像的技術架構和整體實現,那麼就從資料整理、資料平臺、面向應用三個方面來討論一個架構的實現(個人見解)。

資料整理:

1、資料指標的的梳理來源於各個系統日常積累的日誌記錄系統,通過sqoop匯入hdfs,也可以用程式碼來實現,比如spark的jdbc連線傳統資料庫進行資料的cache。還有一種方式,可以通過將資料寫入本地檔案,然後通過sparksql的load或者hive的export等方式匯入HDFS。

2、通過hive編寫UDF 或者hiveql 根據業務邏輯拼接ETL,使使用者對應上不同的使用者標籤資料(這裡的指標可以理解為為每個使用者打上了相應的標籤),生成相應的源表資料,以便於後續使用者畫像系統,通過不同的規則進行標籤寬表的生成。

資料平臺

1、資料平臺應用的分散式檔案系統為Hadoop的HDFS,因為Hadoop2.0以後,任何的大資料應用都可以通過ResoureManager申請資源,註冊服務。比如(sparksubmit、hive)等等。而基於記憶體的計算框架的出現,就並不選用hadoop的MapReduce了。當然很多離線處理的業務,很多人還是傾向於使用Hadoop,但是hadoop的封裝的函式只有map和Reduce太過單一,而不像spark一類的計算框架有更多封裝的函式(可參考部落格spark專欄)。可以大大提升開發效率。

2、計算的框架選用Spark以及RHadoop,這裡Spark的主要用途有兩種,一種是對於資料處理與上層應用所指定的規則的資料篩選過濾,(通過Scala編寫spark程式碼提交至sparksubmit)。一種是服務於上層應用的SparkSQL(通過啟動spark thriftserver與前臺應用進行連線)。 RHadoop的應用主要在於對於標籤資料的打分,比如利用協同過濾演算法等各種推薦演算法對資料進行各方面評分。

3、MongoDB記憶體資料的應用主要在於對於單個使用者的實時的查詢,也是通過對spark資料梳理後的標籤寬表進行資料格式轉換(json格式)匯入mongodb,前臺應用可通過連線mongodb進行資料轉換,從而進行單個標籤的展現。(當然也可將資料轉換為Redis中的key value形式,匯入Redis叢集)

4、mysql的作用在於針對上層應用標籤規則的儲存,以及頁面資訊的展現。後臺的資料寬表是與spark相關聯,通過連線mysql隨後cache元資料進行filter,select,map,reduce等對元資料資訊的整理,再與真實存在於Hdfs的資料進行處理。

面向應用

1、從剛才的資料整理、資料平臺的計算,都已經將服務於上層應用的標籤大寬表生成。(使用者所對應的各類標籤資訊)。那麼前臺根據業務邏輯,勾選不同的標籤進行求和、剔除等操作,比如本月流量大於200M使用者(標籤)+本月消費超過100元使用者(標籤)進行和的操作,通過前臺程式碼實現sql的拼接,進行客戶數目的探索。這裡就是通過jdbc的方式連線spark的thriftserver,通過叢集進行HDFS上的大寬表的運算求count。(這裡要注意一點,很多sql聚合函式以及多表關聯join 相當於hadoop的mapreduce的shuffle,很容易造成記憶體溢位,相關引數調整可參考本部落格spark欄目中的配置資訊) 這樣便可以定位相應的客戶數量,從而進行客戶群、標籤的分析,產品的策略匹配從而精準營銷。