视频点击比赛总结2----Lstm+deepfm
原文链接https://www.turingtopia.com/competitionnew/disDetail?discussId=99c5925a9c834fc5bcee8943d6297342&cid=e4880352b6ef4f9f8f28e8f98498dbc4
1. LSTM模型
1.1 时间特征
- 训练集、测试集的曝光时间戳都提供了。这是一个穿越特征。曝光时间戳之间的gap(后一个ts减去当前ts)很能反映用户是否点击观看了。
- 对曝光时间戳gap挖掘的还不够深。那可否用LSTM自动挖掘序列特征呢?遂依据曝光时间戳gap开始构造时序数据集,每条特征为gap序列(当前记录的前后12个gap,见图2),并构建LSTM模型(见图3),线上分数为0.76+。
1.2 位置特征
- 下载官方app使用后发现(图4),app上显示的是有新闻标题或者图片的,曝光时间戳gap不能完全反应用户行为,有可能停留了一段时间看了会新闻标题或者图片。使用app发现点击了新闻后,pos是会变化的,所以结合pos特征能很好的反应用户行为。
- 把pos embedding(embedding长度为8)和gap进行拼接。
1.3 视频信息
- (猜想视频播放的长度与gap是相关的)newsid也是经过embedding的长度为8.
1.4 模型输入
- 输入是pos+gap+newsid组成的29长度(14+14+1)的序列,shape batchsize2917(8+1+8:pos,newsid的Embedding长度都为8,gap为1)
- 由于正负样本相差太大(图6),模型中加入了focal loss。线上分数上涨了0.001
focal loss :(gamma=2., alpha=.25)通过一系列调参,得到 α=0.25, γ=2(在他的模型上)的效果最好。注意在他的任务中,正样本是属于少数样本,也就是说,本来正样本难以“匹敌”负样本,但经过 (1−ŷ )γ 和 ŷγ 的“操控”后,也许形势还逆转了,还要对正样本降权。
Focal Loss理解: https://www.cnblogs.com/king-lps/p/9497836.html
Focal Loss 理解: https://www.cnblogs.com/callyblog/p/11207384.html - 模型引入了注意力机制
2. deepfm模型
- netmodel,device_vendor,device_version,app_version,deviceid,newsid,pos,这些特征都是sparse features,作为DeepFM的input。
- 相同特征名共享Embedding。
- LSTM的输出直接拼接DeepFm DNN模块的输入
- 最后把DeepFM的DNN logit输出和FM logit输出相加作为最终输出。