居理新房研究院:低频长周期场景下的算法设计
居理新房作为国内最大新房电商平台,一直致力于深入探索数据在房产流通中的应用价值,提升居理新房用户的购房体验。2018年,居理新房在业内率先成立了ai大数据研究院,从而更加系统化的挖掘数据的决策力和洞察力,通过大数据和ai技术发现和解决业务和产品核心问题,为业务的高速增长和用户体验的持续升级提供动力。
日前,居理新房大数据vp张惟师在公开场合发表演讲。他表示,目前居理新房已经打造了独特的线上线下闭环的生态系统。
新房业务场景客单价极高,频率极低,对比新闻信息流、广告推荐、快消商品等,是产业互联网中典型算法不友好场景。居理新房搭建了复用性和扩展性都比较好的算法平台,可以通过一些灵活的配置,实现相关监控、任务调度、模型校验、可视化页面以及ab test。算法平台底层支持多种算法引擎包括机器学习模型平台(spark-mllib,xgboost)、深度学习平台(tensorflow,pytorch)以及图相关模型,通过pipeline的方法整合数据流和算法引擎。
以优选客户识别算法为例,张惟师从以下方面介绍了居理新房的算法设计思路。
一、样本选择
如何选择正负样本?比较直观的做法将“最终是否发生认购行为”作为正负样本的评估依据。
在居理新房的业务场景下,由于房屋交易业务转化率低,从线*问uv到最终房屋认购,比例在万分之几左右。
为了解决样本稀疏问题,通过设置了一个代理目标,将是否发生带看行为作为正负样本的评估依据。带看行为发生在认购行为之前,发生认购行为占带看比例约十分之一,周期也可从一到两个月缩减到两周左右。
样本在一个周期t内,将是否被带看作为正负样本的评估依据。另外可以后续模型训练时,提高具有多次带看行为或者发生认购行为的权重。在一个时间周期t内,可能存在跟单不完全的情况,但这部分比例在10%以内,可以忽略。由于正负样本比例差异较大,在样本量较大的情况下,这种比例可以接受,但在样本量较少的情况下,正负样本比例差异导致模型学习困难,因此在训练模型前可以先对样本进行采样预处理。常见的样本采样方法有欠采样和过采样。欠采样是保持数据集正样本数量不变,根据一定比例去随机抽取负样本,过采样是通过已有正样本来构造虚拟正样本,来减小正负样本差异,常见的过采样方法有smote等。但是采样方法会影响数据集中的正负样本分布,在关注概率值的分类等业务场景下,需要对模型输出的概率进行校准。
二、特征工程
在特征工程中,特征类型主要有以下三类,信息来源类、用户app行为类、用户粘性类。
其中信息渠道来源是指用户是来自百度、feed、广点通等平台,多设备、多账号等主要是用于衡量用户是否发生过作弊行为。
用户app行为类特征是占比最大的一类特征,主要是指用户在留电话号码前,在app上点击、浏览、搜索等行为。
用户粘性类特征是一些抽象统计特征,其中访问深度是指app页面用户访问最长的路径,广度是指app中用户使用的功能的数量。
三、模型调优
模型主要采用的传统模型lr、rf、xgboost、lightgbm,也尝试了使用deep learning等,但实际效果不如传统模型好。
在当前场景下样本数量少,而且版本更新迭代较快的时候,常遇到数据分布不一致的问题。产品迭代了新的版本,但离线模型训练用的还是老的数据,而线上用的新版数据,这种信息不一致将拉低模型效果。当前采用的方案是时间窗口滚动的方式来训练模型,并尽量剔除一些可能因为版本导致数据不一致的特征,努力将影响降至最低。
在无论是深度学习还是传统机器学习,参数调优的方法大同小异,主要是网格搜索(grid search)、人工参数调优以及分城市阈值调优。网格搜索调优虽然不能一定找到最优解,但是花费时间较短。另外也尝试了一些贝叶斯优化的方法,它和grid search有的区别就是它会根据上一轮做算法的参数结果去选择最有可能产生最优算法参数方向去优化这个参数,利用贝叶斯优化自动帮忙寻找参数优化方向。贝叶斯寻优容易陷入局部最优,需要多进行几轮贝叶斯优化,手工选出里面的极大值。分城市阈值调优是遇到的另一个更严重的一个场景,由于居理新房业务分布在全国12个城市,而且每个城市有自己不同的特点,用户的行为都不一样,在模型分类时,每个城市应采取不同的阈值。在本身整体数据量就不多情况,每个城市的数据量更少,这种情况下或者将城市信息加入特征,或者每个城市都分别训练一个模型。
四、可解释性分析
整个房产行业的客单价都比较高,每个客户都特别的宝贵。若将好线索误判,没有为客户好好服务将会导致较大的损失。
对于居理新房的业务人员(客服、咨询师)而言,模型预估结果会与他们原有的一些工作模式和习惯矛盾,需要向业务人员解释模型预估结果。当算法去服务于业务团队的时候,这种可解释性显得尤为重要。
通过xgboost计算得到的特征重要性(feature importance)不一定是完全可解释的,和特征在决策森林中出现的次数相关。但特征在决策森林里面出现的次数越多并不能说明特征越重要。这里采用的是shap来进行可解释性分析,shap计算的是一个特征加入到模型时的边际贡献,考虑了该特征在所有的特征序列的情况下不同的边际贡献。在shap图中,纵坐标是特征列表,横坐标是从负数到正数的取值范围,表示对模型输出值的影响。留电口、渠道特征是从shap方法来看是最为重要的特征。一般来说通过搜索渠道来的用户,购房的意向较强烈,这个也和基本认知符合。另一个比较显着的特征pv_p_select_city,表示切换城市的动作越多,购房意向越弱。
五、实际效果
从模型效果来看,客户认购量提升了十七个百分点,基本达到了算法预期目标。从认购到带看的目标变化,将周期从两个月缩减到了两周,后续希望能找到一个更好的指标来代替带看,进一步缩短模型周期。另外居理新房还做了很多线下数据的累积,如咨询师与客户的电话录音、交通行为等,通过这些离线数据能大概分析出咨询师和客户的行为。目前不同的城市数据累积量不同,等数据量积累到一定程度,可以为不同的城市设置独立的模型。另外模型融合(stacking)是后续优化的方向,看能不能做出更有意思的效果。目前的模型是基于无线数据,pc数据相对无线来说,用户行为比较少,下一步是跨站整合pc和无线的数据。
下一篇: 迅雷下载一半(数据文件)迁移方法