人工智能时代前沿技术社区

首页 > 大数据 > 热点

NLP技术在推荐系统中的应用

推荐系统中的NLP问题、词向量技术和应用以及基于注意力机制的RNN技术和应用。

作者: | 2019-06-09 21:55:16

今天分享的主题主要包括三项:

推荐系统中的NLP问题

词向量技术和应用

基于注意力机制的RNN技术和应用

一、推荐系统中的NLP问题

1560090071183841.jpg

推荐系统的使用非常广泛,从有门户网站开始就可以应用,但是很多门户网站中猜你喜欢中推送的个性化,即所谓的千人千面,根据年龄、地区等维度的信息进行推荐;另外一个非常广泛的应用在搜索引擎;电商也是一个广泛使用的领域;到现在的APP时代,推荐系统越来越广泛,如头条信息流的推荐,在信息流中的广告也是推荐的问题。

huandengpian05.jpg

二、词向量技术和应用

首先跟大家介绍一下word embedding,词向量技术2003年已被提出,是为解决语言模型任务,通过前面几个词去预测后面几个词。

huandengpian06.jpg

2013年谷歌发布一篇论文,将Word2VCEword embedding)技术推向火热。

第一种方法是用周围的次预测中心的词;第二种是用中心的词去预测周围的词。但是,所有的周围的词都有限制,一般实际长度为5个词。

huandengpian07.jpg

谷歌发表的第二篇论文提到了加速训练的技巧。

huandengpian08.jpg

训练效果展示图

huandengpian09.jpg

huandengpian10.jpg

Word2VCE直接应用会遇到问题,词向量的训练以词的共线现为目标,跟用户的惦记不是直接相关。在2015年,雅虎在搜索广告上做了一个尝试,叫做Joint embedding。通过广告的文本这些二元组特征来预测广告的点击率。

huandengpian12.jpg

通过对比图,可以清晰地看到Joint embedding如何将词共现转化为点击率。

Joint embedding效果分析:

优点:joint含义是词向量的训练和点击率的训练是联合的。

问题:1、词向量建模没有考虑次序;2、词向量求相似度然后离散化做特征会损失信息;3、词向量特征没有和其他特征(如user属性、item属性等)共同训练。

三、基于注意力机制的RNN技术和应用

RNN循环神经网络,如何从一个词的序列里提取顺序信息,克服词向量无法捕捉序列信息的弱点。

huandengpian16.jpg

LSTM

huandengpian17.jpg

简单RNN问题:梯度消失导致只利用乐有限时间步的历史信息

LSTM:为了解决短期记忆问题,使用“控制门”

SEQ2SEQ ATTENTION机制

注意力机制举例:

在第一个时间步输入I,我们想要得到am,用向量去做一个点乘,然后跟H1H2H3点乘会得到一个标量,所有的标量作为一个权重的信息,为H1H2H3做一个加权平均,用加权平均的向量输入到I上,然后输入到am,这就是一个注意力机制。

可以看到,注意力机制就是通过不同步的引向量去做加权平均,加权平均的效果就是让它注意当前部该注意的序列的地方,让那些序列的地方权重更大,更好的帮助当前序列的预测。

在推荐中引入ATTENTION BASED RNN

也可以在推荐中引入ATTENTION BASED RNN,比如在广告的文本中去过第一个RNN,可以得到H1H2H3,再把搜索文字序列过第二个RNN,会得到h1h2

h3,我们认为第二个RNN里面的h3代表了对用户的整体认识和理解,带着这个整体认识和理解对广告的每一个文字序列,再用这个引向量去预测点击率,也就是说基于用户搜索词在广告文本序列中的注意力机制。

WIDE AND DEEP

它所要解决的是,我们的词向量训练都是单独训练,没有结合在广告的推荐或其他文章的推荐等,怎么利用这些特征,再把特征和推荐系统结合起来?

运用最广泛的就是逻辑回归模型。

谷歌有一篇这样的文章,应用在2006年谷歌APP

整个用户推荐系统的框架:

用户query进入到推荐系统之后,从数据库里面做一个召回,形成一个候选项。这些候选项会用模型做一个ranking,就是用模型去预测一下点击率然后按点击率去排序,然后再推荐前十个最有可能被点击的物品。用户点击与否会再次被记录下来,记录下来的日志再被模型去学习,然后在更新模型,这就是整个框架。

与深度模型结合

huandengpian21.jpg