新闻推荐-特征工程--直播内容

新闻推荐的流程:

--> 海量文章(召回,通过召回策略得到了每个用户的候选商品,简单通过相似性等,从几十万得到几百篇几十篇等,规则简单,注重快,降低文章规模) 
--> 候选文章(排序,聚焦在准确,将候选物品的特征,及用户本身的属性、兴趣特征等拼接到一起)
--> 排序列表(规则)
--> 排序列表

在这里插入图片描述

1、为什么要特征工程

  • 数据和特征决定了机器学习的上限,而模型和算法只能逼近这个上限而已。
  • 模型越好,模型灵活性越强、模型越简单、模型效果越出色。
    在这里插入图片描述

2、从召回结果到监督数据集

新闻推荐的数据没有label,不像结构化数据,所以先构造监督数据集

2.1 召回之后得到了什么?

召回列表和Embedding
在这里插入图片描述
通过召回能得到最终推荐结果,但是不准,利用信息有限。
在这里插入图片描述

2.2 如何定义排序模型的label?

根据用户的点击日志,如何召回的文章和用户训练集的文章对上了,就标记为1,反正置为0,基于这样思路确定label
在这里插入图片描述

2.3 数据集的划分和负采样

需要提前划分为训练集、验证集(调整超参数)和测试集,减少排序特征制作的压力。
本代码:线下数据:划分为训练集、验证集和测试集
线上数据:训练集和测试集??
线下采样数据训练,线上用全量数据
划分后基于用户的历史特征进行不用担心特征不一致的问题,
在这里插入图片描述
做好监督数据集之后,发现样本极度不平衡,需要对负样本下采样。
在这里插入图片描述
代码解释:
先划分数据集再打标签,再进行负采样
测试数据不需要负采样,但是对测试数据也打标签,便于后续的拼接。
在这里插入图片描述

3、如何进行特征工程

得到的推荐数据集再进行特征工程:

3.1 特征工程的一般思路

首先构造特征:以目标为导向,进行特征构造,
例如:根据用户的特征来进行构造,比如时间戳和文章字数等,可以通过数据分析来得到启发。
在这里插入图片描述
本项目用到如下几个方面构造特征:

3.2 基于用户的历史行为构造特征

eg,判断召回文章的最后几篇(新闻时效性)和最后一次点击文章的相似度(内容、字数、创建时间)
在这里插入图片描述

  • 内容相似可以通过多角度连接
    在这里插入图片描述
  • word2vec embedding
    通过一个单词的上下文往往可以得到某个单词的大体意思,偏向于序列关系的相似性。
    在这里插入图片描述
    两种方式实现:skip-gram和CBOW
    内积运算可以表示相似性
    要训练词向量??
3.3 基于用户画像

从日志数据中得到用户自身的特点(通过数据分析进行启发)
在这里插入图片描述

  • 活跃度:点击次数越多、频率越短的用户可以看成活跃用户,配合时间维度来看
  • 主题爱好:根据历史文章取出主题最多的文章

3.4 文章画像

根据article文件直接拼过去直接就是文章特征
在这里插入图片描述

  • 文章热度:被点击次数月多、频率越高越热门
    最后没用,因为只有出现在日志里出现的才可以计算热度,因此拼上去后导致很多空集

3.5 最终的数据集

结构化数据集
在这里插入图片描述

4、排序简述

  • 机器学习模型:lgb LGBM classifier
  • 排序模型:lgb LGBMRanker(比较新)
  • 深度学习模型DIN
  • 模型融合思路:简单加和和Stacking
    在这里插入图片描述
4.1 LGBRanker模型

三种方法:PointWise,PairWise,ListWise

  • PointWise:分类模型–概率–排序列表
  • (更符合本次竞赛的目标)PairWise:排序模型–预测item的想对顺序–排序列表
4.2 LGBRanker模型 — 细节

把排序转化为二分类问题
先分解user_ID进行分组,然后进行排序模型,之后获得每项的score,再利用sigmoid计算概率
在这里插入图片描述
代码中进行了优化
ndcg是排序模型常用的指标,既考虑了item之间的相似程度也考虑了和用户位置的关系。

4.3 DIN模型

  • ponitWise的方式
  • 通过注意力机制原理
  • 有时候候选文章和用户历史点击文章可能没很大关系
    在这里插入图片描述
  • 代码中用到DIN包,需要把数据调整要求形式
  • 需要进行特征归一化问题,因为量纲不一样

5 、模型融合

  • 简单加权
  • Stacking(不太懂)
    五折交叉验证
    在这里插入图片描述

6、总结

在这里插入图片描述

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值