IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 【读论文】一种通用句子编码:Universal Sentence Encoder -> 正文阅读

[人工智能]【读论文】一种通用句子编码:Universal Sentence Encoder


通用句子编码器是google在2018年提出的将句子编码成嵌入向量的模型,这些嵌入向量专门针对将学习转移到其他NLP任务。文章中指出,对于许多NLP任务,可用的训练数据有限。这对数据饥渴的深度学习方法提出了挑战。由于注释有监督的训练数据的成本很高,对于大多数研究或行业NLP任务,通常无法使用非常大的训练集。许多模型通过使用隐式执行有限的迁移学习来解决如word2vec,Glove等,都有不错的效果。作者发现,他们的句子嵌入的迁移学习往往优于单词级迁移。通过句子嵌入的迁移学习,他们观察到,在迁移任务中,在最少的有监督训练数据下,表现出奇地好。

原论文:Universal Sentence Encoder
代码实现:https://tfhub.dev/google/universal-sentence-encoder/1
作者还给出了简单的调用方式:
在这里插入图片描述
下图为作者列出的使用USE方法后的句子相似度的热力图:
在这里插入图片描述
从主观来看的话,效果还是不错的。

目标

一种简单的句子嵌入方法是将句子中单词的词嵌入向量平均,将平均值作为整个句子的表示,但这种方法有缺陷。其中一个典型的缺陷就是没有考虑词与词的顺序,如“i eat pigs” 和 “pigs eat i”明显是不同的含义,但在使用简单平均的时候它们的句向量是完全一样的,即相似度是100%。第二个缺陷就是信息损失,如“i eat pigs”与“i”的句向量在使用简单平均时的相似度会很高,然而事实并不是这样。
通用句子编码的想法是设计一个编码器,使我们可以使用他的嵌入解决多个NLP任务,这将是一个通用的句子嵌入。

模型结构

文章介绍了两种编码模型的模型体系结构。文章的两个编码器有不同的设计目标,一种基于transformer架构的方法以更高的模型复杂度和资源消耗为代价来实现高精度,另一个目标是有效的推理DAN,但精确度略有降低。下面来依次介绍这两种模型encoder结构。
Transformer
transformer使用注意力来计算句子中单词的上下文感知表示,同时考虑所有其他单词的顺序和身份。作者将句子作为输入,使用transformer将每个词(中文应该是字)表示成512维的词嵌入,该结构由6层堆叠的transformer层组成,每一层的结构如下:
在这里插入图片描述

整体结构如下:
在这里插入图片描述
这里作者将6层transformer层输出的词嵌入平均的时候,为了句子之间的差异就不会受到句子长度效应的影响,将所有词嵌入加起来除以句子长度的平方根(length normalization)。
作者在文章中验证了基于变压器的编码器实现了最佳的整体传输任务性能。但是这是以计算时间和内存使用量随句子长度急剧增加为代价的。以下作者则提出了另一种模型结构,它在精度上不如transformer,但在资源消耗上少于transformer,该结构就是深度平均网络(DAN)。
DAN
该编码器基于lyyer等人提出的深度平均网络DAN,有兴趣的可以看一下这篇文章https://aclanthology.org/P15-1162.pdf
它将一个单词的嵌入与bi-grams(即大小为2的滑动窗口的词)平均在一起,这时就已经是单个向量了,然后通过4层DNN,得到512维的嵌入输出,单词和bi-grams的嵌入是在训练中学习得到的。
这是DAN模型结构:
在这里插入图片描述
第二种通用句子编码结构如下:
在这里插入图片描述

训练

作者使用斯坦福自然语言推理(SNLI)语料库来训练上述两个模型参数,并将模型转移在一些其他任务上评估效果。下图为部分任务:
在这里插入图片描述
在迁移学习上,对于下游任务为分类任务,可以将transformer和DAN句子编码器的输出被提供给特定于任务的DNN,输出类别即可;对于语义相似性任务,可以直接评估两个编码器产生的句子嵌入的相似性。
文章中将余弦距离转换为角距离(因为作者发现使用基于角度距离的相似度平均比原始余弦相似度表现更好),公式如下:
在这里插入图片描述
接下来,作者加入word2vec词嵌入,结合以上transformer和DAN结构,另外还有CNN,将不同模型组合起来在不同的上述任务上对比,如下图:
在这里插入图片描述
其中USE_D表示使用的是DAN的编码器,USE_T表示使用的是transformer的编码器,w2v w.e.表示使用word2vec作为词嵌入(该模型在新闻数据语料库上进行训练),lrn w.e.表示使用随机初始化的词嵌入,让模型自己在某一任务的特定数据集上去学习。
关于模型的更多细节可以去看源代码。


参考文章:
[1]https://mp.weixin.qq.com/s/T89ZJmscvhfnEZwo6CrGug
[2]https://arxiv.org/pdf/1803.11175.pdf


NLP学习笔记2022/03/30

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-04-01 00:02:58  更:2022-04-01 00:04:51 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 -2025/1/9 2:05:09-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码