课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
我们在进行任何的产品推广和品牌宣传之前,首先需要做的就是进行资源整合,通过对数据分析来确定我们的用户群体,这也是用户画像阶段的主要内容。下面,我们就一起来了解和学习一下资源在整合的过程中,我们需要注意以下哪些问题。
整合 Integration
先看数据整合 integration,这里我介绍一下实际应用中最常用到的用户画像技术,对一个企业来说最重要的资源无疑是它的用户,提供个性化和自动化的服务和产品必然需要足够的了解用户,那么用户画像就是用户在计算机中的表示形式。这里的挑战首先就是表示的方法,将用户表示成什么样的结构才方便计算机使用,另一个挑战是如何保护用户隐私,虽然我们对用户的敏感数据进行了脱敏,但用户的特征越多越容易反推回单个用户,有没有什么方法既能保护用户隐私又不影响计算机的使用?
先看用户画像的表示方法,用户画像的目的是为了在不同任务中度量用户和用户之间的相似度,那么通用的做法是将每个用户在数据库中表示成一个向量,向量和向量之间的距离有很多种数学方法计算比如常用的欧式距离和余弦,但实际使用中会根据不同应用场景定义相似度函数,或是在实际的数据上用机器学习的方法去拟合这个函数,有了这种对不同用户相似度度量的方法我们就可以做用户分类和聚类,或是提供对相似的用户推荐相同的商品这样的服务。
但是这个将用户转成向量的过程,在实际中却是非常复杂的,如果都是简单的标签那么常用的 onehot 编码就可以搞定,但很多数据是有结构的,例如微信中社交关系是一个网络结构,用户和公众号的关注关系是一个二部图的结构,用户的兴趣是一个随时间变化的序列结构。
我们在实践中社交关系这种网络结构使用了 node2vec 的方法转换成向量,使用的时候有些提高效果的小技巧比如好友关系其实是有权重的,好友和好友之间相互点赞和评论的越多权重就越大。 公众号的关注关系其实是一个稀疏矩阵,我们把每个用户关注的公众号作为一个词,把一个用户作为一个文档看待,这样就可以使用通用的主题模型给每个用户打上主题标签,推荐大家使用袁老师的 lightlda,非常适合大规模数据的训练,还有短期兴趣这种序列结构,文本,图像这些数据都可以用深度学习的方法 embedding 成向量,那么最终把这些向量拼接到一起就是计算机可以使用的用户特征向量。
上面的方法编码后,每个用户特征的维度是很高的,这意味着实际使用中需要足够多的训练样本否则就容易过拟合,但实际使用中用来训练的用户集大多数时候是非常有限的,要让算法支持较低的样本输入,必须要对初步编码后的用户特征向量做降维,现在有基于深度学习的 auto-encoder 的方法,在实际使用中我们发现它的效果比传统的 PCA 好很多,降维的另一个好处是对传统的标签进行了压缩和隐藏,压缩完成的向量不影响用户相似度的计算,但维度上比原始的向量小了很多,每一维的数值并没有实际的物理含义从而保护了用户隐私,便于在公司内进行共享使用。
关于用户隐私保护的问题这是公司内在处理用户数据时遵守的原则,文字比较多我就不念了。
推断 Inference
对数据整合和编码后,下一步我们要使用统计和机器学习的方法去求解问题也就是 inference,这里我们来说 lookalike 这个模型。
lookalike 在商业化方向上有很多的应用场景,lookalike 最早是用在社交广告上的,通过商家上传的种子用户包扩展更多的相似用户用于做广告受众,广告投放中它的效果远好于标签筛选出来的用户,但是 lookalike 的本质是通过已知的一堆样本在另一个集合上去找相似的样本,同样的也可以用在流失预测上,我们知道上个月到现在已经流失的用户,在现有的用户群上做 lookalike 相似性扩展就可以找到正在流失或下一步可能流失的用户,lookalike 对线下店铺的智能运营也很有作用,我们通过已有用户在大盘全量用户上做 lookalike 就可以算出各个地方潜在的客户群体有多大,lookalike 不光用来找人还可以用在商品上,我们可以通过热门商品去商品库里面扩展找类似的商品,这就是智能选品的问题。
这是 lookalike 人群定向系统的大致流程,我们从种子包里过滤出我们自己系统里面的重合用户也就是这里的目标用户,同时从全量用户的其他用户中采样出一些用户作为对比用户,再从用户画像系统里提取出用户特征,这样我们有了一个 label 的正样本数据和一个 unlabel 的数据,可以用 PU learning 或是二分类的机器学习方法训练出模型,模型上线使用后,会有实时的反馈数据,我们会利用这部分实时数据再训练一个综合打分的算法,对线上的模型结果做出实时的调整。最终用这个最终打分对全量用户排序选出最相似的用户。
这里我们看一下 lookalike 打分算法的模型训练部分,前面说了不同于学术研究实际应用中很少使用一个模型,我多年的体会训模型和画画很像,你很难用一个笔刷完成整幅画作,刚开始的时候需要用粗的笔刷完成大的布局最后再用细的笔刷去勾勒细节。
在机器学习中常用的模型整合方法有 ensemble 和 jointtrain,lookalike 中比较通用的方法是左图这种先用 gbdt 学习特征再传给 LR,FM 或 DNN 的方法,之后 google 用了这种对 LR 和 DNN 进行联合训练的 wide&deep 模型。如果人工特征设计得好是可以结合两者优点取得非常好的效果的。我们系统实际使用的是右图这种 ensemble 的方法,因为 gbdt 是一种基于 boosting 的学习框架,那么理论上它可以 boost 任何模型,当然包括 dnn,这样就可以将这两种模型的优点结合起来了,他的训练方法是先训一个 dnn,这里不需要用太多的层数相当于用粗的笔刷去完成大致的轮廓,然后用 gbdt 进行 boosting,这相当于用更细的笔刷去刻画细节。
我们看一下 lookalike 应用的一个具体实例,lookalike 被广泛的应用于精准拉新,但我觉得相对于拉新降低用户流失率更重要,因为新用户可以通过广告或地推等方式花钱买到,但已有用户一旦流失就很难挽回,所以必须在流失之前采取措施。常用的激活策略有很多,比如促销商品,发优惠券或发红包等,假如有商家要拿出一笔钱给用户发红包,那么怎么花这笔钱呢?显然不是等用户已经流失了再发给他,因为这时用户已经不再打开应用了,等同的给每个用户发也不合理,因为预算有限。那么常用的方法是发给对平台有最有价值的用户和有可能要流失的用户,所以要做用户价值分析和流失预测。
作者:张重阳
来源:infoq
【免责声明】:本内容转载于网络,转载目的在于传递最新信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。