【微软新闻推荐赛Baseline论文笔记】IJCAI2019-NAML

前言:——(看模型直接下滑)

     微软在最近ACL2020中 发布了一个大规模的英文新闻推荐数据集 MIND,并同时举办了MIND News Recommendation Competition(比赛地址:https://msnews.github.io/competition.html),比赛质量特别高,加上微软的加持,作为数据竞赛爱好者的巴斯君怎么能错过呢。

      仔细的看了微软MIND论文,发现论文里还给出了不同Baseline模型的效果,新闻推荐场景下可以看到传统电商领域较为流行的模型完全处在了下风(想用传统WIDE&DEEP/DEEPFM/DSSM等深度学习模型的小伙伴可以不用浪费时间去炼丹啦)。而最下面4个表现较好的模型竟然完全木有听过!~~~(+。+前浪感到被拍在了沙滩上)。搜了下发现原来这几个方案都是微软不久前发表的关于新闻推荐领域的最新Model方案。看来想在巨硬(Microsoft)比赛上搭个够打的Baseline不好好啃下这几篇文章是不行的了。  

  本着抛砖引玉的出发点,今天分享其中一个模型NAML的阅读笔记(https://www.ijcai.org/Proceedings/2019/0536.pdf),如有不对的地方还望各位看官老爷积极指出。

 

 

概览

新闻个性化推荐是在线推荐领域非常重要的技术之一,一个好的新闻推荐系统可以很好提高用户的使用体验。目前主流的新闻推荐方案主要是通过单一的新闻信息视角进行表征学习的(例如仅通过标题提取新闻的Embedding特征)。本文提出了一种多视角学习的方案,通过融合多角度的新闻信息(标题,类别,内容),结合用户侧/新闻侧的数据特征来实现的深度学习模型。模型主要包括了两大部分,一部分是新闻的Encoder,另一部分是用户的Encoder,最后通过新闻侧的Encoding 和用户侧的Encoding,最后通过一个Dot production实现点击率的预测。通过实验可以看到本方案要远超之前主流的深度学习推荐模型(数据源自Micsoft News)。

 

                                                                          图1.MSN测试数据效果对比分析

模型解析:

 

         模型主要有三个部分组成,新闻编码器(News Encoder)、用户编码器(User Encoder)以及点击预测(Click Predictor)。接下来我会自顶向下用通俗的语言去逐一解析模型每个部分。

 

                                                                                    图2.模型整体框架

 

       先说点击预测模块这一部分是整个模型最朴实无华的部分,但是简单简单的一个点积运算背后蕴含了Sequence Behavior Model背后的最为关键的Insight之一——语义空间一致性问题。说到这您可能就心里开始发毛了,这人说个点积运算咋扯到什么语义什么空间什么一致性里去了,瞎整玄乎?~别急,且听我慢慢道来,当你理解了我所说的这个奇奇怪怪的东西你一定会有很大的收获的。

       简单来说就是当我有两个向量要进行运算(不仅仅是点积、加减乘除都算)的时候,这个两个向量是不是在描述同一个问题:

       举个不恰当的例子田忌和来自遥远星系巴斯光年进行赛🐎,田忌的三屁马,分别是小马农(速1km/h),中马工(速3km/h),和大马佬(速5km/h)。巴斯光年的三个码分别是小码农(重1kg),中码工(重3kg),和大码佬(重5kg)。这下裁判犯了难,因为来外星的巴斯光年中文不太好,没有明白比赛中的🐎是啥,便带了三只砝码来参加比赛。好了,到这我想您也应该明白啥叫语义空间的不一致了。码和马是不能放在一起进行运算的,同样的在论文我们新闻侧的Encoding和用户侧必须是指的是同一种🐎才能进行基本的点积运算。

 

                                                                    图3 巴斯光年“飞向宇宙,浩瀚无垠!”

 

       如果您已经明白了这里语义空间一致性问题,那么我相信你也对下面的介绍对您来说也就比较好理解了,因为用户侧/新闻侧的模型都是围绕这一基本的Insight进行设计的。

      从结构我们可以看到User Encoder就是将用户浏览的历史纪录输入到News Encoder中进行编码然后通过一个Qurey 向量(其本质思想就是Attention,篇幅有限此处不做展开,如果您对细节感兴趣欢迎给我留言!​)对不同的新闻进行加权处理得到的User Encoding,其本质其实就是用不同的News Encoding进行加权来表达User Encoding。以保证User Encoding 和 News Encoding 的语义空间具有一致性。

        最后是News Encoder,分为三个部分Category, Title 和 Body;Category部分直接将主类目和二级目的特征(如:Entertainment, Gaming)作为输入,首先通过Embedding层获取预训练的词向量,然后通过一个Dense,得到Category(主类+二级类)的向量表示。Title和Body部分输入的即是新闻标题/新闻内容作为输入,通过Embedding 层获得词级别的向量特征,CNN层对Word的向量进行一次卷积特征提取,然后通过一个Query向量将词级特征加权到Doc级表示。最后还是一个Query向量将Category, Title, Body三个部分多视角的特征进行融合得到最后News的向量表示。

 

总结

        模型整体结构和之前Youtube net的结构非常相似,不同的是YouTube net中对不同Item记录使用的是直接平均求和,而这里采用的Query向量。可以看到在后Bert时代,不同领域的模型身上都从Bert身上吸取不一样的Insight。(Bert 🐂🍺)

 

       最后,我是BuzzLightYear,这是我的第一篇Paper笔记,如果您觉得文章对你还有点帮助麻烦点个赞,感谢老铁,如果你对文章/算法/数据竞赛/跨行转算法还有没有机会/渣硕算法上岸还有没有机会/双非入坑还有没有机会,等相关话题感兴趣欢迎关注我的个人公众号:洞夭

       如需转载请注明文章来源谢谢。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值