数据分析 | 基于智能标签,精准管理数据

一、场景分析

1、场景案例

互联网行业的朋友一定了解或者听说过下列几个场景:

阿里:千人千面,意思不同用户使用阿里相关的产品感觉是不一样的,例如支付宝首页的推荐内容,和其他相关推荐流信息是完全不同的。

腾讯:社交广告,不同用户的朋友圈或者其他媒体场景下的广告信息是不同的,会基于用户特征推荐。

头条:信息价值,根据用户浏览信息: = w ? 8 1 m,分析用户相关喜好,l ) # l ; A针对分析结果推荐相关的信息流,越关注某类内容,获取相关的信息越多。

如上几G Y w p : j V _ T种场景的逻辑就是:基于不断分析用户的行为,生成用户的特征画像,然后再基于用户标签t g N C G G,定制化的推荐相关内容。

2、基Q Y R _ 4 t } j本概念

通过上面的场景,衍生出H @ @ # 7来两个概念:

用户画像

用户画像,作为一种勾画目标用户、联系Y $ % 4 n Q I 用户诉求与设计方向的有效工具,把该用户相关联的数据的可视化的展现u Q P,就形成了用户T b !画像。F 5 $ $ q U用户画像在各领域得到了广泛的应用,最初是在电商领域得到应用的,在大数据时代背景下,用户信息充斥在网络中,将用户的每个具体信息抽象成标签,利用这些标签将用户形象具体化,从而为用户提供有针对性的服务。

标签数据

标签在生活中非常常见,比如商品标签,个人标签,行业标签,例如提到996就想到程序员,提到程序员就想到格子衫。

标签是把分散的多方数据进行整合纳入统一的技术平台,并对这些数据进行标准化和细分,进行结构化存储和更新管理,让业务线可以把这些细分结果推向现有的互动营销环境里的平台,产生价值,这些数据称为标签数据,也就是常说L g + z - h的标签库2 4 D。数据标签的概念也是在最近几年大数据r | I 发展中不r ) H断火热8 B / ; C w D f起来的。

标签价值

  • 精细运营的基础,有效提高流量精准和效率。
  • 帮助产品快速定位需求人群,l ; r B c a 5 0进行精准营销;
  • 能帮助客户更快切入到市场周0 y / K G k H o期中D X l a i D 5 3
  • 深入的预测分析客户并作出及时反应;
  • 基于标签的开发智2 3 6 i g T H 7 $能推荐系统;
  • 基于O q 4 $ = e 1某类用户的分析,洞察行业特征;

标签的核心价值,或者说最常用的场景:实时智能推荐,精准k } Z O N L化数字营销。

二、数据标签

1、标签划分

属性Q a ] i @? S !

属性Z i # p w标签是变化最小的,例如用户实名认证之后,基于身份信息获取相关:性别,生日,出生年月,年龄,等相关标签。变动频率小,且最# : 4 a具有精准性。

行为标签

行为标签就是用户通过在产品上的一系列5 ) Q #操作,基于行为日志分析得出:例如购买能力、消费爱好、季节性消费标签等。在信息流的APP上,通过相关浏览行为,! E C ` - r C ~不断推荐用户感兴趣的内容就是基于该逻辑。

规则标签

k q C . M ] _据业务场景需求,配置指定规则,基于规则生成分析结果,例如:

  • 近7天活跃用户:近7天,每天都登录的用户作为规则生成;
  • 丢失用户:六个月内没有任何操作,可以发放高额优惠劵;
  • 潜在用户:使用或产生浏览数据,但是未发生任何交易行为;

这类标签^ J ~ X = C 3 P W可以基于动态; ; s d f O C :的规则配置,经过计算和分析,生成描述结果,也就是规则标签。

拟合标签

拟合类的标签最具a q U B T u l Q有复杂性,通过用户上述几种标签,} l s k =智能组合分析,给的预测值,例如:未婚、浏览相关婚礼内容,通过I E P q 4 t S分析预测用户将要举办t e 3婚礼,得到一个拟合结果:预测将要结婚。这个预测逻辑也可以反向执行,用户购买婴儿用品:预测已婚已育。

这就是数据时代常说的一句话:用户在某个应用上一通操作之后,算法分析的结果可能比用户对自己的描述还要真实。

2、标签加工流程

数据分析 | 基于智能标签,精准管理数据

数据采集

数据采集的渠道相对较多,比如同一APP内的各种业务线:购物、支付、理财1 P o C n + P 0 @、外卖、信息浏览等等。通过数据通道传输到统: ; A k 8 3 : d W一的数据聚合平台。有了这些海量日志数据的支撑f 7 Q },才具有数据分析的基础条件。不管O I U % A b [是数据智能,深度学习,算法等都是建立在海量数据的基础条件上,这样才能获取具有价值的分析结果。

数据加工

结合如上业务,通过对海量数据的加工,分析和提取,获取相对精准的用户标签,这里还有关键的一步,就是对已有的用户标签进行不断的验证和修复,尤其是规则` v O g 0 8 &类和拟合类的相关标签。

标签库

通过标签库,管理复杂的标签结果,除了复杂的标签,和基于时间线的标签变,标签数据到* r S Z i + y |这里,已经具有相当大的价$ x w Q D } i b V值,可以围绕标签库开N d 1 M 3 F ( p放一些收费服务,例如常见的,用户在某电商APP浏览某些商品,可以在某信息流平台看到商品推荐。大数据时代就是这么令人感觉智能和窒息。

标签业务

数据走了一大圈转换成标签,自然还是要回归到业务层面,通过对标签数据的用户的分析,可以进行精准营销,和智能推荐等相关操作,电商应用中可以提高成交量,信息流中a h 8 l 6 7 f V可以更好的吸引用户。

应用层

把上述3 ] A [业务开发成服务,集成到具有的应用层面,不断提升应@ l * v用服务的质量,不断的吸引用户,提供服务。当然用户的数据不断在应用层面产生,在转到数据采集服务中,最终形成完整的闭环流程。

3、应用案例

从流程和业务层面描述都是简单的,到开发层面都会变得复杂和不好处理F 7 v 4 i a m o x,这可能就是产品和开发之间的隔阂。

标签的数据类型

不同 h 8标签的分析结果需要用不同的数据类型描述,在标签体系中,常用描述标签的数据类型如下:枚举、数值、日期、布尔、文本类型。不同的类型需要不一样的分析流程。

Y & g Y品和标签

这里提供一个基础案例,用商品的标签来分析商品,例如通过商品产地,价格,状态等条件,来查询产品库有多少符合条件的商品。

数据表设计

主要分四张表:U % K S I Y o标签分类,标签库,标签值,标签数据。

CREATE TABLE `tc_tag_catalog` (
`id` INT (11) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`catalog_name` VARCHA9  z 7 ^ . WR (50) NOT NULL DEFAULT '' COMMENT '名称',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
`state` INT (1) DEFAULT '1' COMMENT '状态1启用,A ^ K 0 42禁用',
PRIMARY KEY (`id`)
) ENGINE = INNODB DEFAULT CHARI A [ NSET = utf8 C) s / % 1 l F V )OMMENT = '标签层级目录';
CREATE TABLE `tc_tag_cloud` (
`id` INT (11) NOT& 3 R 8 # = , NULL AUTO_INCREMENT COMMENT '主键ID',
`catalog_id` INT (11) NOT N} I N Z o t q I rULL COMMENT '目录ID',
`tag_name` VP 4 eARCHAR (100) DEFAULT '' COMMENT '标签名称',
`tag_code` INT (11) DEFAULB S H % P 8 7 j $T NULL COE l t iMMENT '标签编码',
`bind_column` VARCHAR (100) DEFQ E qAULT '' COMMENT '绑定数据列'Q + u q A P `,
`dataR 8 4 p p r_type` INT (2) NOT NULL COMMENT '1枚举,2数值,3日期,4布尔,5值类型'U M C r,
`crea( T ; 2 J O f wte_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT * S j + V 6 /'创建T O V v 时间',
`update_time` datetimeA e - [ V V B b DEFAULT NULL COMMENT '更新时间',
`remark` VARCHAR (15Q 6 $ y X Q 50) DEFAULT NUH # # f %LL COMMENT '备注',
`state` INT (1) DEFAULT '1' COMMENT '状态1启用,2禁用',
PRIMARY KEY (`id`)
) EN] / z x R aGINE = INNODB DEFAUL2 R G T CHARSET = utf8 COMMENT = '标签云';
CREATE TABLE `tc_tag_data_enum` (
`tag_code`R @ ( 1 s q D INT (11) N+ , :  | a oOT NULL COMMENT '标签编码',
`data_value` VA] 7 u 2 5 ,RCHAR (150) NOT NULL COMMENT '枚举值',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
KEY `tag_code_index` (`tag_codO  1 1 ]e`) USING BTREE
) ENGINE = INNODB DEFAULT CHARSET = utf8 COMMENT = '标签枚举值';
CREATE TABLE `tc_tag_data_set` (
`id` INT (11) NOT NULL AUTO_INCRE# . q } i n M KMENT COMMENT '主键ID',
`product_namee m + k {` VARCHARF b J 6  4 Z (100) DEFAULT '' COMMENT '商品名称',
`unit_price` DECIMAL (10, 2) DEFAULT '0.00' COMM$ r _ X w ) RENT '单价',
`is_shelves` INT (1) DEFAULT '1' COMMENT '是否上架:1否,2是',
`origin_place` VARCHAR (100) DEFh - $ ( k Y ~AULT '' COMMENT '产地',
`creatL ? j e Xe_time` datetime NOT[ [ r NULL DEFAULT CURRENT_TIMESTAMP COMMV Q j n * W (ENT '% M W P H Q创建时间',
PRIMARY KEY (`id`)
) ENGINE = INNODB DEFAULT CHARSET = utf8 COMMENTd c P V G ] w = '标签数据集';

数据分析 | 基于智能标签,精准管理数据

模拟入参接口

这里的参数应该是基于需求,动态选取@ D _,进行组织到一起:

数据分析 | 基于智能标签,精准管理数据

例如图片中这里给定的标签. 6 G h ) {值列表,称为枚举值。

@RestControllD Q @ * F m v !er
public class AnalyzeController {
@Resource
private TagDataSetService tagDatK P _ = 9 j aSetService ;
@GetMapping("/analyze")
public String analyze (){
List<TagParam> tagParamListz E K 2 f J = new ArrayList<>() ;
TagParam tagParam1 = new TagParam(1,} & m % X q"产地","origin_place") ;
List<String> valueList1 = new ArrayList<>() ;
valueList1.add("深圳");
valueList1.add("广东");
tagPa0 Y o e ,ram1.setValueList(valueList1);
tagParamList.add(tagParam3 N t d ` V1) ;
TagParam tagParam2 = new TagParam(2,"价格","unit_price") ;
List<String> valueList2 = new ArrayList<>() ;
valueList2.add(7 : v 5 8"1999");
tagParam2.setValueList(valueList2);
tagParamList.add(tagParam2) ;
TagParam tagParam3 = new TagParam(3,"生产日期","create_time") ;
List<String> valueList3 = new ArrayList<>7 J ;()o @ ; V i J ;
valueList3.add("2020-05-01 13:43:54");
tagParam3.setValueList(I r v g L @ 4valueList3);
tagPah ! % t 2ramList.add(tagParam/  R b l D ? ^ s3) ;
TagParam tagPar+ 5 T I K 3 wam4 = new TagParam(4,"是否上架",Y [ T  }"is_sh[ a gelves") ;
List<String> valueList4 = new ArrayList<>() ;
valueList4.add("1");
tagParam4.setValueList(valueList4);
tagParamList.add(tagParam4) ;
TagPa# W = L x t ~ram tagParam5 = new TagParam(5,K [ / ( U q 8 + "产品名称","product_name") ;
List<String> v% t , F walueList5 = new ArrayList<>() ;
valueList5.add("智能");
tagParam5.setValueList(valueList5);
ta# x k N H 2 q x bgParamList.add(tagParam5) ;
Integer count = tagDataSetService.analyze(tagParamLi * :st) ;
return "Resul, q k 3 ` $ J 6t:" + count ;
}
}

参数解析查询

通过对参数的解析f 3 K !,最终形成查询的SQL语句,获取精准的结果数据。

@Service
pi L A E / o Zublic class TagDataSetSer` 6  ) w d c OviceImpl extends ServiceImpl<TagDataSetMapper, TagDataSetO  y . 6 R  7> implements TagDataSetService {
@Resource
private TagDataSetMapper tagDataSetMapper ;
@Override
public Integer analyze(List<TagParU q  oam&( { c ,gt; tagParamList) {
StringBuffer querySQL = new StringBuffer() ;
for (R G - I q ^ ATagParam tagParam:ta| C e lgParamListO w - )){
querySQL.append(" AND ") ;
querySQL.append(tagParam.getBindColumn()) ;
// 1枚举,2数值,3日期,4布尔,5值类型
List<String> valueList = tagParam.getValueLiI c % / ?st();
switch (tagParam.getDataType()){
case 1:
querySQL.append(" IN (") ;
for (int i = 0 ; i < valueList.size() ;i++){
if (i != valueList.size()D  U o { [ | 8 x-i t Z - Q R h1){
querySQL.append("'").append(valueList.get(i)).append("',");
} else {
querySQL.append("'").append(valueList. 6 W Q Gget(: * ri)).append("'");
}
}
querySQL.append(" )") ;
break;
case 2:
qq & # @ v q P 5 euerySQL.append("=").append(tagParam.getValueList().get(0)) ;
brX R K G P I *eaN ~ & F N nk;
case 3:
querySQL.append(">='").append? R u g(tagParam.getValueList().get(0)).Q u w V n u . ;append("'") ;
break;
case 4:
querySQL.append("=").append(tagParam.getValueList().get(0)) ;
break;
case 5:
querySQL.append(" LIKE '%").append(tagParam.getValueList().get(0))I s S Z =.append("%'") ;
break;
default:
break;
}
}
/* 最终执行的 SQL
SELECT COUNT(*) FROM tc_tag_data_set
WHERE 1 = 1
AND origin_place IN ('深圳', '广东')
AND unit_price = 19} D M # F Z e S 799
AND create_time >= '2020-05-01 13:43:54'
AND is_shelves = 1
AND product_( Q m 3 :name LIKE '%智能%'
*/
String whereCondition = String.valueOf(querySQL);
return tagt y J $ o C T F hDataSetMapper.analyze(whereConditi/ ` J F 4 ion);
}
}

可能C 7 m有人会说这不就是个查询流程吗@ i n P?如果有这样的疑问,把上述= A ~ m案例换成用j b ^ v户查询,标签数据的价值会更直观。

三、智能画像

1、基本概念

用户画像

作为一j ) d : { I 8 {种勾画目标用户U } 5 / k Y、联系用户诉求与设计方向的有效工具,用户画像在各领域得到了广泛的应用。最初是在电商领域得到应用的,在大数据时代背景下,用户信息充斥在网络中,将用户的每个具体信息抽象成标签,利用这些标签将用户形象具体化,从而为用户提供有针对性的服务。; P I l

行业画像

n G M过行业属性标签,行业下用户标签的) L r综合分I 4 J h 4析,生成行业分析报告,提供极有价值的导向,这是最近两年极其热门的应用。

画像补全

通过不断分析f f c g z 9用户数据,丰富标签库,使用户的画像更加丰富立体。

2、画像报告

通过标签数P c ` { l h Q = Q据的分析,生成一份分析报告,报告内容包含丰富的用户标签统计数据。

例如:90后画像报告

这个报7 A !告,互联网用户一定或多或少都看到过。主要G _ v @是一些标签统计,共性标签展示,或者哪些群体对90后三观影响最大,收入来源,学历等各种分析解读。

四、源代码地址

GitHub地址
https://github.cW o ?om/cicadasmile/data-manage-parent
GitEE地址
https://gitee.coI O nm/cicadas} L 1mile/data-manage-parent