GithubHelp home page GithubHelp logo

tianchi-ogeek's Introduction

Ogeek

项目介绍

实时搜索场景下搜索结果的ctr预估。这是来自OPPO手机搜索排序优化的一个子场景,并做了相应的简化。给定用户输入前缀(用户输入,查询词前缀)以及文章标题、文章类型等数据,预测用户是否点击。文章标题和类型是在候选条目中。评价指标采用F1 Score。

赛题特征:prefix(用户输入,query前缀),query_prediction(根据当前前缀,预测的用户完整需求查询词,最多10条;预测的查询词可能是前缀本身,数字为统计概率),title(文章标题),tag(文章内容标签)

特征工程

0、预处理。对数据中的字母统一为小写。去除符号。去除停词后做分词备用。

1、转化率特征。包括输入前缀、文章标题、类型的点击次数,出现次数,转化率,以及转化率贝叶斯平滑特征。这个特征有可能存在冷启动的问题,我们采取平均值填充的办法。

2、编辑距离特征。计算前缀和文章标题的编辑距离,距离的比率,还可以计算前缀和候选条目编辑距离的最大值、最小值、平均值、加权值等。2个字符串之间编辑距离越小,说明内容越相似。

3、词向量特征。输入前缀和标题都是较短的词语,可以根据词向量计算得到前缀和文章标题的距离。同理还可以计算得到前缀和候选条目距离的最大值、最小值、平均值、加权值等。

4、最长公共子串相关的特征。这个和上面那个特征差不多,但是不大一样。其他

模型

采用XGB/LGB/GBDT+LR模型,模型融合比但模型有所提升 投票法和Stacking方法都试过,Stacking方法稍好

比赛总结

比较重要的还是一些转化率等统计特征,接下来是词向量特征和编辑距离等特征。训练模型大家使用的都差不多,主要在于构造出更加有效的特征。

没有提供用户/时间的信息,无法对用户建模,每个时间内的热点不一样。

还有大佬从拼音的角度构造特征,因为有些用户存在打错字的情况。 还有人使用TextCNN模型,DeepFFM模型。使用转化率特征容易过拟合,统计CTR特征时采用0.5的采样率。

参考资料

1、贝叶斯平滑产生这种问题的的原因是投放量太少,数据有偏,所以如果每个广告在开始投放前就有了默认的一个展示数和点击数,即分子分母都加上一个比较大的常数,这样计算起ctr来就不会有那么大的偏差。这种方法叫做ctr平滑

2、模型融合

3、词向量的训练

tianchi-ogeek's People

Stargazers

 avatar Syfy avatar Ray avatar Cmtnde avatar a494456818 avatar  avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.