用戶分析有哪些經典的模型和方法,如何系統的學慣用戶分析?

手裡有幾十萬用戶的基本資料和交易數據,如何系統的進行

1.描述用戶的狀況

2.找到用戶群體的特點、喜好等

3.公司業務哪裡需要進行調整

等等......

現在思路比較混亂,不知道從哪裡下手。

數據挖掘常用的關聯、分類、聚類如何用到用戶分析上並且產生意義?


在我的工作中,經常要和數以億計的用戶數據打交道,而這些數據又有各自不同的來源與特性,下面說說我對這些問題的理解。

1. 基礎數據的整理。

大致可以把基礎數據分類三類:

第一類是結構化的數據,比如用戶的性別、年齡或者一些行為的統計量。一般來說,每一個用戶都會有一條對應的數據,而且這些數據都有明確的含義。因此,對於這部分用戶的數據,並不需要進行特殊的整理,只需要按不同的維度進行存儲就可以了。

第二類是一些特定格式的非結構化數據,比如文本、語音和圖像等等。這些數據具有很強的領域知識,需要用一些特定的演算法進行處理與分析。比如文本可以進行分詞、主題建模或者進行文本的分類,語音和圖像也可以進行類似的分類或聚類。通過上面的工作,就可以把這些特定格式的非結構化數據轉化為好理解的結構化數據(如主題或者分類標籤)進行存儲或進一步的處理。

第三類是半結構數據,主要是數據之間的關聯,比如用戶之間的好友關係,用戶與商品之間的關聯,或者用戶與不同地點之間的關聯。這些數據中往往也蘊含了大量的有用信息,但是與前兩類數據不同,並不適合直接存儲為用戶的特徵,而更適合用圖或者矩陣的方式進行對數據間的關聯進行建模與存儲。

2. 對用戶進行描述

對用戶的描述是一個因業務而異的事情。針對不同的應用場景,可以給用戶設計不同的標籤與類別進行描述,而這些描述也可以具有一定的層次性。那麼如何將這些設計好的標籤與用戶進行關聯呢,也可以分下面一些情況來說:

第一種是最簡單的方式,通過人工制定的規則從用戶的基礎數據中提取出高層的描述 。比如說我們定位「大媽用戶」這個用戶群是45歲到65歲之間的女性,那麼就可以根據底層的性別和年齡數據制定出規則,篩選出對應的用戶,給這些用戶打上對應的標籤。因此,這種方式適用於用戶標籤和用戶的基礎數據之間關係非常明確的場景。

第二種情況是,對用戶群有明確需求,但是並不了解與用戶群相關的用戶特徵。比如說希望找到對某種商品感興趣的用戶群,但是並不知道滿足什麼特徵的用戶會對這種商品感興趣。這個時候,如果能夠通過用戶的線上行為或者人工的線下標註得到一批用戶群的正負樣本,就可以通過監督學習的方式訓練出分類器,根據用戶的基礎數據特徵,預測出用戶是否數據特定的用戶群。

第三種情況是,有大量的用戶特徵,但是對於用戶群並沒有明確的認識。這個時候就可以採用一些無監督學習的方法,如聚類、主題模型和關聯規則等,自動學習出一些有代表性的用戶群,然後根據人工的經驗,對這些用戶群進行描述。

上面說的方法,主要使用了用戶的結構化數據特徵。其實,前面提到的非結構數據也對用戶的描述非常有幫助。如果已經存在一些用戶與用戶或者用戶與其他物品之間的關聯關係,就可以通過這些關聯關係把用戶或者物品的標籤傳播給其他的用戶。及時不存在直接的關係,也可以根據用戶特徵的相似度構造出這樣的關係,user-based CF就是採取的這種方式。這種思路主要是用圖的方式對問題進行建模,從另外一個角度,也可以將圖中的各個實體都映射到具體的線性空間,用向量進行描述。這樣就可以套用前面提到的一些結構化的處理思路進行用戶特徵的挖掘。比如矩陣分解就是一種應用非常廣的空間嵌入方法。

解決了用戶個體的描述,那麼對用戶群體的特徵、喜好也就水到渠成了,簡單的話,只需要對群體用戶進行一些標籤的統計與匯總就可以了,這裡就不過多敘述了。

3. 對業務的幫助

用戶特徵的挖掘對於業務的幫助是非常大的。比如最直接的客戶關係管理、廣告、推薦系統等。對於題主說的對公司業務的調整,也可以根據不同的業務場景結合用戶的數據去具體分析。舉例來說,通過用戶的分析,如果認定目前網站的主要用戶是18歲以下的中小學女生,那麼在網站風格設計上,就可以多考慮這部分人的喜好,改善用戶的體驗。

上面說的只是一個最最簡單的例子。實際上用戶都不是孤立存在的,用戶和特徵之間,用戶和用戶之間,用戶和其他實體之間,都存在著錯綜複雜的關係。理清楚這些數據之間的關係,正是數據挖掘的難點與意義所在。通過合適的方法,可以從看是雜亂無用的數據中提取出最有價值的那些關係,或者說是knowledge。這些knowledge對於指導業務的發展必然是非常有價值的。對了,最後還有一個非常重要的信息,就是時序。通過挖掘數據隨不同時間的變化情況,我們能夠看到很多事物的演化規律,及時對一些突發情況進行預警,也可以對可能發生的一些事情預先分配好資源,以帶來更大的效益。


從樓主描述的場景來看,數據源主要是用戶屬性和交易記錄,而分析目標是通過用戶分群或數據挖掘,實現對公司業務的改進。這塊恰恰比較適合神策分析的多維事件模型和用戶行為分析。

關於多維事件模型,可以看這個說明:數據模型 · Sensors Analytics 使用手冊。關於如何做用戶行為分析,可以查看:如何用數據驅動產品和運營(上) - 瓦利哥的機器歲月 - 知乎專欄,除了文章中提到的方法,還有用戶分群和用戶屬性分析等。

對於數據挖掘演算法和用戶行為分析的結合,不要期望把一個現成的演算法直接套上去就會有效。我曾經也抱著這樣的想法,在2009年的時候,研究了許多用戶行為序列模式的挖掘演算法,結果套到百度知道的用戶行為上之後,發現並沒有挖掘出什麼有價值的信息,甚至還不如直接用正則表達式去匹配。當然,並不是無用。最近我們就又嘗試流失用戶的預測,期望能給客戶帶來實際的價值。


個人觀點;數據分析方法迥異,但思想都是殊途同歸,都是想探清數據之間存在的關係,大數據數代一書說到不要因果關係而要相關關係。其實你把手上的信息彙整成一份份問卷式的數據,無論降緯也好相關性分析也好還是做假設檢驗都能發現到一些有用價值,當然要有一個正確的思路,這需要一定的行業支持作為支撐


推薦閱讀:

如何系統地學習 R 語言的各種 packages?
如何讓R語言寫出來的程序生成一個獨立的可執行文件?
python 可不可以像R那樣保存內存中的變數?
當下對於量化投資有用的R語言包有哪些?
Python 在數據分析工作中的地位與 R 語言、SAS、SPSS 比較如何?

TAG:互聯網 | 數據挖掘 | 用戶 | 數據分析 | R編程語言 |