天池入门赛- 新闻推荐-task5-排序模型+特征融合

通过召回的操作, 我们已经进行了问题规模的缩减, 对于每个用户, 选择出了N篇文章作为了候选集,并基于召回的候选集构建了与用户历史相关的特征,以及用户本身的属性特征,文章本省的属性特征,以及用户与文章之间的特征,下面就是使用机器学习模型来对构造好的特征进行学习,然后对测试集进行预测,得到测试集中的每个候选集用户点击的概率,返回点击概率最大的topk个文章,作为最终的结果。
排序阶段选择了三个比较有代表性的排序模型,它们分别是:
  1. LGB的排序模型
  2. LGB的分类模型
  3. 深度学习的分类模型DIN
得到了最终的排序模型输出的结果之后,还选择了两种比较经典的模型集成的方法:
  1. 输出结果加权融合
  2. Staking(将模型的输出结果再使用一个简单模型进行预测)

LGB模型

提升树是利用加模型与前向分布算法实现学习的优化过程,它有一些高效实现,如XGBoost, pGBRT,GBDT(Gradient Boosting Decision Tree)等。其中GBDT采用负梯度作为划分的指标(信息增益),XGBoost则利用到二阶导数。

DIN模型

DIN模型的全称是Deep Interest Network,它可以通过考虑 【给定的候选广告】和【用户的历史行为】的相关性,来计算用户兴趣的表示向量。具体来说就是通过引入局部激活单元,通过软搜索历史行为的相关部分来关注相关的用户兴趣,并采用加权和来获得有关候选广告的用户兴趣的表示。模型如下。

在这里插入图片描述
原代码函数:
def DIN(dnn_feature_columns, history_feature_list, dnn_use_bn=False, dnn_hidden_units=(200, 80), dnn_activation=‘relu’, att_hidden_size=(80, 40), att_activation=“dice”, att_weight_normalization=False, l2_reg_dnn=0, l2_reg_embedding=1e-6, dnn_dropout=0, seed=1024, task=‘binary’):

●dnn_feature_columns: 特征列, 包含数据所有特征的列表
●history_feature_list: 用户历史行为列, 反应用户历史行为的特征的列表
●dnn_use_bn: 是否使用BatchNormalization
●dnn_hidden_units: 全连接层网络的层数和每一层神经元的个数, 一个列表或者元组
●dnn_activation_relu: 全连接网络的激活单元类型
●att_hidden_size: 注意力层的全连接网络的层数和每一层神经元的个数
●att_activation: 注意力层的激活单元类型
●att_weight_normalization: 是否归一化注意力得分
●l2_reg_dnn: 全连接网络的正则化系数
●l2_reg_embedding: embedding向量的正则化稀疏
●dnn_dropout: 全连接网络的神经元的失活概率
●task: 任务, 可以是分类, 也可是是回归
在具体使用的时候, 我们必须要传入特征列和历史行为列, 但是再传入之前, 我们需要进行一下特征列的预处理。具体如下:
1.首先,我们要处理数据集, 得到数据, 由于我们是基于用户过去的行为去预测用户是否点击当前文章, 所以我们需要把数据的特征列划分成数值型特征, 离散型特征和历史行为特征列三部分, 对于每一部分, DIN模型的处理会有不同。
A.对于离散型特征, 在我们的数据集中就是那些类别型的特征, 比如user_id这种以及对于用户历史行为特征列, 比如文章id, 文章的类别等这种需要先经过embedding处理。
B.对于连续型特征列, 我们只需要用DenseFeat函数来指明列名和维度即可。
2.处理完特征列之后, 我们把相应的数据与列进行对应,就得到了最后的数据。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值