2016 小结之用户所在行业画像

来源:互联网 发布:淘宝联盟口令加密 编辑:程序博客网 时间:2024/05/17 22:37

光阴似箭,日月如梭。又到一年年底,在过去的这一年里,用心做了几个画像标签的优化。越来越感觉到,要想有高质量的画像,即需要有高质量核心数据,又要有核心的行为表征区别开。摘取用户所属行业画像进行小结。

网络ID作为自然人在网络上的临时虚拟标记,体现了自然人本身以及起社会关系的多方面的属性。比如性别、年龄、工作信息等。
如果能够识别ID的工作单位所体现的行业职业等工作特征,那么是对该ID对应的非常关键与重要的刻画。
在大数据应用中对其有做强烈的需求。
社会属性-行业的23个标签作为用户画像的基础属性之一,应用面较广。比如:

  • 在搜索广告中作为广告主端的触发条件之一、在内容广告中圈人精准定向。
  • 在一些市场调研等报告中的分析纬度之一。
  • 垂直行业的特殊属性分析,识别起典型的场景与需求等:如IT+加班狗是过劳死的重灾区之一>_<。

因而,继续针对第一版挖掘出的社会属性-行业标签尝试进行迭代优化,期望优化标签的准确率与覆盖用户数;优化挖掘流程,获得更加高效的资源利用率。做成一个可复制性成本较高的画像标签之一。


基于众测样本的第一次优化迭代

简介

采用一些从第三方业务活动收集的数据映射出的行业样本,进行分类优化。
同时尝试挖掘大公司的用户优化现有结果。
最后,将分类结果中的较准确的部分,与基于规则产出的结果按优先级融合。
效果:

  • 提高了23个行业的整体分类精度(提高约10个点)与覆盖用户数(提高约30%),对下游应用方有正向收益。

样本分析

来源:基于众测产品线的用户群体,让部分参与人员按之前类似passport 的行业分类体系打上对应的标签,获得的一批样本。

样本中存在的问题与解决方法

  • 样本数量较少,用于训练的不到10w。
  • 解决方法:评估资源有效且数量有限,没有能够快速获取更多的样本的方法,先调研用这部分优化。
  • 样本没有覆盖全部23个行业。
  • 解决方法:缺少的部分仍然保留之前的规则识别方法的结果。
  • 样本分布方面,在占比最高的IT 类行业偏差太大,单独该TOP1行业的样本数占比达到36+%。
  • 解决方法:对TOP1行业样本采用undersampling(删除一部分)平衡。
  • 样本分布方面,在占比少的一些行业多,有9个行业的样本数占比不到1%。
  • 解决方法:直接使用。
  • 由于行业的passport 分类体系本身是一种模糊的概念,众测的收集方的理解并不一致,从而导致有些行业的样本之间混乱而产生badcase。如:出租挖掘机在维护机器时认为自己是机械行业的,而给工地搞建设时则认为自己是建筑行业的;淘宝的店主认为自己是互联网的或者零售的。
  • 解决方法:加强映射的检验,目前无法修复。
  • 由于项目组内部自定义的行业与passport 的行业类别不一致,导致从众测样本中映射过来有些牵线,如:passport的服务行业映射为生活服务业。
  • 解决方法:加强映射的检验,目前无法修复。

IP

为了获得一些大公司的用户用于识别起所在的行业,可以抽取出部分典型大公司的IP解决。
- 基于IP位置数据。
- 基于官方微博的IP。
- 基于IP的位置。

挖掘行业

基于新的样本做分类可以识别出部分ID的行业,同时采取人工设计的规则补充部分识别的结果,最后,融合两份结果到一起即得。
其中,规则识别部分前文已经有介绍,不再赘述。

分类部分

梳理一些尝试的方向。

样本

对于监督学习,需要一批高质量的样本来学习分类器。梳理尝试的过程,提炼一些经验性小结:

  • 去除部分占比太少的行业:无正面效果。
  • 合并部分占比太小的行业为某个大类别:无效果。估计是不同类别聚合的大类如其它类直接的交叠更严重。
  • 增加基于微博用户信息识别出的行业位置:无正面效果。估计是两类样本的特征差距大(微博部分的特征词数少1个量级)
  • 样本再抽样:保持训练集与测试集的各类别分布基本一致是较优的。
  • 最高频样本抽样:需要不断尝试不同的过滤比例,选择最优的。
  • 样本顺序:对分类效果有轻微的影响,特别是占比少的样本的出现前后顺序。建议将样本均匀打散。
特征与分类模型

特征是表达样本的,是用来推广到其它未知用户的行业标签的纽带。而样本的特征从不同来源、层面组织都是有区别的,相应地影响到分类模型的效果。
特征的分布规律与所使用的模型对数据的假设是否一致,这部分以后分析。有经验的分享一下。

  • 使用词tagcloud:区分性强。
  • 过滤低频词:效果提升。原因是降低了模型的var.
  • 过滤TOP高频词:效果下降。原因是提高了模型的bias.
  • 加入人工规则:将最高频词中的少数几个游戏词特征去除。效果提升。原因是降低了模型的var.
  • 加入人工规则:将较高频词中的游戏词特征去除。效果下降。原因是提高了模型的bias.
  • 使用各天专名规则挖掘的行业标签的各种统计结果(如2个行业标签的共现次数):不可分。
  • 其中,继续针对上面的统计结果,做了不同纬度的统计特征部分删除,结果都不可行。
  • 使用各天专名规则挖掘的词:需要回溯数据,实验成本高,暂停。
  • 使用APP:效果不明显。
  • 文库:效果有提升,不明显。
  • 按优先级合并passport,LBS,分类,规则等多个挖掘结果:效果有小的提升。
  • badcase: 无数据记录。
  • 调整SVM的正则化参数:效果明显。

基于位置样本的第二次优化迭代

简介

现有行业挖掘的指标不高,需要进一步优化。
梳理历史画像标签的挖掘经验可知,好的样本集合是优化画像很有效的方向。而由于现有的行业样本本身也存在质量不好的问题(数量少、分布失衡、行业类别映射不准确等),所以,尝试去获取更优质的样本集,继而优化现有的行业标签结果。
概括挖掘流程如下:

  • 调研行业相关数据与样本挖掘方式、提取公司分类为行业迭代、补充公共服务行业垂直行业挖掘、基于位置提取公司类的分类出行业、用户行业样本badcase清洗、用户的行业标签挖掘。

一路各种踩坑填坑,磕磕绊绊。记录下自己做的这个过程分享出来,希望有类似项目与场景的挖掘中,吸取一些经验教训去应对之,做得更好。

样本挖掘

行业标签分类体系本身并不是有比较普适的标签,不像性别等标签等划分清晰、有统一的表示方式。因而即使有一些其它来源的行业标签数据,也由于划分方式不一致而不能作为当前23个行业标签的样本。也即直接从某些数据方获取一批高质量的样本是行不通了。

如此看来,是不是有点想不能够获取有效覆盖23个行业的样本了呢? 非也,通过获取用户的位置,再获得其中的公司信息,通过统一的公司名与行业类别的对应关系,就得到了用户的行业类别。所以,可以通过公司名做纽带,从位置中挖掘出一批覆盖23个行业的样本。也即采用位置-公司-行业2步走的方式获取一批用户所在行业的样本。

公司与其所属行业挖掘

通过打通公司与行业的关系,就可以完成位置-公司-行业2步走中的后一步。
挖掘公司名与起所在行业并没有较现成的样本与方法,因而其中会遇到一下辣手的问题与解决方法记录如下:

  • 同一个公司名可能由于业务多而有几个不同的所在行业。
  • 解决办法:选择其主要的发展起来的行业作为该公司的唯一行业。
  • 公司名有不少是英文的,同时由于是各种BOSS拍下的,并不会按照某种行业分类体系去命名。因而单独依据公司名识别不出来很多公司所属的行业。
  • 解决办法:补充公司在政府部门的注册中填的行业分类信息强特征。
  • 公司名到行业的关系如何建立?当下并没有批量的公司-所属行业映射。
  • 解决办法:抽取部分种子词人工标注其所属的行业,再使用种子词做分类器-对公司名预测 VS 使用种子词抽取公司名得到公司样本训练分类器。
  • 公司与所属行业中的公共机关类别没有交集,意味着后续识别出的第2步的映射在缺少行业为公开机关类的。
  • 解决办法:单独补充标注一批公共机关的机构名,如:人民政府。
  • 部分公司的位置位置太宽广,内部覆盖多个公司机构等,如:塘沽海洋高新技术开发区。
  • 解决办好:将宽泛的公司位置信息作为无法准确判断其位置的,去除掉。
  • #
公司-行业挖掘

公司名和行业的对应关系,首先通过标注一批较好的体系行业类别的典型词与行业的对应关系。通过对公司名分词,提取TOP词频的人工标注出来。
获得一些词与行业的对应关系,再用它去匹配那些有这些词的公司名,即可得到一批公司与行业的映射关系。对于那些公司名中没有这些专名的占比很高,因而采用分类器去识别这些剩下的公司对应的行业。
将这些公司名、对应的行业体系合并作为样本,训练得到一个公司名的行业分类器。使用分类器将更多的公司打上所属行业的标签。
尝试使用一些复杂的神经网络进行分类建模。对比了CNN,RNN,LSTM三者在含大量专有名词的这类短文本上的分类表现。经验性的结论是LSTM比RNN和简单的CNN都好,对比COST如下:
这里写图片描述

用户与其所属行业挖掘

如上所述,用户通过其工作单位位置信息,与所属行业联系起来。通过查看数据、对人工标注得到的badcase分析定位与归纳,梳理出如下一些问题与对应的解决方法:

  • 由于用户自己填写的位置数据,并不会按标注的省、市、县等一直到街道、公司、门牌号等,而是经常使用缩写、简写等(如:北京路224号周大福)
  • 解决方法:将公司全名去除一些无意义词,如北京、公司、责任有效公司等,获得相对较短的公司缩写名词。
  • 用户经常填写的位置具体到的位置不一,如:东北大马路沈阳骨科医院icu病房504室;有些位置是具体到公司的位置与名称,有的位置却只写到公司名,还有的位置却只写位置。
  • 解决方法:分别对公司(优先)、位置进行匹配。
  • 用户经常填写的位置中的机构经常被用来做方位参考系,如百崎镇公交车站后面玛肯大厦,开发区中国城酒店附近。
  • 解决方法:提取后缀词,如果其中有方位词则视作badcase去除。
  • 由于公司与行业的映射关系数据有限,位置数据中仍然有较多的一些可以映射到明确行业的位置没有识别。
  • 解决方法:对没有识别的位置补充抽取一批TOP词标注其所属的行业,补充召回。
  • 部分位置中有多个机构词汇,如:南环路一中西隔壁文武家属院院内市场发展局。
  • 解决方法:按照找到所属行业的机构词的位置的先后顺序设置优先级,选择最优的。
  • 部分位置中有括号包围的独立位置,如:巢湖市车辆管理所(大院内中宇中介)
  • 解决方法:将括号内、外的位置单独处理,并结合前后位置选择最终结果。
  • 现有公司名称覆盖的范围之外的一些机构无法识别行业。
  • 解决方法:尝试学习CNN等较复杂的深度神经网络模型后对剩余的数据全部预测出所属的行业,由于数据量较小,得到的模型泛化能力较弱,新的公司信息还不能有效分类到对应的行业。后续如果有更多的数据后,可能会解决。

行业标签优化迭代

通过之前的挖掘迭代中抽取出用户的行为分析发现,有一部分行业的用户能够通过搜索浏览等行为分辨出他所属的行业。而且通过获取一批用户的位置与所属行业的映射关系,从而提取出来一批质量较高的样本。因而,继续尝试使用用户的搜索、浏览类行为学习出一个(弱)分类器,给剩余的用户打上对应的行业标签。
其中,做通用的特征选择将模型降维,即加快了神经网络的训练速度,也能得到更加简单、鲁棒性更好的模型。
因为全量用户中,很多bdid类型的用户的行为特征数据稀缺,导致其特征分布与模型处理的userid的特征分布差异明显,针对不同样本分布在全量用户上预测的行业分布出现差异,需要对训练样本集的分布进行微调。平衡特征数规模对全量用户上预测的行业分布出现差异的影响。
当然,神经网络本身的结构也可以微调,可能有好一些的模型出来,但不会有比较大的提升。
之后,将训练后的模型上线。

后续计划

随着用户画像对内、对外合作的不断深入,行业作为人口属性的一个标签,会继续延伸出各种应用的同时也获得更多的数据。因而有机会继续调研对行业的挖掘,优化挖掘结果。

0 0
原创粉丝点击