zoukankan      html  css  js  c++  java
  • 天池新闻推荐比赛4:特征工程

    ​ 具体的代码见:http://datawhale.club/t/topic/201

    ​ 特征构造很重要的是要结合用户的历史点击文章信息。 往往用户的最后一次点击会和其最后几次点击有很大的关联。 所以我们就可以对于每个候选文章, 做出与最后几次点击相关的特征如下:

    1. 候选item与最后几次点击的相似性特征(embedding内积) — 这个直接关联用户历史行为
    2. 候选item与最后几次点击的相似性特征的统计特征 — 统计特征可以减少一些波动和异常
    3. 候选item与最后几次点击文章的字数差的特征 — 可以通过字数看用户偏好
    4. 候选item与最后几次点击的文章建立的时间差特征 — 时间差特征可以看出该用户对于文章的实时性的偏好
    5. 如果使用了youtube召回的话, 我们还可以制作用户与候选item的相似特征

    实现思路:

    1. 我们首先获得用户的最后一次点击操作和用户的历史点击
    2. 基于用户的历史行为制作特征, 这个会用到用户的历史点击表, 最后的召回列表, 文章的信息表和embedding向量
    3. 制作标签, 形成最后的监督学习数据集

    对训练数据做负采样

    通过召回我们将数据转换成三元组的形式(user1, item1, label)的形式,观察发现正负样本差距极度不平衡,我们可以先对负样本进行下采样,下采样的目的一方面缓解了正负样本比例的问题,另一方面也减小了我们做排序特征的压力,我们在做负采样的时候又有哪些东西是需要注意的呢?

    1. 只对负样本进行下采样(如果有比较好的正样本扩充的方法其实也是可以考虑的)
    2. 负采样之后,保证所有的用户和文章仍然出现在采样之后的数据中
    3. 下采样的比例可以根据实际情况人为的控制
    4. 做完负采样之后,更新此时新的用户召回文章列表,因为后续做特征的时候可能用到相对位置的信息。
  • 相关阅读:
    Java线程基础(二)
    Java线程基础(一)
    泛型集合List的详细用法
    Java中日期格式(String、Date、Calendar)的相互转换
    重写Java中包装类的方法
    Java的集合框架(第一次小结)
    node.js 调用mysql 数据库
    win10 系统解决mysql中文乱码问题
    vue-echarts图表
    文件上传的几个例子
  • 原文地址:https://www.cnblogs.com/zwrAI/p/14083372.html
Copyright © 2011-2022 走看看