Transformers

融合自训练和自监督方法,让文本丝般顺滑!|EMNLP 2020

一个人想着一个人 提交于 2020-10-17 16:58:57
     原创作者:王少磊   文本顺滑(Disfluency Detection)的目的是删除自动语音识别(ASR)结果中的不顺滑的词,从而得到更自然和通顺的句子。   目前大部分在文本顺滑(Disfluency Detection)任务上的工作都严重依赖人工标注数据。   本文介绍一篇被EMNLP 2020录取的工作,在本工作中,作者首次尝试用无监督的方法来解决文本顺滑问题。   作者通过结合自训练(self-training)和自监督(self-supervised)两种方法,在不采用任何有标注训练数据的情况下,取得了跟目前最好的有监督方法接近的效果。   论文名称:   《Combining Self-Training and Self-Supervised Learningfor Unsupervised Disfluency Detection》      论文作者:王少磊,王重元,车万翔,刘挺   论文链接:http://ir.hit.edu.cn/~slwang/emnlp2020.pdf   以下是论文一作王少磊对本文的亲自解读。   1   任务简介及动机   自动语音识别(ASR)得到的文本中,往往含有大量的不流畅现象。这些不流畅现象会对后面的自然语言理解系统(如句法分析,机器翻译等)造成严重的干扰,因为这些系统往往是在比较流畅的文本上训练的。  

无限想象空间,用Python玩转3D人体姿态估计

别说谁变了你拦得住时间么 提交于 2020-10-17 07:53:24
前言 姿态估计,一直是近几年的 研究热点 。 它就是根据画面,捕捉人体的运动姿态,比如 2D 姿态估计: 再比如 3D 姿态估计: 看着好玩, 那这玩应有啥用呢 ? 自动驾驶 ,大家应该都不陌生,很多公司研究这个方向。 自动驾驶里,就用到了 人体行为识别 。 通过摄像头捕捉追踪人体的动作变化,根据肢体动作或变化角度判断人体动作行为,可用于无人车、机器人、视频监控等行为分析需求场景。 而这些的基础,就是人体的姿态估计。 再比如, 虚拟形象 。 通过 真人驱动 ,让虚拟形象具备类比真人的肢体动作,并支持与3D人脸特效、手势识别等功能结合应用,让虚拟形象更加灵活生动,可用于虚拟IP驱动、肢体驱动类游戏、远程授课或播报等场景。 姿态估计,无疑有着巨大的 应用价值 。 但今天,咱们说的这个算法,比上文提到的,还要酷炫一些! 它就是 FrankMocap。 FrankMocap FrankMocap 是港中文联合 Facebook AI 研究院提出的 3D 人体姿态和形状估计 算法 。 不仅仅是估计人体的运动姿态,甚至连 身体的形状 , 手部的动作 都可以一起计算出来。 算法很强大,能够从 单目视频 同时估计出 3D 人体和手部运动,在一块 GeForce RTX 2080 GPU 上能够达到 9.5 FPS。 缺点就是,速度有点慢,计算量较大,达到实时性有一定难度。 不过随着硬件的快速发展

BERT and RoBERTa 知识点整理

十年热恋 提交于 2020-10-15 09:16:38
往期文章链接目录 文章目录 往期文章链接目录 BERT Recap Overview BERT Specifics There are two steps to the BERT framework: pre-training and fine-tuning Input Output Representations Tasks results Ablation studies Effect of Pre-training Tasks Effect of Model Sizes Replication study of BERT pre training that includes the specific Modifications Training Procedure Analysis RoBERTA tests and results Results 往期文章链接目录 BERT Recap Overview Bert (Bidirectional Encoder Representations from Transformers) uses a “masked language model” to randomly mask some tokens from the input and predict the original vocabulary id of the

那些轻轻拍了拍Attention的后浪们

十年热恋 提交于 2020-10-13 06:20:28
参考paperswithcode,貌似已经加入Facebook。 Papers with Code - An Overview of Attention ​ paperswithcode.com Linearized Attention(核函数)( Transformers are RNNs: Fast Autoregressive Transformers with Linear Attention ) Transformer中的Attention机制 Scaled-Dot Attention ,形式为: 为了给计算复杂度降低到线性,使用核函数来简化Attention的计算过程,并且替换掉SoftMax。 我们可以将任何相似函数的广义Attention定义一般化: 为了保留Attention的相似特性,我们要求 恒成立。 我们可以给 各自加个激活函数 , 重写为如下所示 然后利用矩阵乘法的结合能进一步简化 当分子写成向量化的形式时,上面的方程更简单 请注意,特征映射是按行向量应用于矩阵Q和K的。 本文选择的是 。 Linear Attention最主要的想法是去掉标准Attention中的Softmax,就可以使得Attention的复杂度降低到 。 Multi-Head Linear Attention( Linformer: Self-Attention with

用Python实现坦克大战游戏 | 干货贴

 ̄綄美尐妖づ 提交于 2020-10-12 11:24:30
作者 | 李秋键 出品 | AI科技大本营(rgznai100) 《坦克大战》是1985年日本南梦宫Namco游戏公司在任天堂FC平台上,推出的一款多方位平面射击游戏。游戏以坦克战斗及保卫基地为主题,属于策略型联机类。同时也是FC平台上少有的内建关卡编辑器的几个游戏之一,玩家可自己创建独特的关卡,并通过获取一些道具使坦克和基地得到强化。而今天我们就将利用python还原以下坦克大战的制作。 实验前的准备 首先我们使用的Python版本是3.6.5所用到的模块如下: Pygame模块用来创建游戏整体框架、精灵等基本架构; OS模块用来加载本地文件(包括音乐,背景、图片等素材)。 精灵类程序 其中精灵类设置作为基本程序框架用来主函数的调用,其中包括子弹类程序、食物类、家类、砖墙树木等障碍物类、坦克类。具体程序布局如下: 其中子弹类程序,首先需要建立bullet.py程序,建立类包括子弹位置、方向、图片加载、子弹速度等基本信息。具体代码如下: '''子弹''' class Bullet(pygame.sprite.Sprite): def __init__(self, bullet_image_paths, screensize, direction, position, border_len, is_stronger=False, speed=8, **kwargs): pygame

持续更新 EMNLP2020 Summarization

99封情书 提交于 2020-10-10 12:53:15
Long Multi-Fact Correction in Abstractive Text Summarization . Yue Dong, Shuohang Wang, Zhe Gan, Yu Cheng, Jackie Chi Kit Cheung and Jingjing Liu. Unsupervised Reference-Free Summary Quality Evaluation via Contrastive Learning. Hanlu Wu, Tengfei Ma, Lingfei Wu, Tariro Manyumwa and Shouling Ji. Multi-document Summarization with Maximal Marginal Relevance-guided Reinforcement Learning. Yuning Mao, Yanru Qu, Yiqing Xie, Xiang Ren and Jiawei Han. MLSUM: The Multilingual Summarization Corpus. Thomas Scialom, Paul-Alexis Dray, Sylvain Lamprier, Benjamin Piwowarski and Jacopo Staiano. Stepwise

Dubbo 高危漏洞!原来都是反序列化惹得祸

巧了我就是萌 提交于 2020-10-03 18:06:39
前言 这周收到外部合作同事推送的一篇文章, 【漏洞通告】Apache Dubbo Provider默认反序列化远程代码执行漏洞(CVE-2020-1948)通告 。 按照文章披露的漏洞影响范围,可以说是当前所有的 Dubbo 的版本都有这个问题。 无独有偶,这周在 Github 自己的仓库上推送几行改动,不一会就收到 Github 安全提示,警告当前项目存在安全漏洞 CVE-2018-10237 。 可以看到这两个漏洞都是利用反序列化进行执行恶意代码,可能很多同学跟我当初一样,看到这个一脸懵逼。好端端的反序列化,怎么就能被恶意利用,用来执行的恶意代码? 这篇文章我们就来聊聊反序列化漏洞,了解一下黑客是如何利用这个漏洞进行攻击。 先赞后看,养成习惯!微信搜索『程序通事』,关注就完事了! 反序列化漏洞 在了解反序列化漏洞之前,首先我们学习一下两个基础知识。 Java 运行外部命令 Java 中有一个类 Runtime ,我们可以使用这个类执行执行一些外部命令。 下面例子中我们使用 Runtime 运行打开系统的计算器软件。 // 仅适用macos Runtime.getRuntime().exec("open -a Calculator "); 有了这个类,恶意代码就可以执行外部命令,比如执行一把 rm /* 。 序列化/反序列化 如果经常使用 Dubbo,Java

基于transformers库的bert情感分析数据处理

梦想的初衷 提交于 2020-10-02 04:04:30
数据类型:csv格式 ['content']: 文本评论 ['score']: 星级(1-5)5星为最好 处理方法: 将1-5星级改成三级, 1-2星为1级 'negative', 3星-2级'neutral', 4-5星为3级 'positive' 。 import torch from torch.utils.data import DataLoader, Dataset from transformers import BertModel, BertTokenizer from collections import defaultdict import seaborn as sns import matplotlib.pyplot as plt import pandas as pd from sklearn.model_selection import train_test_split import torch.nn as nn BATCH_SIZE = 16 MAX_LEN = 160 class_names = ['negative', 'neutral', 'positive'] device = torch.device('cuda' if torch.cuda.is_available() else 'cpu') tokenizer = BertTokenizer

###好好好####多模态中的BERT

百般思念 提交于 2020-10-01 22:33:42
image BERT自问世以来,几乎刷新了各种NLP的任务榜,基于BERT的变种也层出不穷,在很多任务里都可以看到其身影。大浪淘沙,沉者为金,回想第一次看到BERT的论文时,确实不曾想其也能对工业界产生极大的影响。 本文尝试梳理今年BERT在多模态任务(主要涉及视觉和文本模态)上的一些工作,尝试比较各工作的主要思路以及做法上的区别,因此不会过多的涉及细节。总的来看,众多工作的主体模型大同小异,均使用Transformer,从表1(引用自VL-BERT论文)可以对各工作之间的相似和不同之处有个整体的认识。 image 可以看到,各方案之间的差异基本在于模态融合方式、预训练任务、以及下游任务微调,下文也将主要从这几个维度展开介绍和对比(排名不分先后)。 VideoBert image VideoBert主体采用单Transformer同时对文本token和视频片段进行模态表示和融合。与BERT区别在于把原来的句子对是否匹配(是否为下一句),换成了句子视频是否匹配任务。同时对于视频片段帧进行随机的MASK,预测对应的特征向量,文中叫visual words(通过预训练的视觉模型抽取得来,如S3D,然后聚类得到相应特征向量的id),对应于BERT的masked语言模型。 CBT image 和VideoBert不同在于,视频输入和文本输入分成了两支。视频输入经过S3D网络得到视觉特征序列

新闻文本分类之旅 BERT

女生的网名这么多〃 提交于 2020-10-01 14:59:32
🎯代码全部放在 GitHub 预训练BERT以及相关代码下载地址: 链接: https://pan.baidu.com/s/1zd6wN7elGgp1NyuzYKpvGQ 提取码: tmp5 🍥我们知道BERT模型的输入有三部分: token embedding , segment embedding 以及 position embedding 。 词向量的后续处理 先生成Segment Embeddings 和 Position Embeddings, 再相加,即Input = Token Embeddings + Segment Embeddings + Position Embeddings BERT源码分析 transformers库 Self-Attention与Transformer 🍤模型创建 class BERTClass ( torch . nn . Module ) : def __init__ ( self ) : super ( BERTClass , self ) . __init__ ( ) self . config = BertConfig . from_pretrained ( '../emb/bert-mini/bert_config.json' , output_hidden_states = True ) self . l1 =