首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >业界 | 探索Siri背后的技术:将逆文本标准化(ITN)转化为标签问题

业界 | 探索Siri背后的技术:将逆文本标准化(ITN)转化为标签问题

作者头像
机器之心
发布2018-05-09 16:42:49
1.6K0
发布2018-05-09 16:42:49
举报
文章被收录于专栏:机器之心机器之心

选自苹果期刊

作者:Siri Team

机器之心编译

参与:Nurhachu Null、李泽南

作为第一种流行语音助手 Siri 的开发者,苹果在自然语言处理方面的研究有哪些心得?最近,苹果在其机器学习期刊上发表了一篇文章,详解了将逆文本化(ITN)转为标签问题的方法,这些技术已经成为 Siri 为人们提供便捷服务的基础。

Siri 使用标准的格式化方式来展示日期、时间、地址和金额等对象。这是由于在语音识别的核心组件的输出上应用了一个被称之为逆转文本标准化(ITN,Inverse Text Normalization)的过程。可以通过下面这个案例来理解 ITN 所起的重要作用,如果没有 ITN,Siri 会把「October 23, 2016」显示成「October twenty third twenty sixteen」。在本文的工作中,考虑到对相对简单、紧凑、能够快速训练和使用的统计模型的使用,我们证明 IINT 可以被阐述成一个做标签的问题。我们证明这种方法体现了一条通向数据驱动的 ITN 系统的实际路径。

简介

在大多数语音识别系统中,核心语音识别器会生成语音形式的标志序列,这个序列随后通过 ITN 过程被转换成书写形式。ITN 包括数字、日期和地址等对象。表 1 展示了输入为语音形式,输出为书写形式的例子。

表 1. 输入为语音形式,输出为书写形式的例子

我们的目标是为 ITN 构建一个数据驱动的系统。在思考如何描述这个问题以便于我们应用一个统计模型的时候,我们简单地考虑通过在空格处将书写形式的输出进行分割。如果我们当时那么做的话,某些特定位置的输出标志并不需要和那个位置的输入标志相对应。事实上,输出标志的数目并不总是等于输入标志的数目。乍一看,这个问题貌似是一个相当自由的序列到序列模型,就像那些经常被用到在机器翻译中的模型一样。

事实上,为这个任务训练一个序列到序列模型是可行的。但是这种模型是很复杂的。它们是数据饥饿的,训练和推断得到结果都需要付出高昂的计算代价。此外,这类模型中缺乏限制,会导致在应用的时候发生很糟糕的意外错误。(在 [1] 中为相关的任务训练序列到序列的模型时就有这种情况发生。)我们用这类模型进行的初步试验并没有得到有希望的结果。

在这篇论文中,我们展示了使用较少的表格和语法就能够将 ITN 建模成一个给语音形式的输入做标签的问题。

方法

我们从两个观察结果开始:

1. 在语音形式的标志和书写形式的字符串片段之间通常有着明显的对应关系。

2. 大多数情况下,输出的书写形式片段的顺序和对应的语音形式标志是一样的。

通过给出的这两个观察结果,我们把 ITN 描述为以下三个步骤:

1. 标签分配:给每一个语音形式的输入标志分配一个标签。标签规定了对语音形式标志字符执行的编辑,已得到与之对应的书写形式片段。标签亦能够标识了应用后续处理语法的区域的开始和结尾。

2. 标签应用:应用标签规定的编辑。结果将会是书写形式的字符串,也可能包含被后续处理标记过的区域。

3. 后续处理:给所有被标记进行后续处理的区域应用合适的后续处理语法。

下面的两张表给出了一个例子,其中的语音形式的标志序列具有分配好的标签、应用标签以及应用了后续处理语法的最终书写形式输出。为了简单起见,我们忽略了具有默认值的一些域。

表 2A.「「February 20, 2017」」对应的语音形式的标志序列的标签

表 2B.「20% of $205」对应的语音形式的标志序列的标签

标签

标签是一种包含以下域的数据结构

1. 重写:语音形式的标志字符串是否应该被重写,应该被如何重写。这个域的内置值包括大写化和小写化。默认值是保持语音形式标志字符串原封不动。

2. 前置:决定应该给语音形式标志字符串前置什么字符串。默认值是不做任何前置。

3. 追加:决定应该给语音形式标志字符串追加什么字符串。默认值是不做任何追加。

4. 空格:决定是否要在语音形式标志字符串之前插入一个空格。默认值是插入一个空格。

5. 后续处理·开始:决定该位置是否代表一个需要后续处理的区域的开始,如果是,应该使用哪一个后续处理语法。

6. 后续处理·结束:决定该位置是否代表一个需要后续处理的区域的结束,如果是,应该使用哪一个后续处理语法。

对于每一个域,每一个值都对应着一种字符串到字符串的转换。我们使用有限状态转换器(FST)来对每一个转换进行编码,FST 是具有输入和输出符号的有限状态自动机。给一个输入标志应用一个标签包括了给序列中的每一个域的值使用 FST。

如下面两张表所示,我们为重写(Rewrite)、前置(Prepend)、追加(Append)域生成了 FST。

表 3. 重写(rewrite)表摘录

表 4. 追加(append)表

后续处理

对于我们观察到的大多数 ITN 转换,仅使用标签分配和应用就足以生成正确的书写形式的输出。然而,一些少数情况需要额外的后续处理。首先,在金额表示中,我们使用一个后续处理语法来记录货币符号和大额金额。其次,我们使用一种后续处理语法来适当地格式化关系时间表达,例如「3:35,twenty five minutes to four」。最后,我们针对格式化语音形式标志序列中的罗马数字使用相应的后续处理语法。在上一个例子中,标签机制就足够了,但是写一个语言独立的语法来把数字转换成罗马数字会更加直接一些。表 5 给出了每一种情况下的例子。后续处理的语法都被编译成了 FST。

表 5. 使用后续处理语法的例子

标签推测

如果我们要训练一个模型去预测标签,我们需要一种能够从语音形式得到标签序列的方式,写成成对的形式。我我们通过基于 FST 的方法来做这件事。首先,我们要构建以下几种 FST:

1. E: 一个扩张的 FST。它使用语音形式的标志序列作为输入,生成允许把所有可能的标签作为每个标志的前置字符串的 FST。

2. A1, A2…AF: 一系列被使用的 FST,每个域对应一个 FST。这些 FST 将前置了标签的标志序列作为输入,然后为每一个标志在域 f 应用具体的选项。

3. R: 一个渲染 FST。在标签被应用之后,这个 FST 将具有前置标签的标志序列作为输入,然后去掉标签。输出就是书写形式的,也可能具有后续处理区域的标记。

4. P: 一个后续处理 FST。这个 FST 将书写形式的字符串作为输入,也有可能同时包含具有后续处区域的标记。输出是最终的书写形式。

我们对一个 FST 应用下面方程中的一系列处理。S 是从一个语音形式的输入中构造得到的。需要注意,Projin 是这样的一个处理过程:它将每一段输入标签复制到输出标签。Projout 则恰恰相反。W 是一个从书写形式的输出中构造得到的 FST。与语音形式/书写形式对相兼容的标签序列可以很容易地从标签中抽取得到。在我们的数据中的大部分情况中,只有一个单独的标签序列。在具有多个可共用的标签序列的情况中,我们通过使用一个从无歧义的案例中训练的到的标签二元模型来选择一个标签序列。

例子:基数

来看一下我们在基数词的例子中是如何将 ITN 转换成一个标签问题的。表 6 给出了重写表(rewrite table)中的一些相关例子。要注意的是,具有 PopD 后缀的选项中,D 是一位数字,代表的是将一个数量级转换成一个在合适的位置具有逗号的 0 序列。

表 6. 格式化基数词时的重写表(rewrite table)摘录

为了格式化基数,这些重写选项以没有空格的形式被结合起来。表 7 展示了这在非平凡的基数上是如何奏效的。

表 7. 基数词的语音形式、标签以及书写形式

这样设计重写选项的结果就是很多不同的数字都能够共享同一个标签序列。这在表 8 中有所描述。同样需要注意,表 8 末尾的标签序列与表 7 是匹配的。这种在很多数字之间共享标签序列的方法简化了建模。

表 8. 具有相同标签序列的两个基数的语音形式、标签和书写形式

另一个也支持这个架构的可选方法就是使用后续处理语法来格式化基数。这需要写一个完整的数字语法。这个方法的优势在于仅仅需要将原子语音形式的标志具体化。我们可以依靠标签预测模型来学习语法的复杂性。

建模和结果

使用这个方法将 ITN 转换成一个标签问题,我们使用一个双向 LSTM(bi-directional LSTM)[2][3] 作为标签预测模型。我们希望能够在实际具有实际可用数量的数据(以语音形式/书写形式对的形式)的场景中估计系统的性能。在手工转译数据的场景中,我们使用一个非常准确的基于规则的系统的输出来训练和评估系统,期望着结果会推广到手工转译的数据场景中。

图 1 给出了我们使用随机选择的 500K、1M、5M 的训练数据时系统的准确率。如果我们在 INT 发挥显著作用的情境中扩大数据量(包括日期、时间以及金额等),在 1M 的语料上训练的时候,准确率几乎会在所有的对象上超过 90%。

图 1: 使用 500K、1M、5M 的语料进行训练时模型的准确率

在看了这些例子之后,如果要从头开始开发一个 ITN 组件,我们认为这个方法代表了通向一个可以进行扩展部署的系统的实际路径。

在我们生产场景中,我们以相当准确的基于规则的系统作为开始,然后访问由实际语音形式数据构成的特大量数据。我们发现,通过使用基于规则的系统来生成书写形式的输出,仔细选择训练数据,以及执行一些手工的数据及矫正,我们能够利用这个方法建立比基于规则的系统更加准确的系统。这些新系统允许我们通过额外的训练数据实现进一步的系统提升,这比基于规则的东西需要更少的专业知识。此外,这些新系统能够捕捉存在于长的、多种类型的语境中的转译。这种转译对基于规则的系统而言是难以实现的。

你可以在文献 [4] 中找到关于我们用来做标签预测的方法的更加全面的描述,还有更多的性能评价。

参考文献

[1] R.Sproat and N. Jaitly, RNN Approaches to Text Normalization: A Challenge,arXiv preprint arXiv:1611.00068, 2016. https://arxiv.org/abs/1611.00068

[2] M. Schuster and K. K. Paliwal, Bidirectional recurrent neural networks, IEEE Transactions on Signal Processing, vol. 45, no. 11, pp. 2673–2681, 1997.

[3] S. Hochreiter and J. Schmidhuber, Long Short-Term Memory, Neural Computation, vol. 9, no. 8, pp. 1735–1780, 1997.

[4] E. Pusateri, B.R. Ambati, E. Brooks, O. Platek, D. McAllaster, V. Nagesha, A Mostly Data-driven Approach to Inverse Text Normalization, Interspeech, 2017.

原文链接:https://machinelearning.apple.com/2017/08/02/inverse-text-normal.html

本文为机器之心编译,转载请联系本公众号获得授权。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-08-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 机器之心 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
语音识别
腾讯云语音识别(Automatic Speech Recognition,ASR)是将语音转化成文字的PaaS产品,为企业提供精准而极具性价比的识别服务。被微信、王者荣耀、腾讯视频等大量业务使用,适用于录音质检、会议实时转写、语音输入法等多个场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档