小言_互联网的博客

基于gbdt+lr的酒店竞争圈模型

212人阅读  评论(0)

背景介绍:

公司业务需要提供商户竞争对手服务,

对手应该是彼此相似的,只有相互理解所以才能不相上下成为对手

找对手就是找相似酒店

相似酒店只有在彼此影响范围夺食才是敌人,否则他们就是陌人或者盟友

携程美团的做法:

记录用户浏览酒店行为预测相似酒店+规则预测

我们无法得到用户浏览行为,所以另辟蹊径:

A.对手应该处在彼此影响区域——空间信息

B.对手是相似的——价格、用户群(用户评论用词特点)、自我定义(自我描述)、局部环境(poi分布)

C.全局评价,三方平台对他们的看法——携程、美团相似度酒店、看了还看信息

我们怎么做:

A.构造酒店特征,召回批量相似酒店(100家左右)
B.利用三方平台经验,做监督学习;召回酒店精排(相似酒店打分排名预测)

C.业务经验,制定规则减少竞争酒店范围(30家)

D.根据商户或一线人员对竞争酒店反馈信息,优化预测准确性

数据准备:

1、酒店poi数据分布

2、酒店经营数据

3、路网数据

4、地标常识数据、经济统计数据

特征抽取:

为什么是选这几张网

1、这张网比较广,基本可以把中国的乡镇城市都覆盖
2、这几张网覆盖到的点,人群密度足够

3、这几张网有差异性

4、这几张网可以把移动和固定人群一定程度都覆盖

5、这几张网数据相对容易得到

有以上特点,这几张网就比较适合作为建立商业生态的锚点网

通过这些锚点网关联POI数据、其他数据,就可以形成一张比较全面的关系网。

多个维度描述酒店生态。

统计类:

1、1km内POI总数&单位面积内POI密度

2、2km内POI总数&单位面积内POI密度
3、5km里内POI总数&单位面积内POI密度

4、2km内交通类POI占比
5、5km内交通类POI占比
6、2Km内各类POI分布
7、5km内各类POI分布
8、5km内医院分布
9、5km内便民POI分布
10、2km内商场POI分布
11、5km内各种POI品牌等级分布
……

 

距离类:

1、3km内两家酒店最短距离

2、3km内酒店到公交站平均距离
3、离省道路口最小距离……

启发类:

1、2km内师范院校密度

2、2km内3甲医院数量
3、3km内足浴点数量

4、2km内4A景点
5、2km内有个长途物流中心
……

 

业务规则类:

1、2km内即有品牌超市又有洗浴中心

2、3km内有大型国企且附近有配送中心

3、2km内BCD密度**且离公交站200米且有会展中心
……

模型实现:

有了以上特征数据,结下来要做的就是怎么去构造训练样本。

构造训练样本几个原则:

1、需要学习什么

2、样本是否均衡

3、样本分布和实际场景分布差异

(因是公司实际业务,数据构造具体细节不便透露;模型部分会给出相似测试数据样本方便代码测试)

GBDT与LR融合方案

      AD ID类特征在CTR预估中是非常重要的特征,直接将AD ID作为feature进行建树不可行,顾考虑为每个AD ID建GBDT树。但互联网时代长尾数据现象非常显著,广告也存在长尾现象,为了提升广告整体投放效果,不得不考虑长尾广告[12]。在GBDT建树方案中,对于曝光充分训练样本充足的广告,可以单独建树,发掘对单个广告有区分度的特征,但对于曝光不充分样本不充足的长尾广告,无法单独建树,需要一种方案来解决长尾广告的问题。

      综合考虑方案如下,使用GBDT建两类树,非ID建一类树,ID建一类树。1)非ID类树:不以细粒度的ID建树,此类树作为base,即便曝光少的广告、广告主,仍可以通过此类树得到有区分性的特征、特征组合。2)ID类树:以细粒度的ID建一类树,用于发现曝光充分的ID对应有区分性的特征、特征组合。

      如何根据GBDT建的两类树,对原始特征进行映射?以如下图3为例,当一条样本x进来之后,遍历两类树到叶子节点,得到的特征作为LR的输入。当AD曝光不充分不足以训练树时,其它树恰好作为补充。

通过GBDT 映射得到的特征空间维度如何?GBDT树有多少个叶子节点,通过GBDT得到的特征空间就有多大。一个叶子节点对应一种有区分性的特征、特征组合,对应LR的一维特征。这颗树有8个叶子节点,即对应LR 的8维特征。估算一下,通过GBDT转换得到的特征空间较低,Base树、ID树各N颗,特征空间维度最高为(N+N*广告数+N*广告主数+ N*广告类目数)*叶子节点个数。其中广告数、广告主数、广告类目数都是有限的,同时参考Kaggle竞赛中树的数目N最多为30,叶子节点个数小于10,则估算通过GBDT 映射得到的特征空间维度并不高,且并不是每个ID训练样本都足以训练多颗树,实际上通过GBDT 映射得到的特征空间维度更低。
 

代码实现:

https://github.com/liangwq/GBDTLR.git

结果分析:

展望:

1、有标签数据较少,其它没标签数据信息没得到充分利用;希望通过无监督方法对信息浓缩利用(embedding)

2、构造相似矩阵,通过隐语义矩阵分解来信息浓缩充分利用无标签数据信息

3、利用已有标签对,通过graph embeding对现有数据做embedding

4、利用推荐分段模式,广招回、精排序、结合业务规则迭代优化

 

参考:

https://blog.csdn.net/lilyth_lilyth/article/details/48032119

https://blog.csdn.net/Losteng/article/details/78378958

 


转载:https://blog.csdn.net/liangwqi/article/details/102485849
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场