为 WPS Office 构建人工智能驱动的写作助手

WPS Office是金山软件开发的一款生产力工具,在全球拥有超过1.5亿用户。该公司的人工智能(AI)部门使用意图识别和文本聚类等语义匹配算法从头开始构建了智能写作助手。该工具以网络应用程序和微信小程序的形式存在,帮助用户只需输入标题并选择最多五个关键字即可快速创建大纲、单个段落和整个文档。

写作助手的推荐引擎使用开源相似性搜索引擎 Milvus 来为其核心矢量处理模块提供支持。下面我们将探讨构建 WPS Offices 智能写作助手的过程,包括如何从非结构化数据中提取特征,以及 Milvus 在存储数据和为工具的推荐引擎提供支持方面所扮演的角色。

 

跳到:

为 WPS Office 构建人工智能驱动的写作助手
理解非结构化文本数据
使用TFIDF模型最大化特征提取
使用双向 LSTM-CNNs-CRF 深度学习模型提取特征
使用 Infersent 创建句子嵌入
使用 Milvus 存储和查询向量
人工智能并没有取代作家,而是帮助他们写作

理解非结构化文本数据

就像任何值得解决的现代问题一样,构建 WPS 写作助手也是从杂乱的数据开始的。更精确地说,必须从数千万个密集的文本文档中提取有意义的特征。要理解这个问题的复杂性,请考虑来自不同新闻媒体的两名记者如何报道同一主题。

虽然两者都会遵守控制句子结构的规则、原则和过程,但他们会做出不同的单词选择,创建不同长度的句子,并使用自己的文章结构来讲述相似(或可能不同)的故事。与具有固定维度的结构化数据集不同,文本正文本质上缺乏结构,因为控制它们的语法具有很强的可塑性。为了找到意义,必须从非结构化文档语料库中提取机器可读的特征。但首先,必须清理数据。

清理文本数据的方法有很多种,本文不会深入讨论其中的任何一种。尽管如此,这是抢先处理数据的重要步骤,并且可以包括删除标签、删除重音字符、扩展缩写、删除特殊字符、删除停用词等。可以在此处找到预处理和清理文本数据的方法的详细说明。

使用TFIDF模型最大化特征提取

为了开始理解非结构化文本数据,术语频率-逆文档频率 (TFIDF) 模型被应用于 WPS 写作助手所提取的语料库。该模型使用术语频率和逆文档频率这两个指标的组合,为文档中的每个单词赋予 TFIDF 值。术语频率 (TF) 表示文档中术语的原始计数除以文档中术语的总数,而逆文档频率 (IDF) 表示语料库中的文档数除以包含该术语的文档数。术语出现。

TF 和 IDF 的乘积提供了一个术语在文档中出现的频率乘以该单词在语料库中的独特程度的度量。最终,TFIDF 值是单词与文档集合中的文档的相关程度的度量。术语按照 TFIDF 值排序,在使用深度学习从语料库中提取特征时,可以赋予值较低的术语(即常用词)较小的权重。

使用双向 LSTM-CNNs-CRF 深度学习模型提取特征

使用双向长短期记忆 (BLSTM)、卷积神经网络 (CNN) 和条件随机场 (CRF) 的组合,可以从语料库中提取单词和字符级表示。用于构建WPS Office写作助手的BLSTM-CNNs-CRF模型工作原理如下:

CNN:字符嵌入用作 CNN 的输入,然后提取语义相关的单词结构(即前缀或后缀)并将其编码为字符级表示向量。
BLSTM:字符级向量与词嵌入向量连接,然后输入 BLSTM 网络。每个序列向前和向后呈现到两个单独的隐藏状态以捕获过去和未来的信息。
CRF: BLSTM 的输出向量被馈送到 CRF 层以联合解码最佳标签序列。
神经网络现在能够从非结构化文本中提取命名实体并对其进行分类。此过程称为命名实体识别 (NER),涉及对人名、机构、地理位置等类别进行定位和分类。这些实体在排序和调用数据方面发挥着重要作用。从这里可以从语料库中提取关键句子、段落和摘要。

使用 Infersent 创建句子嵌入

Infersent是 Facebook 设计的一种监督句子嵌入方法,可将完整句子嵌入到向量空间中,用于创建将输入 Milvus 数据库的向量。Infersent 使用斯坦福自然语言推理 (SNLI) 语料库进行训练,该语料库包含 57 万对由人类编写和标记的句子。有关 Infersent 如何工作的更多信息可以在此处找到。

使用 Milvus 存储和查询向量

Milvus是一个开源相似性搜索引擎,支持万亿字节规模的嵌入的添加、删除、更新和近实时搜索。为了提高查询性能,Milvus 允许为每个向量字段指定索引类型。WPS Office 智能助手使用 IVF_FLAT 索引,这是最基本的倒排文件 (IVF) 索引类型,其中“平面”表示矢量存储时不进行压缩或量化。聚类基于 IndexFlat2,它使用 L2 距离的精确搜索。

尽管 IVF_FLAT 具有 100% 的查询召回率,但其缺乏压缩导致查询速度相对较慢。Milvus 的分区功能用于根据预定义的规则将数据划分到物理存储的多个部分,使查询更快、更准确。当向量添加到 Milvus 时,标签会指定数据应添加到哪个分区。矢量数据的查询使用标签来指定查询应在哪个分区上执行。每个分区内的数据可以进一步细分为多个段,以进一步提高速度。

智能写作助手还使用 Kubernetes 集群,允许应用程序容器跨多机器和环境运行,以及 MySQL 进行元数据管理。

人工智能并没有取代作家,而是帮助他们写作

金山 WPS Office 写作助手依靠 Milvus 来管理和查询超过 200 万份文档的数据库。该系统高度灵活,能够对万亿规模的数据集进行近乎实时的搜索。查询平均在 0.2 秒内完成,这意味着仅使用标题或几个关键字几乎可以立即生成整个文档。尽管人工智能并没有取代专业作家,但当今存在的技术能够以新颖有趣的方式增强写作过程。未来是未知的,但至少作家可以期待更高效、更简单的“用笔写在纸上”的方法。