讓機器讀懂用戶——大數據中的用戶畫像

讓機器讀懂用戶——大數據中的用戶畫像

摘要: 用戶畫像(persona)的概念最早由交互設計之父Alan Cooper提出:“Personas are a concrete representation of target users.” 是指真實用戶的虛擬代表,是建立在一系列屬性數據之上的目標用戶模型。隨著互聯網的發展,現在我們說的用戶畫像又包含了新的內涵——通常用戶畫像是根據用戶人口學特征、網絡瀏覽內容、網絡...

作者:楊杰 網易郵件事業部大數據工程師

用戶畫像的含義

用戶畫像(persona)的概念最早由交互設計之父Alan Cooper提出:“Personas are a concrete representation of target users.” 是指真實用戶的虛擬代表,是建立在一系列屬性數據之上的目標用戶模型。隨著互聯網的發展,現在我們說的用戶畫像又包含了新的內涵——通常用戶畫像是根據用戶人口學特征、網絡瀏覽內容、網絡社交活動和消費行為等信息而抽象出的一個標簽化的用戶模型。構建用戶畫像的核心工作,主要是利用存儲在服務器上的海量日志和數據庫里的大量數據進行分析和挖掘,給用戶貼“標簽”,而“標簽”是能表示用戶某一維度特征的標識。具體的標簽形式可以參考下圖某網站給其中一個用戶打的標簽。

?

用戶畫像的作用

提取用戶畫像,需要處理海量的日志,花費大量時間和人力。盡管是如此高成本的事情,大部分公司還是希望能給自己的用戶做一份足夠精準的用戶畫像。

那么用戶畫像有什么作用,能幫助我們達到哪些目標呢?

大體上可以總結為以下幾個方面:

1. 精準營銷:精準直郵、短信、App消息推送、個性化廣告等。

2. 用戶研究:指導產品優化,甚至做到產品功能的私人定制等。

3. 個性服務:個性化推薦、個性化搜索等。

4. 業務決策:排名統計、地域分析、行業趨勢、競品分析等。

用戶畫像的內容

用戶畫像包含的內容并不完全固定,根據行業和產品的不同所關注的特征也有不同。對于大部分互聯網公司,用戶畫像都會包含人口屬性和行為特征。人口屬性主要指用戶的年齡、性別、所在的省份和城市、教育程度、婚姻情況、生育情況、工作所在的行業和職業等。行為特征主要包含活躍度、忠誠度等指標。

除了以上較通用的特征,不同類型的網站提取的用戶畫像各有側重點。

以內容為主的媒體或閱讀類網站,還有搜索引擎或通用導航類網站,往往會提取用戶對瀏覽內容的興趣特征,比如體育類、娛樂類、美食類、理財類、旅游類、房產類、汽車類等等。

社交網站的用戶畫像,也會提取用戶的社交網絡,從中可以發現關系緊密的用戶群和在社群中起到意見領袖作用的明星節點。

電商購物網站的用戶畫像,一般會提取用戶的網購興趣和消費能力等指標。網購興趣主要指用戶在網購時的類目偏好,比如服飾類、箱包類、居家類、母嬰類、洗護類、飲食類等。

消費能力指用戶的購買力,如果做得足夠細致,可以把用戶的實際消費水平和在每個類目的心理消費水平區分開,分別建立特征緯度。

另外還可以加上用戶的環境屬性,比如當前時間、訪問地點LBS特征、當地天氣、節假日情況等。

當然,對于特定的網站或App,肯定又有特殊關注的用戶緯度,就需要把這些維度做到更加細化,從而能給用戶提供更精準的個性化服務和內容。

?

用戶畫像的生產

用戶特征的提取即用戶畫像的生產過程,大致可以分為以下幾步:

1. 用戶建模,指確定提取的用戶特征維度,和需要使用到的數據源。

2. 數據收集,通過數據收集工具,如Flume或自己寫的腳本程序,把需要使用的數據統一存放到Hadoop集群。

3. 數據清理,數據清理的過程通常位于Hadoop集群,也有可能與數據收集同時進行,這一步的主要工作,是把收集到各種來源、雜亂無章的數據進行字段提取,得到關注的目標特征。

4. 模型訓練,有些特征可能無法直接從數據清理得到,比如用戶感興趣的內容或用戶的消費水平,那么可以通過收集到的已知特征進行學習和預測。

5. 屬性預測,利用訓練得到的模型和用戶的已知特征,預測用戶的未知特征。

6. 數據合并,把用戶通過各種數據源提取的特征進行合并,并給出一定的可信度。

7. 數據分發,對于合并后的結果數據,分發到精準營銷、個性化推薦、CRM等各個平臺,提供數據支持。

?

下面以用戶性別為例,具體介紹特征提取的過程:

1.提取用戶自己填寫的資料,比如注冊時或者活動中填寫的性別資料,這些數據準確率一般很高。

2. 提取用戶的稱謂,如文本中有提到的對方稱呼,例如:xxx先生/女士,這個數據也比較準。

3. 根據用戶姓名預測用戶性別,這是一個二分類問題,可以提取用戶的名字部分(百家姓與性別沒有相關性),然后用樸素貝葉斯分類器訓練一個分類器。過程中遇到了生僻字問題,比如“甄嬛”的“嬛”,由于在名字中出現的少,因此分類器無法進行正確分類。考慮到漢字都是由偏旁部首組成,且偏旁部首也常常具有特殊含義(很多與性別具有相關性,比如草字頭傾向女性,金字旁傾向男性),我們利用五筆輸入法分解單字,再把名字本身和五筆打法的字母一起放到LR分類器進行訓練。比如,“嬛”字的打法:『 女V+罒L+一G+衣E = VLGE 』,這里的女字旁就很有女性傾向。

4. 另外還有一些特征可以利用,比如用戶訪問過的網站,經常訪問一些美妝或女性服飾類網站,是女性的可能性就高;訪問體育軍事類網站,是男性的可能性就高。還有用戶上網的時間段,經常深夜上網的用戶男性的可能性就高。把這些特征加入到LR分類器進行訓練,也能提高一定的數據覆蓋率。

數據管理系統

用戶畫像涉及到大量的數據處理和特征提取工作,往往需要用到多數據來源,且多人并行處理數據和生成特征。因此,需要一個數據管理系統來對數據統一進行合并存儲和分發。我們的系統以約定的目錄結構來組織數據,基本目錄層級為:/user_tag/屬性/日期/來源_作者/。以性別特征為例,開發者dev1從用戶姓名提取的性別數據存放路徑為 /user_tag/gender/20170101/name_dev1,開發者dev2從用戶填寫資料提取的性別數據存放路徑為 /user_tag/gender/20170102/raw_dev2。

從每種來源提取的數據可信度是不同的,所以各來源提取的數據必須給出一定的權重,約定一般為0-1之間的一個概率值,這樣系統在做數據的自動合并時,只需要做簡單的加權求和,并歸一化輸出到集群,存儲到事先定義好的Hive表。接下來就是數據增量更新到HBase、ES、Spark集群等更多應用服務集群。

?

應用示例:個性化推薦

以電商網站的某種頁面的個性化推薦為例,考慮到特征的可解釋性、易擴展和模型的計算性能,很多線上推薦系統采用LR(邏輯回歸)模型訓練,這里也以LR模型舉例。很多推薦場景都會用到基于商品的協同過濾,而基于商品協同過濾的核心是一個商品相關性矩陣W,假設有n個商品,那么W就是一個n * n的矩陣,矩陣的元素wij代表商品Ii和Ij之間的相關系數。而根據用戶訪問和購買商品的行為特征,可以把用戶表示成一個n維的特征向量U=[ i1, i2, ..., in ]。于是U*W可以看成用戶對每個商品的感興趣程度V=[ v1, v2, ..., vn ],這里v1即是用戶對商品I1的感興趣程度,v1= i1*w11 + i2*w12 + in*w1n。如果把相關系數w11, w12, ..., w1n 看成要求的變量,那么就可以用LR模型,代入訓練集用戶的行為向量U,進行求解。這樣一個初步的LR模型就訓練出來了,效果和基于商品的協同過濾類似。

這時只用到了用戶的行為特征部分,而人口屬性、網購偏好、內容偏好、消費能力和環境特征等其他上下文還沒有利用起來。把以上特征加入到LR模型,同時再加上目標商品自身的屬性,如文本標簽、所屬類目、銷量等數據,如下圖所示,進一步優化訓練原來的LR模型。從而最大程度利用已經提取的用戶畫像數據,做到更精準的個性化推薦。

?

點評:

用戶畫像是當前大數據領域的一種典型應用,也普遍應用在多款網易互聯網產品中。本文基于網易的實踐,深入淺出地解析了用戶畫像的原理和生產流程。

精確有效的用戶畫像,依賴于從大量的數據中提取正確的特征,這需要一個強大的數據管理系統作為支撐。網易大數據產品體系中包含的一站式大數據開發與管理平臺 – 網易猛犸,正是在網易內部實踐中打磨形成的,能夠為用戶畫像及后續的業務目標實現提供數據傳輸、計算和作業流調度等基礎能力,有效降低大數據應用的技術門檻。


本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/394070.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/394070.shtml
英文地址,請注明出處:http://en.pswp.cn/news/394070.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

asp.net應用程序_如何在ASP.NET中為聊天應用程序構建鍵入指示器

asp.net應用程序by Neo Ighodaro由新Ighodaro 如何在ASP.NET中為聊天應用程序構建鍵入指示器 (How to build a typing indicator for your chat app in ASP.NET) A basic understanding of ASP.NET and jQuery is needed to follow this tutorial.要學習本教程,需要…

activeMQ在文件上傳的應用

本次試驗主要用到了activeMq和上傳插件uploadify的知識,感謝以下兩篇文章的作者。 1.http://itindex.net/detail/47160-java-jquery-%E4%B8%8A%E4%BC%A0 2.http://blog.csdn.net/jiuqiyuliang/article/details/47160259 本文中不再提供activeMq和uploadify的介紹。 …

java nginx 例子_Java及nginx實現文件權限控制代碼實例

我們知道,使用nginx作為文件下載服務器,可以極大地降低對后端Java服務器的負載沖擊,但是nginx本身并不提供授權控制,因此好的方案是由后端服務器實現權限控制,最好的方式是直接復用應用的認證體系,最大化的…

leetcode934. 最短的橋(dfs+bfs)

在給定的二維二進制數組 A 中,存在兩座島。(島是由四面相連的 1 形成的一個最大組。) 現在,我們可以將 0 變為 1,以使兩座島連接起來,變成一座島。 返回必須翻轉的 0 的最小數目。(可以保證答…

謝煙客---------Linux之DNS服務系統的基礎知識

DNS Domain Name Server1)C/S架構&#xff1a;SOCKET通信IP PORT2&#xff09;應用層協議&#xff1a;資源子網BIND Berkerley Information Name DomainDNS由來1&#xff09;統一名字&#xff0c;自己維護 <自己查詢>解析: 基于key查找value: 查詢數據庫(二維關系的表: …

Java實現點擊導出excel頁面遮罩屏蔽,下載完成后解除遮罩

一、問題場景 最近在做數據統計功能&#xff0c;需求是導出大數據量的excel&#xff0c;時間間隔較長&#xff0c;大概需要十秒左右&#xff0c;點擊導出后&#xff0c;頁面沒有做任何處理&#xff0c;用戶也不知道是否正在導出&#xff1b;如果沒有做交互上的限制&#xff0c;…

pbs 支持 java_Linux下Java安裝與配置

安裝以JDK1.6.0_43為例下載jdk-6u43-linux-x64.bin&#xff0c;http://www.oracle.com/technetwork/java/javase/downloads/index.html增加可執行權限 chmod x jdk-6u43-linux-x64.bin&#xff0c;執行 ./jdk-6u43-linux-x64.bin 生成目錄jdk1.6.0_43拷貝到/usr/share下&#x…

使用Chatkit構建Node.js命令行聊天應用程序

by Hugo雨果 使用Chatkit構建Node.js命令行聊天應用程序 (Build a Node.js command-line chat application with Chatkit) Building chat in your app can be pretty complex. Yet, with Chatkit, implementing fully-featured chat is nothing but a few lines of code.在您的…

java 毫秒轉分鐘和秒_Java程序將毫秒轉換為分鐘和秒

Java程序將毫秒轉換為分鐘和秒在上面的程序中&#xff0c;您將學習如何在Java中將毫秒分別轉換為分鐘和秒。示例1&#xff1a;將毫秒分別轉換為分鐘和秒import java.util.concurrent.TimeUnit;public class Milliseconds {public static void main(String[] args) {long millis…

Andrew Ng機器學習之一 導論

監督學習與無監督學習 監督學習&#xff08;Supervised Learning) Ng的原文是&#xff1a; We gave the algorithm a data set that the "right answers" were given. 即給定了一個正確結果的集合供算法學習&#xff0c;強調了需要實現準備好正負樣本喂給機器。 無監…

leetcode994. 腐爛的橘子(bfs)

在給定的網格中&#xff0c;每個單元格可以有以下三個值之一&#xff1a; 值 0 代表空單元格&#xff1b; 值 1 代表新鮮橘子&#xff1b; 值 2 代表腐爛的橘子。 每分鐘&#xff0c;任何與腐爛的橘子&#xff08;在 4 個正方向上&#xff09;相鄰的新鮮橘子都會腐爛。 返回直…

ES6對象的擴展

1.屬性簡寫表示 2.方法簡寫表示 屬性與方法簡寫&#xff1a; 3.屬性名表達式 ES6允許字面量定義對象時&#xff0c;用方法二&#xff08;表達式&#xff09;作為對象的屬性名&#xff0c;即把表達式放在方括號內。 4.Object.is()比較兩個值是否嚴格相等 轉載于:https://www.cnb…

Spring Cloud項目MVN編譯 -- Non-resolvable import POM

最近利用閑余時間&#xff0c;打算搭建一套基于Spring Cloud G版的微服務架構(Spring boot 2.1.0)&#xff0c;一頓操作之后,IDEA也沒有提示什么錯誤,自認為微服務搭建完畢。啟動項目前&#xff0c;習慣性的Maven -clean了一下&#xff0c;我去&#xff0c;IDEA里面的Maven Pro…

datax底層原理_Datax 插件加載原理

Datax 插件加載原理插件類型Datax有好幾種類型的插件&#xff0c;每個插件都有不同的作用。reader&#xff0c; 讀插件。Reader就是屬于這種類型的writer&#xff0c; 寫插件。Writer就是屬于這種類型的transformer&#xff0c; 目前還未知handler&#xff0c; 主要用于任務執行…

mysql windows身份驗證_SQL Server 2005 怎么就不能用Windows身份驗證方式登錄呢?

SQL Server 2005 自從裝到我的電腦上始終無法使用Windows身份驗證的方式登錄,由于使用用戶名和密碼登錄還算順暢,所以一直忽略了這SQL Server 2005 自從裝到我的電腦上始終無法使用Windows身份驗證的方式登錄,由于使用用戶名和密碼登錄還算順暢,所以一直忽略了這個問題,直到又有…

JavaScript正則表達式快速簡單的指南

Interested in learning JavaScript? Get my ebook at jshandbook.com有興趣學習JavaScript嗎&#xff1f; 在jshandbook.com上獲取我的電子書 正則表達式簡介 (Introduction to Regular Expressions) A regular expression (also called regex for short) is a fast way to w…

leetcode104. 二叉樹的最大深度(dfs)

給定一個二叉樹&#xff0c;找出其最大深度。二叉樹的深度為根節點到最遠葉子節點的最長路徑上的節點數。說明: 葉子節點是指沒有子節點的節點。示例&#xff1a; 給定二叉樹 [3,9,20,null,null,15,7]&#xff0c;3/ \9 20/ \15 7 返回它的最大深度 3 。代碼 class Soluti…

[解讀REST] 3.基于網絡應用的架構

鏈接上文[解讀REST] 2.REST用來干什么的&#xff1f;&#xff0c;上文中解釋到什么是架構風格和應該以怎樣的視角來理解REST&#xff08;Web的架構風格&#xff09;。本篇來介紹一組自洽的術語&#xff0c;用它來描述和解釋軟件架構&#xff1b;以及列舉下對于基于網絡的應用來…

js判斷對象還是數組

1.對于Javascript 1.8.5&#xff08;ECMAScript 5&#xff09;&#xff0c;變量名字.isArray( )可以實現這個目的 var a[]; var b{}; Array.isArray(a);//true Array.isArray(b)//false 2.如果你只是用typeof來檢查該變量&#xff0c;不論是array還是object&#xff0c;都將返回…

mysql 除去列名打印_sql – 使用beeline時避免在列名中打印表名

在beeline中使用hive時使用簡單的select查詢我想在列名中返回沒有表名的表作為默認值.例數據CREATE TABLE IF NOT EXISTS employee ( eid int, name String,salary String, destination String)COMMENT Employee detailsROW FORMAT DELIMITEDFIELDS TERMINATED BY \tLINES TERM…