引言:

随着人工智能的快速兴起,Google发布的深度学习框架TensorFlow在短短两年内,就成为了当前最流行的深度学习项目。

在图像处理、音频处理、自然语言处理和推荐系统等场景中,TensorFlow都有着丰富的应用。虽然开源没多久,但是TensorFlow正在悄然渗透到我们的工作生活当中。

研究背景:

某新闻企业通过接入极光智能推荐系统,在其APP端增加智能推荐模块,为其用户私人订制感兴趣的新闻。极光机器学习云能够快速、精准的提取每条新闻的主题,并对新闻进行主题分类,借助极光自有的用户标签,向用户实时的推荐个性化新闻。

通过TensorFlow深度学习框架,在自然语言处理方向,极光已经通过机器学习算法实现了文章标题、摘要和关键词的自动生成功能。

研究方案:

文本自动总结的模型一直都是深度学习中的研究热点。有一些诸如 TFIDF和TextRank之类常规算法,其基本原理是直接抽取文本中重要的句子。也有一些较为复杂的算法如重新生成新的句子,但效果不佳。目前常用的模型是seq2seq,它是基于Encoder-Decoder的一个结构,首先将原始文本中的句子encode成一个固定大小的向量,然后通过decoder部分一个字符一个字符生成目标句子。

TensorFlow,也就是Tensor和Flow,这就意味着Tensor和Flow是TensorFlow的基础要素。Tensor意味着数据,Flow意味着流动、计算和映射,这也体现出数据是有向的流动、计算和映射。TensorFlow的结构由会话(session),图(graph),节点(operation)和边(tensor)组成,它使用图(graph)来表示计算任务,图在被称之为会话(Session)的上下文(context)中执行,其状态是通过变量(Variable)来维护的,使用feed和fetch可以为任意的操作(arbitrary operation)赋值或者从其中获取数据。

这篇文章中我们将采用基于Tensorflow的Seq2seq+Attention模型,训练一个新闻标题自动生成模型。
加入Attention注意力分配机制,是为了使Decoder在生成新的目标句子时,可以得到前面Encoder编码阶段每个字符隐藏层的信息向量,提高生成目标序列的准确度。

  • 数据处理:

样本数据为该企业新闻客户端2016年11月份的新闻,超过10M的语料数据,包含新闻标题和新闻正文信息。由于在Encoder编码阶段处理的信息会直接影响到整个模型的效果,所以对新闻数据的预处理工作需要非常细致。对新闻中的特殊字符、日期、英文、数字以及链接都要进行替换处理。

文本预处理后,就是训练样本的准备工作。这里的Source序列,就是新闻的正文内容,待预测的Target目标序列是新闻标题。为了保证效果,正文部分不能过长,这里设定分词后的正文不超过100个词,不足用PAD字符补齐,设定标题不超过20个词。在生成训练样本的时候,定义了create_vocabulary()方法来创建词典,data_to_id()方法把训练样本(train_data.txt)转化为对应的词ID。

训练样本的数据格式如下:

  • 算法解析:

Seq2Seq是一个基于输入的sequence,预测一个未知sequence的模型。模型由Encoder编码阶段和Decoder解码阶段两部分构成。模型编码阶段Encoder的RNN每次会输入一个字符代表的向量,将输入序列编码成一个固定长度的向量;解码阶段的RNN会一个一个字符地解码,如预测为X。在训练阶段时会强制将上一步解码的输出作为下一步解码的输入,即X会作为下一步预测Y时的输入。

当编码阶段输入的序列过长时,解码阶段LSTM模型将无法针对最早的输入序列解码。Attention注意力分配机制,在解码阶段每一步解码时,都会有一个输入,对输入序列所有隐含层的信息进行加权求和,能够很好的解决这个问题。

将分词后的新闻文本数据拆分为训练样本和测试样本,共四个文件:train_data.txt,train_title.txt,test_data.txt,test_title.txt 。新闻正文内容和其对应的新闻标题需要分开存放在两个文件内,一行为一条新闻样本。

  • 实证效果:

运行脚本,训练好的模型将被保存下来,部分预测好的Text Summarizaion如下:

总结:

随着互联网的迅速发展,网络中的新闻资源呈指数级增长,通过深度学习自动生成的标题往往能很直观的体现新闻的主题内容,便于读者快速的浏览新闻,准确选择自己感兴趣的内容,节约时间成本,能够给读者带来很好的体验感。

智能推荐已经成为一种势不可挡的趋势,随着人工智能的发展,算法推荐必将成为内容领域的主流之一。极光即将推出一套完整的智能推荐引擎,模型引入极光用户标签,将基于Tensorflow的LSTM主题分类的个性化推荐和非个性化推荐相结合,不仅能很好的解决用户冷启动问题,而且可以满足企业的个性化需求和用户的实时智能推荐。

更多精彩内容,请关注极光微信公众号:lovejpush