原来有这个算法,让点评体验如此好!

作者:十方,公众号:炼丹笔记

十方周末出去找吃的,一定会打开点评,去选择评分高的餐厅。虽然十方很少写评价,但是十方在选择餐厅的时候,一定会选择评分高且评论基本都是正向的餐馆。评论这么多,如何在评论中挖掘关键信息和餐馆一起推荐呢?《Query-aware Tip Generation for Vertical Search》这篇论文就给出了一个很好的算法。

从上图中,我们可以看到,用户在点评里搜牛排,推荐的餐厅下面,有评论的精华。我们还发现,浓缩的评论,不仅简明扼要的突出了餐厅的优势,也和query强相关。要能做成这种效果,当然要想起无处不在的它:Attention!论文提到,每个餐厅评论的提炼,会帮助到用户做决策,而且和用户搜索内容也较为相关,而目前已有算法提炼评论的时候忽视了用户的query。

这篇论文本质上是从评论中提炼出和query相关的小贴士,属于文本生成。该文使用了transformer和RNN作为encoder和decoder,从评论中提取和query相关的内容。

问题定义:有个用户评论序列 R = (r1, r2, ..., rN),N个词,还有个小贴士序列,长度为M,T=(t1, t2, ..., tM),最后还有用户的query序列 Q = (q1, q2, ..., qK),用Q和R生成T。

又到了回顾Transformer的时候(是不是有点看腻了):

虽然transformer的公式一直长这样,可是用起来可是百花齐放。该文用这个transformer做了3个组件。

  • 考虑评论的Query编码器:用户的query就是他需要的信息的精炼表达,而评论包含了很多细节信息表达了用户的兴趣。因此可以用transformer的self-atteion结构,挖掘query和评论之间的关系。我们知道正常transformer的Q,K,V都是同一份序列向量,只不过在进attention前做了线性变换,这篇论文做了个很小的改动。假若query的embeding是Emb(Q),评论的embedding是Emb(R),H = MultiHead(Emb(R), Emb(Q), Emb(Q)),用评论和query的attention对query进行聚合,最终输出Hq (N * d)。
  • 考虑Query的评论编码器:这里用另一个transformer,Q,K,V都是Emb(R),会输出Hr(N*d)。这里我们知道Hq参考了评论编码了用户的query,Hr则直接编码了用户的评论,我们通过concat这两个embeding,过一个mlp,就可以把Hr和Hq编码成Henc。Hemc = [Hq;Hr]W。Henc同样会输入到第三个transformer去编码,挖掘更多信息,最后生成Hr'。
  • 考虑Query的小贴士解码器:用Hq和Hr' concat后做线性变换成最终的embeding,Hdec = [Hq,Hr']W,作为decoder的输入。

整个基于transformer的模型框架图如下:

说完了transformer,再来说基于RNN的另一种方法先看框架图:

Query编码器:用双向LSTM,最终取最后一个向量,作为query的表达,hq( 2d),不赘述。

考虑Query的评论编码器:同样是Bi-LSTM,最终生成hr(N * 2d),然后用一个selective gate,通过hq去提取hr中有效的信息。

考虑Query的小贴士decoder:同样是用LSTM,生成了st序列。为了使得生成的小贴士和query相关,所以引入query的编码hq,在t步的时候,用下式通过attention方式生成最终emb:

最后训练的时候,学习的是log loss:

先看下文本生成的效果:

tip确实和餐厅,评论,query都很相关。

比较各个模型,transformer的的效果都要好。

更多干货,请关注微信公众:炼丹笔记

搜索推荐炼丹笔记:评论是怎么影响推荐的?相关推荐

  1. 搜索推荐炼丹笔记:CVR预估中的延迟反馈问题

    CVR预估中的延迟反馈问题 一元@炼丹笔记 问题描述 在很多推荐搜索的建模中,我们经常会使用D+1天的数据作为label,从1~D天的数据中的进行特征抽取等工作,和我们时间序列问题建模类似,但和很多其 ...

  2. 搜索推荐炼丹笔记:酒店搜索位置偏差的边际重要性

    Handling Position Bias For Unbiased Learning To Rank In Hotels Search(ArXiv2020) 作者:一毛,公众号:炼丹笔记 背景 对 ...

  3. 搜索推荐炼丹笔记:融合GNN、图谱、多模态的推荐

    作者:十方,公众号:炼丹笔记 说到推荐系统,就不得不面对数据稀疏和冷启动问题,怎么解决呢?美团这篇论文<Multi-Modal Knowledge Graphs for Recommender ...

  4. 搜索推荐炼丹笔记:Transformer在搜索推荐中的应用

    作者:九羽,公众号:炼丹笔记 BERT等Transformer模型在自然语言处理领域大放异彩之后,将Transformer应用在各个领域变成了一种潮流,包括之前文章中介绍的Image Transfor ...

  5. 搜索推荐炼丹笔记:单网络内部集成学习

    Intra-Ensemble in Neural Networks 作者:一元,公众号:炼丹笔记 背景 提高模型效果一直是机器学习(包括深度学习)中的关键问题.然而,独立神经网络在层数较多的情况下,往 ...

  6. 搜索推荐炼丹笔记:点击位置偏差的经验比较

    An Experimental Comparison of Click Position-Bias Models (WSDM08) 作者:一元,公众号:炼丹笔记 这是一篇经典的文章,引用800+,虽然 ...

  7. 搜索推荐炼丹笔记:位置偏差里的惊喜

    PAL: A Position-bias Aware Learning Framework for CTR Prediction in Live Recommender Systems (RecSys ...

  8. 推荐搜索炼丹笔记:双塔模型在Airbnb搜索排名中的应用

    作者:一元,公众号:炼丹笔记 Improving Deep Learning For Airbnb Search(KDD20) 本文是一篇偏实践的文章,不讲太多虚的,什么有效什么无效,您请细品! 将深 ...

  9. 推荐系统炼丹笔记:多模态推荐之用户评论篇

    作者:一元 公众号:炼丹笔记 目前非常多的推荐系统主要使用用户的一些基础反馈信息来作为最终的标签进行模型的训练,例如点击/购买等,但是却鲜有文章去进一步挖掘用户的其它反馈,例如用户对于该产品的评论,很 ...

最新文章

  1. 二分图的匹配问题以及求解算法
  2. eclipse 全局替换
  3. 因子(Number_Of_Factors)
  4. embed中 src属性动态更改。
  5. 软件自学成才到公司要学历吗_作为一名自学成才的移动开发人员,我在旅途中学到了什么
  6. visio对象放入word显示不全_办公人士必学visio技能 手把手教你使用visio绘制项目全景图!...
  7. java8 内存设置_Java 8内存分析
  8. 抓取网络源码python_使用Python进行网络抓取的新手指南
  9. 30岁软件测试转产品_补水抗皱紧致护肤产品盘点 护肤品排行榜前十名适合30-40岁...
  10. 数据结构(二):线性表的使用原则以及链表的应用-稀疏矩阵的三元组表示
  11. 能编写PHP语言吗_语言能力差口才不好,靠看书就能提高吗
  12. java .jpackage,任何人都知道jpackage到底做什么? - java
  13. 潍坊学院计算机奖学金公示,潍坊学院2018-2019学年国家奖学金答辩会顺利举行
  14. 【Records】部分功能模块介绍
  15. wamp+php+下载,wampserver 64位(php环境搭建安装包)下载_wampserver 64位(php环境搭建安装包)官方下载-太平洋下载中心...
  16. 普歌-Vue 封装防刷新考试倒计时组
  17. 20155314 2016-2017-2 《Java程序设计》第4周学习总结
  18. ActiveX控件属性的下拉列表
  19. 系统集成特一级资质标准
  20. (ง •_•)ง[Python3 OpenCV4]10.平滑图像

热门文章

  1. Docker基本命令与使用 —— Docker容器(一)
  2. react 技术栈项目轻量化方案调研
  3. C#与C++的几个不同之处知识点
  4. object-c 1
  5. PS网页设计教程——30个优秀的PS网页设计教程的中文翻译教程
  6. flash mini site Part 1 MUMA-新闻,演出系统
  7. 【原】网页程序学习Linux利器-----jsuix
  8. windows下的文本文件在linux下查看,中文显示乱码
  9. hspice2014安装教程
  10. MyEclipse 10(汉化版)安装教程