在Play,我们将金融账户与应用程序联系起来,消除了我们的客户与金融机构建立个人连接的需要,并标准化了跨多个账户使用的数据。这意味着开发者可以专注于创造创新的产品和服务。
我们面临的最有趣的挑战之一是前面提到的数据标准化或标准化:我们如何简化数千种不同格式的数据,以便以数千种不同的方式使用,我们为什么要这样做?
“为什么”很简单:通过将交易数据的价值从单纯的财务活动记录转变为用户深入理解的基础,我们为客户提供了收集有意义的见解的能力。反过来,他们可以帮助用户做出更好的财务决策。
“如何”更为复杂:这是因为金融机构本身提供的数据杂乱无章,令人费解--而且远未规范化。看一看你上一次的银行对账单,你可能会考虑至少几笔交易。例如,以下面的交易为例,该交易通过三个独立的金融机构显示:
这是只有三家银行的单一商家。想象一下,数以千计的商家横跨数千家银行。我们怎么才能使这件事正常化呢?
在丰富交易描述时,位置解析和商家解析是我们面临的两个最重要和最有影响力的挑战。它们是机器学习中一个常见的研究主题-命名实体识别(NER)的示例,在NER中,我们寻求在非结构化文本中定位命名实体,并将它们分类到预定义的类别(在我们的情况下,位置和商家)。这里有一个例子:
虽然NER问题通常用机器学习方法来解决,但并不是每个实例都需要复杂的模型。例如,上面这样的交易描述会立即发出麦当劳在纽约进行交易的信号。这意味着我们可以跳过计算密集型模型,直接返回结果。为此,我们构建了一种轻型模糊匹配算法,直接从交易描述中提取位置和商家信息。
不幸的是,并不是所有的位置字符串都以上面的整洁格式出现,而且总会有我们以前没有见过的新商家。这里有一个例子:
假设这是一家名为Sapps的新餐厅,刚刚在新泽西州贝德明斯特开业。朴素的位置匹配器将无法确定新泽西州贝德明斯特代表一个位置,因为标记‘BEDMINSTER’与数字字符串连接,字符串‘US’也附加到‘NJ’。此外,由于Sapps是一项新业务,没有包括在我们的商家数据集中,我们无法将其识别为商家。
因此,Play开发了一种解决方案,使用语言模型和双向长期短期记忆来应对这些NER挑战。
统计语言模型是单词序列上的概率分布,其中该模型为给定序列中的每个单词或标记分配概率。更实际的是,它用相邻单词中包含的信息来编码单词的内部含义。有两大类语言模型方法:
掩码语言模型(MLM)方法,它使用句子中的所有标记来预测[掩码]标记。
通常,MLM方法更适合于自然语言理解任务(例如,命名实体识别、文本分类),而AR方法由于其顺序性,对于语言生成任务执行得更好。在MLM中使用[MASK]标记使我们能够使用除单词本身之外的所有周围单词对单词的含义进行建模(否则,模型将从其自己的嵌入中学习每个单词,而忽略上下文信息)。
Play使用类似于BERT(来自Transformers的双向编码器表示)的MLM模型来帮助解决位置和商家解析问题。BERT(Bert Paper)是最广为人知的高效掩蔽语言表示模型之一,旨在通过使用Transform Encoders对输入序列的上下文信息进行编码来预先训练自然语言的深层双向表示。
在我们更深入地研究语言模型之前,让我们先绕个小弯路,探索一下Transformer Encoders背后的思想,它是BERT模型的一个重要组件。
Transformer架构是在“注意就是您所需要的一切”一文中提出的,本质上是一个结合了注意机制的Sequence-to-Sequence(Seq2Seq)编码器。
Seq2Seq编码器接收一个项目序列(在我们的例子中是单词),并输出另一个序列,在该序列中,每个项目都用周围项目的信息进行编码。注意机制在对特定项目的信息进行编码和理解的同时,帮助确定序列中的哪些其他项目是重要的。以下面这句话为例:杰克赢得了冠军,他为此感到非常自豪。注意机制将理解他指的是人杰克,因此将更重要的注意力分配给令牌杰克。
让我们使用交易描述“麦当劳纽约纽约”从较高的层面来说明该模型的行为。该模型将:
将交易描述标记化。[‘麦当劳’,‘纽约’]。
3.利用上下文信息通过一组Transform Encoding层对嵌入输入进行编码。
经过训练的MLM实际上是一个接受文本序列并发出另一个序列的Seq2Seq编码器。后者的每个元素用其周围元素的信息进行编码。
因为MLM是一种无监督的学习方法,所以我们在建立模型时不受标签数据量的限制。通过向它提供Play-Managed事务的海洋,我们最终得到了一个嵌入了事务描述含义的语言模型。
一旦编码序列从传销发送,它们就被馈送到下游解析器以识别目标实体(商家/位置)。对于下游的双向解析器,我们利用了双向LSTM(Long Short-Term Memory)模型,这是一种解决实体识别问题的最先进的方法。高级模型结构如下:
双向LSTM模型是单向LSTM的扩展,它本身就是RNN(递归神经网络)家族的成员。单向LSTM旨在识别序列数据(如时间序列和人类语言)中的模式。它通过将前面文本的上下文含义扩展到目标单词来实现这一点。双向LSTM更进一步,通过向前和向后理解上下文信息,而不仅仅是前者。
通过利用双向LSTM框架,我们有效地训练了两个独立的LSTM神经网络-一个采用文本序列的原始副本,另一个采用反向副本-并最终将结果聚合在一起。这样,序列中的每个令牌都封装了来自两个方向的信息。因此,可以在具有文本序列的整体视图的情况下做出最终预测。
我们的字符串匹配/正则表达式规则和我们的神经网络的这种组合已经为我们的位置和商家解析产品产生了令人振奋的结果。到今天为止,我们能够正确识别交易描述中95%的商家和位置信息(如果存在)。
展望未来,我们渴望探索其他改进,例如模型性能如何随不同的超参数集而变化,或者字符级CNN(卷积神经网络)(以捕获陌生单词的语义信息而闻名)与单词嵌入的组合如何产生更好的结果。
如果您想帮助我们找到这些问题和其他许多问题的答案,或者如果您有兴趣了解更多关于我们使用数据科学增强金融服务能力的方式,请直接给我发电子邮件至[email protected]或查看plaid.com/areers。