【SPA大赛】转化率预估中的用户偏好Emebeding

分享技巧:Emebeding降维(用户偏好分析)

在Tencent广告算法大赛中,在对用户点击之后的转化情况预估时,笔者主要需要考虑两方面情况:

(1)用户对点击的App偏好;

(2)具体点击场景与用户的匹配情况。

其中(1)又可分为:①具体用户对App的偏好;②用户的属性对App的偏好。这两点大致可理解为:我喜欢APP,所以我下载,或者虽然我以前没接触过这类APP,但这类APP对我这类人群具有天然的吸引力,所以我也下载了。这里主要分析①中用户偏好。

根据比赛提供的数据,用户偏好可以从以下三个方面寻找:①用户近期的流水安装;②用户的历史APP安装;③用户近期的点击情况。这三点中,重要性程度:①>②>③,但是①的数据量只有部分,约占到全部数据量的1/10,②的数据量约1/2,③就更稀疏,训练数据中300万,去重的USERID有180万,每个用户的平均记录只有2条,想要找到对应该用户在前面几天点击该APP的记录很困难,只对部分用户有效。

虽然在XGBOOST中,但过多的缺失会导致重要的特征变得不重要,因此我们在进行Emebeding时只采用历史安装数据,保证Emebeding数据的标准性,不需要再进行其他规范化处理。

用户安装历史数据统计如下:

这里我把未知类型的APP当作一类APP来看待,现在看来,未知种类的APP在考虑偏好时,应该去掉不予考虑。

用户偏好可从用户历史安装数据出发,近期用户安装流水数据作为近期用户偏好在这里不进入分析(实际上,近期的偏好更能反映用户点击时的转化情况),用户历史安装数据中App种类较多,远多于我们分析的50种App,因此在Emebeding时,只统计用户每小类安装的APP数目,用户安装之后打开APP的几率较大。Emebeding流程如下:

  • (1)统计每个用户历史安装的各小类APP数目,生成(N*M)维数据表,N为用户ID,M为APP种类数;
  • (2)对(1)生成的数据进行Tfidf转换;
  • (3)利用TSNE流形对数据集降维至2维;
  • (4)将降维后的数据Join入点击流水记录进行训练。

统计用户的APP安装使用情况,共有5大类APP,50小类APP,1800多个APP,因为这1800个APP中在训练数据中出现的只有12个,且如果采用大类数目统计,这些大类APP安装数目很容易占到非常大的特征权重,因此这里只按APP小类目进行统计。

统计出转化与未转化的分布如下图,其实转化与未转化之间并没有分开,只是可以看见转化了的分布较集中,越靠近中间的簇,是不是就转化率越高,暂时还不清楚,笔者用Emebeding之后的特征与时间窗特征,xgboost单模型,可以跑到0.10059的分数。

主要工具:

sklearn中的feature_extraction.text.Tfidf(),sklearn中的mainfold.TSNE(),这个模块只能用来实验,对于样本数超出100000时,基本无能为力,因此这里给大家提供一个额外的计算程序,实际上这个程序也好不了多少,笔者能力有限,是用MATLAB完成的这部分处理,有经验的同学,Python程序可以轻松的转为MATLAB程序。

TSNE是由SNE衍生出的一种算法,SNE最早出现在2002年,它改变了MDS和ISOMAP中基于距离不变的思想,将高维映射到低维的同时,尽量保证相互之间的分布概率不变,SNE将高维和低维中的样本分布都看作高斯分布,而Tsne将低维中的坐标当做T分布,这样做的好处是为了让距离大的簇之间距离拉大,从而解决了拥挤问题。

TSNE算法原理:http://blog.csdn.net/zhangweiguo_717/article/details/70188517 TSNE的Python实现:http://blog.csdn.net/zhangweiguo_717/article/details/70998959

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

张卫国的专栏

1 篇文章1 人订阅

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏腾讯社交用户体验设计

有数据的apps——手机端的数据表达式 - 腾讯ISUX

1253
来自专栏腾讯社交用户体验设计

来做一个数据可视化报表--遇见大数据可视化系列文章之三

1603
来自专栏顶级程序员

机器学习必备:前20名Python人工智能和机器学习开源项目

源 / 深度学习世界 文 / IIan Reinstein 译 / 乌拉乌拉 如今机器学习和人工智能已经变得家喻户晓,有很多爱好者进入了该领域。但是,...

4039
来自专栏大数据文摘

用Python进行数据可视化的10种方法

3545
来自专栏思影科技

默认模式网络下的自动化信息处理

爱因斯坦邀请您关注思影科技! 近日,来自剑桥大学的Deniz等人在PNAS上发文,主要讲述了DMN网络对个体自动信息处理的控制。个体在一系列复杂的心理过程中,会...

3538
来自专栏新智元

【AI芯展开推理战】赛灵思最新深度神经网络推理器xDNN参数曝光

目前来看,FPGA可能没有像一些人预期的那样在深度学习的训练空间中占据一席之地,但AI推理的低功耗、高频率需求非常适合可重复编程硬件的性能曲线。

1243
来自专栏技术翻译

大数据建模方法的比较

在DT时代,互联网,智能设备和其他形式的信息技术的爆炸性增长使得数据以同样令人印象深刻的速度增长。这个时代的挑战似乎是如何对所有这些数据进行分类,组织和存储。

8842
来自专栏AI科技大本营的专栏

集合70多种推荐算法,东北大学老师用Java写了一个开源库,在GitHub上收获近1500个Star

【AI科技大本营导读】在经过一年多的开发工作之后,LibRec 3.0 版本终于发布了。LibRec 是一个基于 Java 的开源算法工具库,覆盖了 70 余个...

1206
来自专栏灯塔大数据

新浪微博的用户画像是怎样构建的?

用户画像一般是指将用户信息标签化的过程,在分析用户属性这种静态维度时,通过平台自身的合理引导便能获取到精准的用户信息,那么关于”用户兴趣“这种可变动态的属性该怎...

3316
来自专栏机器学习算法与Python学习

PCA实现一个简单的酒店推荐系统(附Python源码)

PCA前言 众所周知,PCA 的主要目的是降维,同时也可以起到分类的作用。当数据维度很大的时候,如果相信大部分变量之间存在线性关系,那么我们就希望降低维数,用较...

3297

扫码关注云+社区