最近房源标签立项了,急需一些做标签/画像的方法论,MT这本写的偏技术&概括,但是依然可以借鉴。
1.什么是用户画像
收集分析用户的线上线下行为数据,把个性化的人,打上标准化的标签,把标签做梳理聚合,形成一个个典型的用户画像,再根据不同的用户画像做精准营销or推荐。
本质是去差异化的过程,抽象出一定级别的共性,反哺降低业务成本,创新业务场景。
2.用户画像的数据挖掘
标签的生产,从开发实现的角度可以分为两大类,1.统计分析直接得到的。2.通过机器学习训练模型,然后基于模型预测得到;
第一类因为直接处理数据做逻辑计算得到最终结果,通常不会太复杂,这里不再展开。
本章将会重点介绍第二类,首先收集样本集合建立机器学习模型,然后在全量数据上做预测计算。
将设计各种机器学习/数据挖掘方法,比如传统的分类,回归,聚类,关联挖掘等,当然也在不断尝试比较流行的深度神经网络/卷积神经网络/长短期记忆等深度学习乃至增强学习方法。
2.1 数据挖掘整体架构
用户画像数据的生产和消费是一个比较复杂的过程,通常涉及数据收集,清洗,特征生成,标签建模,预测计算,效果评估,线上应用,效果反馈等多个环节。
数据收集:除了公司自有的数据,还可能有互联网抓取的公开数据,其他公司合作的第三方数据等。
特征计算:如何将清洗后的数据转换成特征工程,这里的主要工作是数据处理(如异常值处理,数据异构转同构),数据加工(统计,平滑,归一),考虑到底层数据库有海量的结构化数据,我们开发了特征爬虫,这是一个强大的可以自动发现特征的工具。大致做法是:给出数据样本之后,自动扫描这些结构化的数据表,根据一些相干性指标,找到跟样本标签强相关的数据列,稍作处理之后可以加入特征库作为后续建模特征使用。
特征库的维护:特征生成之后,需要一个统一管理的地方,以方便收录新特征,下线老特征,一级可视化展示特征的各种统计字表,最重要的一点是,为了保证特征质量们这里有一个旁路系统,用于监控特征各种波动情况,在有质量风险的时候做预警。
机器学习模型:拥有比较完备的特征库后,对标签做机器学习建模的主要工作,就变成了使用什么样的算法工具完成:特征选择,模型训练,效果评估,例行预测。特征选择通常采用高效的fileter方法,字节通过卡方、信息增益等指标度量特征的重要程度,模型训练我根据,我们会用到各种机器学习和数据挖掘的相关工具,例如spark MLib、sklearn、xgb、tensorflow,为了统一方便预测,我们通常会使用预测模型标记语言做模型表达,从而减少模型预测时大量的适配工作。
应用接口:不重要。
画像应用:各方向。
2.2 用户标识
讲的userid的打通,对C端来说,即便公司内部有一套专属的用户ID,但是无注册访问或者第三方数据都不会标注出这个ID,这时候就需要合并自然人。
对我们房源标签,基本不存在这个问题,贝壳自身数据就包含了很大一部分在售房源,对未包含在内的,可以用房源对齐/房屋ID等方法。
2.3特征数据
解决用户相关数据的收集问题。
由于MT业务形态的问题,一些用户的行为数据比较稀疏,如某个品类的浏览与购买数据可能是百万级、千万级的,在全量用户上的占比低于10%,因此在用户建模过程中,往往需要用到大量的特征来缓解这一问题。
此外在进行不同的标签开发过程中,很多数据特征同样有效,如婚纱摄影品类的浏览,购买特征,在结婚和有小孩的数据挖掘中同时有效;由于用户画像不同属性的关联性,这类的例子非常多,所以在具体进行用户建模过程中,为了高效挖掘用户标签,避免重复提取特征,降低人力成本和减少时间的浪费,在进行具体的标签挖掘之前,需要先进行用户特征库的规划和建设。
这套思路没问题,房源标签/画像都用的上。
2.4 样本数据
从机器学习理论和实践效果来看,有监督的学习比无监督的学习在效果、解释性、评估的方面都有明显的优势,所以在标签挖掘的过程中,使用较多的还是有监督的学习方法。所以除了上面说的标识与特征方面的问题,样本问题也是用户建模过程中的一个大问题。
样本缺失主要是只需要建模的标签非常多,只有少数种类的标签有样本;
样本少是只有些样本数据获取成本比较高,有些只有几百个几千个样本;
单样本问题是只在一些场景下,只有正样本没有负样本。
针对上述是哪个问题,主要用了找、转、试三种方式来解决。
样本问题:首先找,通过问卷的方式,内部员工数据,人工标注以及用户注册服务提交的数据;第二条路是“转”,一些问题进行转换,变成可以按时间切分的预测问题,可以按时间的先后顺序来自动标注样本,如用户偏好类问题转换成用现在预测未来的问题,用点击/购买等行为作为标注,这样就可以直接按时间段标注样本;对于小样本,单样本的问题,主要是“试”,试验论文中比较好的一些学习方法。
2.5 标签建模
前面用整体上描述了用户建模遇到的一些问题,下面具体介绍标签挖掘过程中涉及的一些问题和做法,将从建模方法和建模实例两个角度来展开说明。
2.5.1建模方法
标签建模除了涉及算法模型的选择调优还涉及到大量的系统工程方面的问题,一方面因为涉及到大量标签的数据更新,特征数据更新,标签质量监控,特征数据质量监控以及新标签的开发等。
以美团为例,介绍下标签建模系统框架方面的一些积累和经验。
离线标签生产平台简介
存储层主要由HDFS、MYSQL、S3等基础存储服务构成,HDFS用于存储特征数据,训练数据等大规模数据,mysql和S3用于存储一些配置文件、资源文件。
计算资源主要包括hiv、spark,用于特征抽取,变换等处理操作,平台的模型主要封装了一些开源的机器学习库。
整个挖掘流程分为四个部分:特征库/样本库,特征定制、模型构建和模型发布,特征库和样本库主要用于从海量的公共特征库中选择出对建模有帮助的特征,用于模型构建。模型发布模块支持将训练好的模型按照特征的一些格式进行发布,这些格式有标准的预测模型标记语言,用户自定义模型等。整个系统对特征和模型预测结果都有监控,以此保证特征的质量和线上数据的可靠性。
标签生产平台将特征库、特征处理、特征监控、样本库、模型训练、模型预测、标签质量监控等模块进行了有机的整合。
标签挖掘过程中的常用算法
从以上眼花缭乱的算法中,可以发现,标签的归类往往不唯一,例如“用户品类偏好”,可以用策略打分简单的统计来处理,也可以按高维偏好来进行处理,还可以按分类来处理,面对多样的标签与多重的问题,扣紧实际的需求场景,进行场景设定和具体问题限制,往往能够将问题简化很多,而且取得不错的效果,至于设计,从随时间经验来看标签的建模同样遵循奥卡姆剃刀定律,简单方法,简单模型总是有不错的收获,同事可以为后续优化迭代提供依据和参照。
另一方面,不同的模型会有不同的假设条件和适合的场景,如适合高稀疏场景的因子分解机/场感知因子分解机,适合图像语音场景的卷积神经网络/循环神经网络。
建模实例
基于规则的标签挖掘:最简单的挖掘方法莫过于基本规则的标签挖掘,优点是如果样本很少,但是先验知识多,规则的方法往往是一种非常不错的选择,即便样本有了之后,这些规则也能作为人工特征加入模型提升预测模型的效果,实际上,基于决策树的模型本质上也是大量自动学习的规则组合而成的结果。
样本明确的标签挖掘:可以用监督学习的方法建立预测模型,例如注册用户的性别。
小样本问题及单样本数据挖掘:除了上述两种常见的情况,另一种是小样本与单样本问题的标签挖掘,多数情况下样本不好获取或者只有少数的正样本,通过算法试验解决类似问题,LU learning。主要原理,是对未标注样本进行预测,将预测结果中置信度较高的样本加入已标注样本,依次迭代直到符合要求产出模型。
用户实时标签:以上两种主要是离线标签的计算,优点是资源和时间,但是对用户实时意图和消费场景进行刻画就力不从心。
实时标签举例-用户常驻城市预测:美团的一些酒店业务,都是以用户常驻为重要基础数据。考虑到选取活跃用户作为样本训练和预测可能会存在差异,因此通过随机抽取到用户进行电话回访的方式来收集样本,经过电话回访和问卷调查,收集的样本清晰可用的有600多个。
根据收集到的数据,可以得到二元组(用户,城市),这里的城市是用户常驻城市,将这些样本作为正样本,同时采用K个该用户相关的其他城市作为负样本,例如将用户手机归属地,浏览或者消费国的城市,定位过的城市利用规则进行打分,将分数排名靠前的K个城作为该用户的负样本。