數(shù)據(jù)分析模型:會(huì)話分析
本篇主要講解數(shù)據(jù)分析中的「會(huì)話分析」的分析方法和搭建思路,并以會(huì)話分析的目的為切入點(diǎn),具體分析了它的實(shí)際運(yùn)用以及出現(xiàn)的問(wèn)題/解決方法。
一、什么是會(huì)話
會(huì)話分析分析,字面理解的意思就是以一次會(huì)話作為主體進(jìn)行分析。
會(huì)話(譯自 session),起源自 web 服務(wù)中的 session 機(jī)制。在、數(shù)據(jù)分析的語(yǔ)境中,我們可以解釋為:一次有始有終,目的明確的一連串動(dòng)作。
- 有始:我們需要知道用戶從哪里、什么時(shí)間開(kāi)始;
- 有終:我們需要知道用戶從哪里、什么時(shí)間結(jié)束;
- 目的明確:我們需要知道用戶做了什么、目的是什么、結(jié)果又如何……
二、為什么要做會(huì)話分析
做數(shù)據(jù)分析絕對(duì)不是單純的分析數(shù)據(jù)做數(shù)據(jù)的可視化展示。我們搭建各種分析模型,采用不同的分析策略,最根本的目的就是——發(fā)現(xiàn)并解決我們遇到的問(wèn)題。
首先,在數(shù)據(jù)分析行業(yè)剛興起的時(shí)候,人們分析數(shù)據(jù)的視角站在事件發(fā)生的本身,比如:關(guān)注支付訂單的金額,訂單的數(shù)量。在我們進(jìn)行分析時(shí),也很自然地將事件和人關(guān)聯(lián)到一起,然后得到「人 → 事件」的關(guān)系。
后來(lái),我們發(fā)現(xiàn)每個(gè)人在用我們的產(chǎn)品的時(shí)候,使用的路徑、時(shí)間長(zhǎng)短、瀏覽的深度甚至啟動(dòng) App 的方式,都會(huì)對(duì)用戶最后的轉(zhuǎn)化帶來(lái)影響。所以,只有真正地還原事件發(fā)生的場(chǎng)景,才可以更好進(jìn)行數(shù)據(jù)的分析。
由于我們的產(chǎn)品形態(tài)大部分都是流程化的引導(dǎo),即逐步引導(dǎo)客戶(搜索)、逐步拆解客戶需求(列表),然后給出解決方案(商品購(gòu)買(mǎi))。那么,用戶的一次完整的體驗(yàn),就是「用戶產(chǎn)生需求 → 使用產(chǎn)品 → 解決需求」這樣一個(gè)流程。
于是,我們就依照上述的思想,設(shè)計(jì)了「會(huì)話分析」的數(shù)據(jù)模型。
三、會(huì)話分析的推演
我們的目標(biāo),是把用戶「有始有終」的行為序列還原出來(lái),作為一個(gè)整體參與分析。
思路
當(dāng)我們發(fā)現(xiàn)我們需要分析的數(shù)據(jù),不是一個(gè)點(diǎn),而是一條線的時(shí)候,最簡(jiǎn)單粗暴的方式,就是把這些數(shù)據(jù)連在一起,變成一條線來(lái)記錄就好了。
于是我們可以在 App 啟動(dòng)的時(shí)候,記錄一些啟動(dòng)來(lái)源(session id),然后后續(xù)的所有事件都使用該來(lái)源作為屬性一直攜帶。這樣,我們?cè)诜治雒總€(gè)事件發(fā)生的時(shí)候,就知道了這個(gè)事件是在哪個(gè)場(chǎng)景(啟動(dòng)來(lái)源)下發(fā)生的了。
實(shí)現(xiàn)
記錄啟動(dòng)的來(lái)源和參數(shù),可能需要服務(wù)端輔助記錄一些信息,并同步給我們的 App 或直接在數(shù)據(jù)層進(jìn)行加工,最后我們需要實(shí)現(xiàn):?jiǎn)?dòng)的方式(桌面、push、其他應(yīng)用喚起..)和啟動(dòng)的來(lái)源(廣告渠道、活動(dòng)id、用戶主動(dòng)…)的信息記錄。
應(yīng)用
接下來(lái),我們把有相同啟動(dòng)來(lái)源的事件按照時(shí)間排序,放在一起,這一步實(shí)際上我們就還原了用戶的一次會(huì)話。我們有了用戶一次訪問(wèn)的開(kāi)始和結(jié)束,我們就可以做以下分析:
沉浸式體驗(yàn)的相關(guān)分析:
會(huì)話時(shí)長(zhǎng):一個(gè)會(huì)話的持續(xù)時(shí)間
會(huì)話深度:會(huì)話的層級(jí)數(shù)
使用:有了用戶的使用時(shí)長(zhǎng)和深度,我們就可以分析出用戶對(duì)我們的產(chǎn)品投入程度。結(jié)合每個(gè)會(huì)話中的事件順序,我們可以得到一個(gè)局部的最優(yōu)價(jià):用戶按照哪個(gè)路徑走,使用效果最好。當(dāng)然了,這個(gè)肯定要結(jié)合自己的分析和業(yè)務(wù),如果客戶每次都是直接進(jìn)入,然后立刻購(gòu)買(mǎi)后就離開(kāi),我覺(jué)得不做沉浸式的體驗(yàn)似乎也沒(méi)什么問(wèn)題。
跳出率:用戶做了某個(gè)事件后退出的占比
使用:我們把跳出率高的事件找出來(lái),并且排除我們的目標(biāo)事件,做個(gè)排序,就不難發(fā)現(xiàn),用戶的退出大都發(fā)生在哪些步驟,如何改進(jìn)這些非正常的跳出,就是我們需要解決的事情。
事件時(shí)長(zhǎng):用戶在某個(gè)頁(yè)面或某個(gè)事件花費(fèi)的事件。
使用:通過(guò)事件時(shí)長(zhǎng),我們可以分析出用戶對(duì)哪個(gè)頁(yè)面感興趣,在哪個(gè)頁(yè)面耗時(shí)比較久,從而發(fā)現(xiàn)問(wèn)題。
同時(shí)在線人數(shù)的相關(guān)分析:
同時(shí)在線人數(shù):同一時(shí)間有效的會(huì)話數(shù)量。
使用:由于我們將數(shù)據(jù)由點(diǎn)變成了線,那么理論上我們就可以統(tǒng)計(jì)某個(gè)時(shí)間點(diǎn)存在的會(huì)話數(shù)量,即業(yè)內(nèi)常用的同時(shí)在線人數(shù)。與傳統(tǒng)方式相比,使用會(huì)話計(jì)算的好處是:他的計(jì)算是靈活的,而且對(duì)數(shù)據(jù)的采集要求不高;但是缺點(diǎn)也很明顯,會(huì)損失部分精度。
改進(jìn)
建模后,在我們的會(huì)話分析過(guò)程中,逐漸暴露了幾個(gè)問(wèn)題,如下所示:
1.?如何更靈活地定義一個(gè)會(huì)話?
我們使用的是實(shí)體參數(shù)記錄的方法,這種方式會(huì)引入切割不靈活的問(wèn)題。但是實(shí)際上,我們可以通過(guò)定義切割事件和切割時(shí)間,加上邏輯運(yùn)算來(lái)實(shí)現(xiàn)這種會(huì)話的拼裝。
比如,我們定義「App 啟動(dòng)」作為起始條件,「App 退出」和「超過(guò) 5 min 進(jìn)行切割」兩個(gè)條件作為退出條件,我們便可以將排好序的用戶行為序列切割為一個(gè)又一個(gè)會(huì)話了;同時(shí)我們使用起始事件「App 啟動(dòng)」的一些指定屬性,虛擬的為會(huì)話中事件進(jìn)行賦值。
所以我們的要做的改進(jìn)是:實(shí)體記錄 → 邏輯還原。
2. 如何評(píng)估會(huì)話質(zhì)量?
我們采集了會(huì)話后,可以得到「時(shí)長(zhǎng)」「深度」「包含事件」「跳出」等等一系列的會(huì)話級(jí)別的指標(biāo)。
首先我們可以簡(jiǎn)單將會(huì)話分為三類(lèi):「常規(guī)型會(huì)話」「無(wú)用型會(huì)話」和「貢獻(xiàn)型會(huì)話」
如果一個(gè)用戶僅進(jìn)行了開(kāi)始和結(jié)束,那么就可以理解為本次會(huì)話是無(wú)用的(看起來(lái)有點(diǎn)殘酷);做了很多事情但是卻沒(méi)有形成轉(zhuǎn)化,這種會(huì)話應(yīng)該是最普遍并占比很高,是我們分析的重心;產(chǎn)生會(huì)話并且發(fā)生了轉(zhuǎn)化,這種屬于標(biāo)桿型的會(huì)話。
所以我們要做的改進(jìn)是:做會(huì)話切割,并且進(jìn)行類(lèi)型的標(biāo)記。
3. 如何解釋會(huì)話深度?
目前使用會(huì)話中的事件數(shù)量來(lái)表示會(huì)話的深度,可能很多人都會(huì)覺(jué)得這個(gè)不是深度的概念,而是會(huì)話的內(nèi)容數(shù)量。因?yàn)闉g覽的頁(yè)面內(nèi)容和會(huì)話的質(zhì)量之間有很大的關(guān)系,針對(duì)這種通過(guò)時(shí)序還原的行為序列,解決深度層級(jí)的計(jì)算有兩個(gè)比較通用的方法:
- 記錄前序,然后靠計(jì)算來(lái)還原層級(jí)結(jié)構(gòu);
- 預(yù)定義,提前定義好每個(gè)頁(yè)面層級(jí)的深度。
所以我們要做的改進(jìn)是:引入其他維度,來(lái)更準(zhǔn)確的記錄或還原會(huì)話的深度,從而更好的評(píng)估會(huì)話的質(zhì)量。
4. 如何防止因頁(yè)面久留而導(dǎo)致的誤切割問(wèn)題
這是一個(gè)很經(jīng)典的問(wèn)題,純計(jì)算的方式,必然會(huì)引入這種誤切割的問(wèn)題。那么我們看看有什么辦法可以解決掉。
第一種,上傳心跳,類(lèi)似于視頻類(lèi)的網(wǎng)站,可以包裝在視頻的分段下載中判斷用戶是否還在記錄觀看視頻;
第二種,自定義每個(gè)事件的切割時(shí)長(zhǎng)。我們把每個(gè)單點(diǎn)事件都假象成是一條線段,這樣只要線段有重疊,我們就認(rèn)為會(huì)話是連續(xù)的。當(dāng)然,記得添加一個(gè)退出事件來(lái)進(jìn)行切割,不然你會(huì)發(fā)現(xiàn)你每個(gè)視頻的觀看時(shí)長(zhǎng)都很久。
所以我們要做的改進(jìn)是:支持每個(gè)事件的預(yù)期時(shí)間(切割時(shí)間)都是可定義的,這樣來(lái)實(shí)現(xiàn)更貼合業(yè)務(wù)的會(huì)話構(gòu)成。
四、總結(jié)
在數(shù)據(jù)分析的時(shí)候,我們是需要自上而下地進(jìn)行指標(biāo)和需求的梳理;再自下而上地進(jìn)行數(shù)據(jù)的采集和建模。在不考慮計(jì)算性能的情況下,邏輯運(yùn)算的靈活性要遠(yuǎn)高于實(shí)體的數(shù)據(jù)采集,并且維護(hù)成本也要少很多。模型的搭建都是循序漸進(jìn)的,找到適合自己業(yè)務(wù)的計(jì)算模型至關(guān)重要。
會(huì)話分析這個(gè)模型,更多的價(jià)值在于體現(xiàn)了「從一次會(huì)話的角度,來(lái)看用戶從進(jìn)入到離開(kāi)的這一小個(gè)生命后期的使用情況」,更多的是帶來(lái)用戶體驗(yàn)相關(guān)的反饋結(jié)果。將很多有關(guān)聯(lián)的行為放在一起來(lái)進(jìn)行分析,可以比較宏觀地進(jìn)行問(wèn)題的挖掘和排查。
作者:宋宋,神策數(shù)據(jù)產(chǎn)品經(jīng)理。
本文由@請(qǐng)叫我宋宋 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)許可,禁止轉(zhuǎn)載。
題圖來(lái)自Unsplash, 基于CC0協(xié)議
有個(gè)問(wèn)題想問(wèn)下,這個(gè)會(huì)話的適用場(chǎng)景是不是只適合feed流瀏覽,短視頻觀看等單向的用戶行為
如果是雙向的對(duì)話行為,如何評(píng)判深度和質(zhì)量?例如與客服的溝通
雖然自己知識(shí)儲(chǔ)備不足,但是哪怕學(xué)到一點(diǎn)都是寶貴的
數(shù)據(jù)大神,寫(xiě)的很棒,關(guān)注了!