1.用戶畫像概述
1.1什么是用戶畫像
用戶畫像是對(duì)現(xiàn)實(shí)世界中用戶的數(shù)學(xué)建模
1.2用戶畫像特點(diǎn)
1.源于現(xiàn)實(shí),高于現(xiàn)實(shí)
用戶畫像是描述用戶的數(shù)據(jù),是符合特定業(yè)務(wù)需求的對(duì)用戶的形式化描述
2.源于數(shù)據(jù),高于數(shù)據(jù)
用戶畫像是通過(guò)分析挖掘用戶盡可能多的數(shù)據(jù)信息得到的。
1.3用戶畫像作用

2.用戶畫像構(gòu)建
2.1標(biāo)簽標(biāo)示方法
標(biāo)簽是某一種用戶特征的符號(hào)標(biāo)示,用戶畫像是一個(gè)整體,各個(gè)維度不孤立,標(biāo)簽之間有聯(lián)系,所以用戶畫像本質(zhì)上就是用標(biāo)簽的集合來(lái)標(biāo)示
2.2標(biāo)簽數(shù)學(xué)標(biāo)示
1.每個(gè)標(biāo)簽在特征空間里,都是一個(gè)基向量,現(xiàn)實(shí)中用戶畫像需要的用戶特征往往是成百上千的標(biāo)簽,所以用戶畫像是特征空間中的高維向量。用戶畫像實(shí)質(zhì)上就是特征空間中的高維向量。特征空間的描述最多只能做到三維,四維就是理論上的一個(gè)存在了。
2.基向量之間有關(guān)聯(lián)(向量之間會(huì)存在一個(gè)角度),不一定是正交的。
2.3用戶畫像標(biāo)簽舉例

2.4用戶畫像的挑戰(zhàn)
1.記錄和存儲(chǔ)億級(jí)用戶的畫像,非常消耗我們的存儲(chǔ)
2.隨著用戶興趣的升級(jí),支持和擴(kuò)展不斷增加的維度和偏好
3.毫秒級(jí)的更新
4.支撐個(gè)性化推薦、廣告投放和精細(xì)化營(yíng)銷等產(chǎn)品
3.用戶畫像系統(tǒng)流程

1.明確問題和了解數(shù)據(jù)
1.1.明確問題:是要解決分類問題,還是回歸問題,是要確定用戶是否流失,還是預(yù)測(cè)下一個(gè)月的銷量。
1.2.追求需求和數(shù)據(jù)的匹配:比如評(píng)估用戶是否存在欺詐行為或流失,都是需要了解用戶的用卡習(xí)慣
1.3.明確需求:比如風(fēng)險(xiǎn)評(píng)估,用戶流失都是分類問題,0和1.而聚類問題是對(duì)這一批數(shù)據(jù)未知,不知道把它分成幾類,在現(xiàn)實(shí)問題中比如,我們有一堆文章進(jìn)行分類。
1.4.數(shù)據(jù)的規(guī)模、重要特征的覆蓋度等
2.數(shù)據(jù)預(yù)處理
2.1數(shù)據(jù)集成、數(shù)據(jù)冗余、數(shù)值沖突:數(shù)據(jù)是多種多樣的,可能是微服務(wù)的數(shù)據(jù),第三方傳過(guò)來(lái)的,等等這些數(shù)據(jù)都不是很規(guī)范,比如,對(duì)同一維度的描述,可能有自己的一套定義接口的標(biāo)準(zhǔn),舉例對(duì)男女的描述,有的接口可能用M/F,有的用0,1,接口的規(guī)范不一樣,所以需要進(jìn)行預(yù)處理。
2.2數(shù)據(jù)采樣:保證數(shù)據(jù)綜合的覆蓋所有可能出現(xiàn)的情況
2.3數(shù)據(jù)清洗、缺失值處理與噪聲數(shù)據(jù)
3.特征工程
3.1特征概述
數(shù)據(jù)和特征決定了機(jī)器學(xué)習(xí)的上限,而模型和算法只是逼近這個(gè)上限而已
特征:對(duì)所需解決問題有用的屬性
特征的提取、選擇和構(gòu)造:
1.針對(duì)所解決的問題選擇最有用的特征集合
2.通過(guò)相關(guān)系數(shù)等方式來(lái)計(jì)算特征的重要性(人工篩選、算法(隨機(jī)森林)、PCA自動(dòng)降維)
3.2特征提取:業(yè)務(wù)日志、WEB公開數(shù)據(jù)抓取、第三方合作
3.3特征處理:特征清洗、特征預(yù)處理(值處理、特征選擇、特征組合、降維)、商業(yè)加工
3.4特征監(jiān)控:
指標(biāo):時(shí)效性、覆蓋率和異常值
可視化和預(yù)警:儀表盤監(jiān)控
4.模型與算法

統(tǒng)計(jì)問題:
1.平滑:針對(duì)一些稀疏問題進(jìn)行處理,在一些樣本不夠的情況下,一些樣本特征比例為0的數(shù)據(jù)是我們不希望看到的就做平滑處理
2.歸一化:歸納和統(tǒng)一,降低數(shù)據(jù)處理復(fù)雜度,把零散的數(shù)據(jù)降為0~1之間
分類問題:
2.1二分類:常見的算法有LR、SVM、RF、GBDT、NB
2.2多分類:RF、GBDT、最大熵、二分類+one vs all
回歸問題:
常用的算法有ALS、Lasso、Ridge、回歸樹
聚類問題:
Kmeans等
語(yǔ)義分析:涉及到分詞、LDA等
高維偏好:有些維度很高處理難度大,就進(jìn)行降維可使用協(xié)同過(guò)濾里ALS、Slope算法
2.3常用模型實(shí)例
通常一個(gè)問題的解決需要嘗試2~3種算法,但是最終可能選擇其中的一種來(lái)上線(AB測(cè)試)。
邏輯回歸一般效果還不錯(cuò),模型非常簡(jiǎn)潔,而且效率很高,最重要的一點(diǎn)是適合并行的分布式處理,所以邏輯回歸是用的非常多的非常簡(jiǎn)單高效的一種算法,下圖是邏輯回歸與支持向量機(jī)的使用準(zhǔn)確率比較:

4.用戶畫像系統(tǒng)架構(gòu)
1.架構(gòu)概述圖如下

數(shù)據(jù)采集—>數(shù)據(jù)預(yù)處理—>數(shù)據(jù)存儲(chǔ)—>離線和實(shí)時(shí)計(jì)算—>存儲(chǔ)模型到hive/hbase/redis—>針對(duì)不同問題選取不同算法—>結(jié)果推送給mysql/redis—>可視化輸出
輔助監(jiān)控系統(tǒng):
Ozzie:任務(wù)調(diào)度
Nagios:預(yù)警
Ganglia:總體集群的監(jiān)控
2.詳細(xì)架構(gòu)圖如下:

數(shù)據(jù)收集—>數(shù)據(jù)預(yù)處理—>數(shù)據(jù)建模—>數(shù)據(jù)可視化
5.用戶畫像應(yīng)用實(shí)例:性別預(yù)測(cè)
需求:性別預(yù)測(cè)問題
數(shù)據(jù):
數(shù)據(jù)1:用戶使用APP的行為數(shù)據(jù)
數(shù)據(jù)2:用戶瀏覽網(wǎng)頁(yè)的行為數(shù)據(jù)
步驟1:明確問題
1.數(shù)據(jù)挖掘常見問題中的哪一類,分類、聚類、推薦還是其他?
分類
2.數(shù)據(jù)集規(guī)模,數(shù)據(jù)集是否夠大?
分類需要大的數(shù)據(jù)集
3.問題假設(shè)
所提供的數(shù)據(jù)是否滿足所解決問題的假設(shè)?
男女行為不同的數(shù)據(jù)
步驟2:數(shù)據(jù)預(yù)處理
預(yù)處理后的數(shù)據(jù)如下圖:


步驟3:特征工程
表1特征工程
1.單個(gè)特征的分析
1)數(shù)值型特征的處理,比如App的啟動(dòng)次數(shù)是個(gè)連續(xù)值,可以按照低、中、高三個(gè)檔次將啟動(dòng)次數(shù)分段成離散值;
2)類別型特征的處理,比如用戶使用的設(shè)備是三星或者聯(lián)想,這是一個(gè)類別特征,可以采用0-1編碼來(lái)處理;
3)數(shù)據(jù)歸一化
2.多個(gè)特征的分析
1)設(shè)備類型是否決定了性別?做相關(guān)性分析,計(jì)算相關(guān)系數(shù)
2)App的啟動(dòng)次數(shù)和停留時(shí)長(zhǎng)是否完全正相關(guān),結(jié)果表明特別相關(guān),去掉停留時(shí)長(zhǎng)
3)如果特征太多,可能需要做降維處理
表2特征工程
1.典型的文本數(shù)據(jù):網(wǎng)頁(yè)->分詞->去停用同->向量化
2.分詞
1)jieba分詞庫(kù)等
2)去除停用詞,停用詞表除了加入常規(guī)的停用詞外,還可以將DF(Doucument Frequency)比較高的詞加入停用詞表,作為領(lǐng)域停用詞
3)向量化,一般是將文本轉(zhuǎn)化為TF或TF-IDF向量
特征工程-結(jié)果
數(shù)據(jù)1特征工程后的結(jié)果

數(shù)據(jù)2特征工程后的結(jié)果

步驟4:算法和模型
選擇算法和模型考慮的因素:
訓(xùn)練集的大小;
特征的維度大小;
所解決問題是否是線性可分的;
所有的特征是獨(dú)立的嗎?
需要不需要考慮過(guò)擬合的問題;
對(duì)性能有哪些要求?
奧卡姆剃刀原理:如無(wú)必要,勿增實(shí)體
選擇算法和模型:
1)LR:
只要認(rèn)為問題是線性可分的,就可采用LR
模型比較抗噪,而且可以通過(guò)L1、L2范數(shù)來(lái)做參數(shù)選擇
效率高,可以應(yīng)用于數(shù)據(jù)特別大的場(chǎng)景
很容易分布式實(shí)現(xiàn)
2)Ensemble方法
根據(jù)訓(xùn)練集訓(xùn)練多個(gè)分類器,然后綜合多個(gè)分類器的結(jié)果,做出預(yù)測(cè)

步驟5:算法和模型的評(píng)價(jià)
評(píng)估方法:混淆矩陣——PR,ROC,AUC

1)正確率Precision: TP/(TP+FP)
預(yù)測(cè)為正例的樣本中的真正正例的比例
正確率應(yīng)用場(chǎng)景:疾病監(jiān)測(cè)、反垃圾,保證準(zhǔn)確為前提,提升召回
2)召回率Recall: TP/(TP+FN)
預(yù)測(cè)正例的真實(shí)正例占所有真實(shí)正例的比例
召回率應(yīng)用場(chǎng)景:搜索領(lǐng)域,盡量找到與相關(guān)的商品
3)AUC面積(綜合評(píng)價(jià))
PR曲線:

目的:很難保證既要正確,又要召回,兩者很難結(jié)合起來(lái),此消彼長(zhǎng),所以只能在中間找個(gè)平衡點(diǎn),達(dá)到兩者兼顧,ROC的作用就是找到這個(gè)平衡點(diǎn)。
ROC曲線:
把不同閾值的坐標(biāo)連起來(lái),形成ROC曲線,如下圖:

縱軸:真陽(yáng)率: TP/(TP+FN)
橫軸:假陽(yáng)率: FP/(FP+TN)
最完美的模型,AUC的面積是1,但是通常來(lái)說(shuō)是不存在這樣的模型,所以我們只能不斷地去逼近1,使得上面的面積越來(lái)越小
AUC的計(jì)算:
(1)就是上圖ROC下面的陰影部分的面積
(2)另一種理解AUC的方法:負(fù)樣本排在正樣本前面的概率
計(jì)算方法:cat auc.raw | sort -t1==-1){++x;a+=y;}($1==1){++y;}END{print 1.0-a/(xy);}‘
其中:
xy:正負(fù)樣本pair對(duì)
a:錯(cuò)誤的pair對(duì)
a/xy:錯(cuò)誤的概率
1-a/xy:正確的概率