数据分析 | 基于智能标签,精准管理数据
本文源碼:GitHub·點(diǎn)這里 || GitEE·點(diǎn)這里
一、場(chǎng)景分析
1、場(chǎng)景案例
互聯(lián)網(wǎng)行業(yè)的朋友一定了解或者聽(tīng)說(shuō)過(guò)下列幾個(gè)場(chǎng)景:
阿里:千人千面,意思不同用戶使用阿里相關(guān)的產(chǎn)品感覺(jué)是不一樣的,例如支付寶首頁(yè)的推薦內(nèi)容,和其他相關(guān)推薦流信息是完全不同的。
騰訊:社交廣告,不同用戶的朋友圈或者其他媒體場(chǎng)景下的廣告信息是不同的,會(huì)基于用戶特征推薦。
頭條:信息價(jià)值,根據(jù)用戶瀏覽信息,分析用戶相關(guān)喜好,針對(duì)分析結(jié)果推薦相關(guān)的信息流,越關(guān)注某類內(nèi)容,獲取相關(guān)的信息越多。
如上幾種場(chǎng)景的邏輯就是:基于不斷分析用戶的行為,生成用戶的特征畫(huà)像,然后再基于用戶標(biāo)簽,定制化的推薦相關(guān)內(nèi)容。
2、基本概念
通過(guò)上面的場(chǎng)景,衍生出來(lái)兩個(gè)概念:
用戶畫(huà)像
用戶畫(huà)像,作為一種勾畫(huà)目標(biāo)用戶、聯(lián)系用戶訴求與設(shè)計(jì)方向的有效工具,把該用戶相關(guān)聯(lián)的數(shù)據(jù)的可視化的展現(xiàn),就形成了用戶畫(huà)像。用戶畫(huà)像在各領(lǐng)域得到了廣泛的應(yīng)用,最初是在電商領(lǐng)域得到應(yīng)用的,在大數(shù)據(jù)時(shí)代背景下,用戶信息充斥在網(wǎng)絡(luò)中,將用戶的每個(gè)具體信息抽象成標(biāo)簽,利用這些標(biāo)簽將用戶形象具體化,從而為用戶提供有針對(duì)性的服務(wù)。
標(biāo)簽數(shù)據(jù)
標(biāo)簽在生活中非常常見(jiàn),比如商品標(biāo)簽,個(gè)人標(biāo)簽,行業(yè)標(biāo)簽,例如提到996就想到程序員,提到程序員就想到格子衫。
標(biāo)簽是把分散的多方數(shù)據(jù)進(jìn)行整合納入統(tǒng)一的技術(shù)平臺(tái),并對(duì)這些數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化和細(xì)分,進(jìn)行結(jié)構(gòu)化存儲(chǔ)和更新管理,讓業(yè)務(wù)線可以把這些細(xì)分結(jié)果推向現(xiàn)有的互動(dòng)營(yíng)銷(xiāo)環(huán)境里的平臺(tái),產(chǎn)生價(jià)值,這些數(shù)據(jù)稱為標(biāo)簽數(shù)據(jù),也就是常說(shuō)的標(biāo)簽庫(kù)。數(shù)據(jù)標(biāo)簽的概念也是在最近幾年大數(shù)據(jù)的發(fā)展中不斷火熱起來(lái)的。
標(biāo)簽價(jià)值
- 精細(xì)運(yùn)營(yíng)的基礎(chǔ),有效提高流量精準(zhǔn)和效率。
- 幫助產(chǎn)品快速定位需求人群,進(jìn)行精準(zhǔn)營(yíng)銷(xiāo);
- 能幫助客戶更快切入到市場(chǎng)周期中;
- 深入的預(yù)測(cè)分析客戶并作出及時(shí)反應(yīng);
- 基于標(biāo)簽的開(kāi)發(fā)智能推薦系統(tǒng);
- 基于某類用戶的分析,洞察行業(yè)特征;
標(biāo)簽的核心價(jià)值,或者說(shuō)最常用的場(chǎng)景:實(shí)時(shí)智能推薦,精準(zhǔn)化數(shù)字營(yíng)銷(xiāo)。
二、數(shù)據(jù)標(biāo)簽
1、標(biāo)簽劃分
屬性標(biāo)簽
屬性標(biāo)簽是變化最小的,例如用戶實(shí)名認(rèn)證之后,基于身份信息獲取相關(guān):性別,生日,出生年月,年齡,等相關(guān)標(biāo)簽。變動(dòng)頻率小,且最具有精準(zhǔn)性。
行為標(biāo)簽
行為標(biāo)簽就是用戶通過(guò)在產(chǎn)品上的一系列操作,基于行為日志分析得出:例如購(gòu)買(mǎi)能力、消費(fèi)愛(ài)好、季節(jié)性消費(fèi)標(biāo)簽等。在信息流的APP上,通過(guò)相關(guān)瀏覽行為,不斷推薦用戶感興趣的內(nèi)容就是基于該邏輯。
規(guī)則標(biāo)簽
根據(jù)業(yè)務(wù)場(chǎng)景需求,配置指定規(guī)則,基于規(guī)則生成分析結(jié)果,例如:
- 近7天活躍用戶:近7天,每天都登錄的用戶作為規(guī)則生成;
- 丟失用戶:六個(gè)月內(nèi)沒(méi)有任何操作,可以發(fā)放高額優(yōu)惠劵;
- 潛在用戶:使用或產(chǎn)生瀏覽數(shù)據(jù),但是未發(fā)生任何交易行為;
這類標(biāo)簽可以基于動(dòng)態(tài)的規(guī)則配置,經(jīng)過(guò)計(jì)算和分析,生成描述結(jié)果,也就是規(guī)則標(biāo)簽。
擬合標(biāo)簽
擬合類的標(biāo)簽最具有復(fù)雜性,通過(guò)用戶上述幾種標(biāo)簽,智能組合分析,給的預(yù)測(cè)值,例如:未婚、瀏覽相關(guān)婚禮內(nèi)容,通過(guò)分析預(yù)測(cè)用戶將要舉辦婚禮,得到一個(gè)擬合結(jié)果:預(yù)測(cè)將要結(jié)婚。這個(gè)預(yù)測(cè)邏輯也可以反向執(zhí)行,用戶購(gòu)買(mǎi)嬰兒用品:預(yù)測(cè)已婚已育。
這就是數(shù)據(jù)時(shí)代常說(shuō)的一句話:用戶在某個(gè)應(yīng)用上一通操作之后,算法分析的結(jié)果可能比用戶對(duì)自己的描述還要真實(shí)。
2、標(biāo)簽加工流程
數(shù)據(jù)采集
數(shù)據(jù)采集的渠道相對(duì)較多,比如同一APP內(nèi)的各種業(yè)務(wù)線:購(gòu)物、支付、理財(cái)、外賣(mài)、信息瀏覽等等。通過(guò)數(shù)據(jù)通道傳輸?shù)浇y(tǒng)一的數(shù)據(jù)聚合平臺(tái)。有了這些海量日志數(shù)據(jù)的支撐,才具有數(shù)據(jù)分析的基礎(chǔ)條件。不管是數(shù)據(jù)智能,深度學(xué)習(xí),算法等都是建立在海量數(shù)據(jù)的基礎(chǔ)條件上,這樣才能獲取具有價(jià)值的分析結(jié)果。
數(shù)據(jù)加工
結(jié)合如上業(yè)務(wù),通過(guò)對(duì)海量數(shù)據(jù)的加工,分析和提取,獲取相對(duì)精準(zhǔn)的用戶標(biāo)簽,這里還有關(guān)鍵的一步,就是對(duì)已有的用戶標(biāo)簽進(jìn)行不斷的驗(yàn)證和修復(fù),尤其是規(guī)則類和擬合類的相關(guān)標(biāo)簽。
標(biāo)簽庫(kù)
通過(guò)標(biāo)簽庫(kù),管理復(fù)雜的標(biāo)簽結(jié)果,除了復(fù)雜的標(biāo)簽,和基于時(shí)間線的標(biāo)簽變,標(biāo)簽數(shù)據(jù)到這里,已經(jīng)具有相當(dāng)大的價(jià)值,可以圍繞標(biāo)簽庫(kù)開(kāi)放一些收費(fèi)服務(wù),例如常見(jiàn)的,用戶在某電商APP瀏覽某些商品,可以在某信息流平臺(tái)看到商品推薦。大數(shù)據(jù)時(shí)代就是這么令人感覺(jué)智能和窒息。
標(biāo)簽業(yè)務(wù)
數(shù)據(jù)走了一大圈轉(zhuǎn)換成標(biāo)簽,自然還是要回歸到業(yè)務(wù)層面,通過(guò)對(duì)標(biāo)簽數(shù)據(jù)的用戶的分析,可以進(jìn)行精準(zhǔn)營(yíng)銷(xiāo),和智能推薦等相關(guān)操作,電商應(yīng)用中可以提高成交量,信息流中可以更好的吸引用戶。
應(yīng)用層
把上述業(yè)務(wù)開(kāi)發(fā)成服務(wù),集成到具有的應(yīng)用層面,不斷提升應(yīng)用服務(wù)的質(zhì)量,不斷的吸引用戶,提供服務(wù)。當(dāng)然用戶的數(shù)據(jù)不斷在應(yīng)用層面產(chǎn)生,在轉(zhuǎn)到數(shù)據(jù)采集服務(wù)中,最終形成完整的閉環(huán)流程。
3、應(yīng)用案例
從流程和業(yè)務(wù)層面描述都是簡(jiǎn)單的,到開(kāi)發(fā)層面都會(huì)變得復(fù)雜和不好處理,這可能就是產(chǎn)品和開(kāi)發(fā)之間的隔閡。
標(biāo)簽的數(shù)據(jù)類型
不同標(biāo)簽的分析結(jié)果需要用不同的數(shù)據(jù)類型描述,在標(biāo)簽體系中,常用描述標(biāo)簽的數(shù)據(jù)類型如下:枚舉、數(shù)值、日期、布爾、文本類型。不同的類型需要不一樣的分析流程。
商品和標(biāo)簽
這里提供一個(gè)基礎(chǔ)案例,用商品的標(biāo)簽來(lái)分析商品,例如通過(guò)商品產(chǎn)地,價(jià)格,狀態(tài)等條件,來(lái)查詢產(chǎn)品庫(kù)有多少符合條件的商品。
數(shù)據(jù)表設(shè)計(jì)
主要分四張表:標(biāo)簽分類,標(biāo)簽庫(kù),標(biāo)簽值,標(biāo)簽數(shù)據(jù)。
CREATE TABLE `tc_tag_catalog` (`id` INT (11) NOT NULL AUTO_INCREMENT COMMENT '主鍵ID',`catalog_name` VARCHAR (50) NOT NULL DEFAULT '' COMMENT '名稱',`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '創(chuàng)建時(shí)間',`update_time` datetime DEFAULT NULL COMMENT '更新時(shí)間',`state` INT (1) DEFAULT '1' COMMENT '狀態(tài)1啟用,2禁用',PRIMARY KEY (`id`) ) ENGINE = INNODB DEFAULT CHARSET = utf8 COMMENT = '標(biāo)簽層級(jí)目錄';CREATE TABLE `tc_tag_cloud` (`id` INT (11) NOT NULL AUTO_INCREMENT COMMENT '主鍵ID',`catalog_id` INT (11) NOT NULL COMMENT '目錄ID',`tag_name` VARCHAR (100) DEFAULT '' COMMENT '標(biāo)簽名稱',`tag_code` INT (11) DEFAULT NULL COMMENT '標(biāo)簽編碼',`bind_column` VARCHAR (100) DEFAULT '' COMMENT '綁定數(shù)據(jù)列',`data_type` INT (2) NOT NULL COMMENT '1枚舉,2數(shù)值,3日期,4布爾,5值類型',`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '創(chuàng)建時(shí)間',`update_time` datetime DEFAULT NULL COMMENT '更新時(shí)間',`remark` VARCHAR (150) DEFAULT NULL COMMENT '備注',`state` INT (1) DEFAULT '1' COMMENT '狀態(tài)1啟用,2禁用',PRIMARY KEY (`id`) ) ENGINE = INNODB DEFAULT CHARSET = utf8 COMMENT = '標(biāo)簽云';CREATE TABLE `tc_tag_data_enum` (`tag_code` INT (11) NOT NULL COMMENT '標(biāo)簽編碼',`data_value` VARCHAR (150) NOT NULL COMMENT '枚舉值',`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '創(chuàng)建時(shí)間',KEY `tag_code_index` (`tag_code`) USING BTREE ) ENGINE = INNODB DEFAULT CHARSET = utf8 COMMENT = '標(biāo)簽枚舉值';CREATE TABLE `tc_tag_data_set` (`id` INT (11) NOT NULL AUTO_INCREMENT COMMENT '主鍵ID',`product_name` VARCHAR (100) DEFAULT '' COMMENT '商品名稱',`unit_price` DECIMAL (10, 2) DEFAULT '0.00' COMMENT '單價(jià)',`is_shelves` INT (1) DEFAULT '1' COMMENT '是否上架:1否,2是',`origin_place` VARCHAR (100) DEFAULT '' COMMENT '產(chǎn)地',`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '創(chuàng)建時(shí)間',PRIMARY KEY (`id`) ) ENGINE = INNODB DEFAULT CHARSET = utf8 COMMENT = '標(biāo)簽數(shù)據(jù)集';模擬入?yún)⒔涌?/p>
這里的參數(shù)應(yīng)該是基于需求,動(dòng)態(tài)選取,進(jìn)行組織到一起:
例如圖片中這里給定的標(biāo)簽值列表,稱為枚舉值。
@RestController public class AnalyzeController {@Resourceprivate TagDataSetService tagDataSetService ;@GetMapping("/analyze")public String analyze (){List<TagParam> tagParamList = new ArrayList<>() ;TagParam tagParam1 = new TagParam(1,"產(chǎn)地","origin_place") ;List<String> valueList1 = new ArrayList<>() ;valueList1.add("深圳");valueList1.add("廣東");tagParam1.setValueList(valueList1);tagParamList.add(tagParam1) ;TagParam tagParam2 = new TagParam(2,"價(jià)格","unit_price") ;List<String> valueList2 = new ArrayList<>() ;valueList2.add("1999");tagParam2.setValueList(valueList2);tagParamList.add(tagParam2) ;TagParam tagParam3 = new TagParam(3,"生產(chǎn)日期","create_time") ;List<String> valueList3 = new ArrayList<>() ;valueList3.add("2020-05-01 13:43:54");tagParam3.setValueList(valueList3);tagParamList.add(tagParam3) ;TagParam tagParam4 = new TagParam(4,"是否上架","is_shelves") ;List<String> valueList4 = new ArrayList<>() ;valueList4.add("1");tagParam4.setValueList(valueList4);tagParamList.add(tagParam4) ;TagParam tagParam5 = new TagParam(5,"產(chǎn)品名稱","product_name") ;List<String> valueList5 = new ArrayList<>() ;valueList5.add("智能");tagParam5.setValueList(valueList5);tagParamList.add(tagParam5) ;Integer count = tagDataSetService.analyze(tagParamList) ;return "Result:" + count ;} }參數(shù)解析查詢
通過(guò)對(duì)參數(shù)的解析,最終形成查詢的SQL語(yǔ)句,獲取精準(zhǔn)的結(jié)果數(shù)據(jù)。
@Service public class TagDataSetServiceImpl extends ServiceImpl<TagDataSetMapper, TagDataSet> implements TagDataSetService {@Resourceprivate TagDataSetMapper tagDataSetMapper ;@Overridepublic Integer analyze(List<TagParam> tagParamList) {StringBuffer querySQL = new StringBuffer() ;for (TagParam tagParam:tagParamList){querySQL.append(" AND ") ;querySQL.append(tagParam.getBindColumn()) ;// 1枚舉,2數(shù)值,3日期,4布爾,5值類型List<String> valueList = tagParam.getValueList();switch (tagParam.getDataType()){case 1:querySQL.append(" IN (") ;for (int i = 0 ; i < valueList.size() ;i++){if (i != valueList.size()-1){querySQL.append("'").append(valueList.get(i)).append("',");} else {querySQL.append("'").append(valueList.get(i)).append("'");}}querySQL.append(" )") ;break;case 2:querySQL.append("=").append(tagParam.getValueList().get(0)) ;break;case 3:querySQL.append(">='").append(tagParam.getValueList().get(0)).append("'") ;break;case 4:querySQL.append("=").append(tagParam.getValueList().get(0)) ;break;case 5:querySQL.append(" LIKE '%").append(tagParam.getValueList().get(0)).append("%'") ;break;default:break;}}/* 最終執(zhí)行的 SQLSELECT COUNT(*) FROM tc_tag_data_setWHERE 1 = 1AND origin_place IN ('深圳', '廣東')AND unit_price = 1999AND create_time >= '2020-05-01 13:43:54'AND is_shelves = 1AND product_name LIKE '%智能%'*/String whereCondition = String.valueOf(querySQL);return tagDataSetMapper.analyze(whereCondition);} }可能有人會(huì)說(shuō)這不就是個(gè)查詢流程嗎?如果有這樣的疑問(wèn),把上述案例換成用戶查詢,標(biāo)簽數(shù)據(jù)的價(jià)值會(huì)更直觀。
三、智能畫(huà)像
1、基本概念
用戶畫(huà)像
作為一種勾畫(huà)目標(biāo)用戶、聯(lián)系用戶訴求與設(shè)計(jì)方向的有效工具,用戶畫(huà)像在各領(lǐng)域得到了廣泛的應(yīng)用。最初是在電商領(lǐng)域得到應(yīng)用的,在大數(shù)據(jù)時(shí)代背景下,用戶信息充斥在網(wǎng)絡(luò)中,將用戶的每個(gè)具體信息抽象成標(biāo)簽,利用這些標(biāo)簽將用戶形象具體化,從而為用戶提供有針對(duì)性的服務(wù)。
行業(yè)畫(huà)像
通過(guò)行業(yè)屬性標(biāo)簽,行業(yè)下用戶標(biāo)簽的綜合分析,生成行業(yè)分析報(bào)告,提供極有價(jià)值的導(dǎo)向,這是最近兩年極其熱門(mén)的應(yīng)用。
畫(huà)像補(bǔ)全
通過(guò)不斷分析用戶數(shù)據(jù),豐富標(biāo)簽庫(kù),使用戶的畫(huà)像更加豐富立體。
2、畫(huà)像報(bào)告
通過(guò)標(biāo)簽數(shù)據(jù)的分析,生成一份分析報(bào)告,報(bào)告內(nèi)容包含豐富的用戶標(biāo)簽統(tǒng)計(jì)數(shù)據(jù)。
例如:90后畫(huà)像報(bào)告
這個(gè)報(bào)告,互聯(lián)網(wǎng)用戶一定或多或少都看到過(guò)。主要是一些標(biāo)簽統(tǒng)計(jì),共性標(biāo)簽展示,或者哪些群體對(duì)90后三觀影響最大,收入來(lái)源,學(xué)歷等各種分析解讀。
四、源代碼地址
GitHub·地址 https://github.com/cicadasmile/data-manage-parent GitEE·地址 https://gitee.com/cicadasmile/data-manage-parent推薦閱讀:《架構(gòu)設(shè)計(jì)系列》,蘿卜青菜,各有所需
| 01 | 架構(gòu)設(shè)計(jì):單服務(wù).集群.分布式,基本區(qū)別和聯(lián)系 |
| 02 | 架構(gòu)設(shè)計(jì):分布式業(yè)務(wù)系統(tǒng)中,全局ID生成策略 |
| 03 | 架構(gòu)設(shè)計(jì):分布式系統(tǒng)調(diào)度,Zookeeper集群化管理 |
| 04 | 架構(gòu)設(shè)計(jì):接口冪等性原則,防重復(fù)提交Token管理 |
| 05 | 架構(gòu)設(shè)計(jì):緩存管理模式,監(jiān)控和內(nèi)存回收策略 |
總結(jié)
以上是生活随笔為你收集整理的数据分析 | 基于智能标签,精准管理数据的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: NYOJ 5767 装背包
- 下一篇: Eclipse导出可执行JAR文件的方法