关系抽取综述

什么是关系抽取?

信息抽取旨在从大规模非结构或半结构的自然语言文本中抽取结构化信息。关系抽取是其中的重要子任务之一,主要目的是从文本中识别实体并抽取实体之间的语义关系。比如:

International Business Machines Corporation (IBM or the company) was incorporated in the State of New York on June 16, 1911.

我们可以从上面这段文本中抽取出如下三元组(triples)关系:

  • Founding-year (IBM, 1911)
  • Founding-location (IBM, New York)

为什么要进行关系抽取?

  • 创建新的结构化知识库(knowledge base)并且增强现有知识库
  • 构建垂直领域知识图谱:医疗,化工,农业,教育等
  • 支持上层应用:问答,搜索,推理等。比如,对于这样一个提问:

    The granddaughter of which actor starred in the movie “E.T.”?

    可以用如下的关系推理表[……]

    继续阅读

变分自动编码器(VAE)

这学期张连文教授教的CSIT6000G Machine Learning课上讲到了VAE和GAN,学完之后感觉两个概念被解释的很好,所以有必要记录一下。

VAE(Variational Autoencoder)中文译为变分自动编码器,它是一种深度生成模型(Deep Generative Model),是一种无监督学习算法。它的主要作用是能够学习一个函数(模型),使得输出数据的分布尽可能地逼近原始数据分布。

问题描述

假设我们有一堆无标签数据集 \(X = \{x^{(i)}\}_{i=1}^{N}\), 每一个数据\(x^{(i)}\)是一个表示图像的vector,而vector中的每一个元素则表示图像的像素;那么我们的任务就是:

希望从原始数据集\(X\)中学习一个分布\(p(x)\),使得它的分布和原始数据分布接近,也就是说我们可以生成和原始图像相似但不同的图片。

生成模型(Generative Model)

那么这个问题如何求解呢?
我们假设:

  • 每一个图片都存在一个与之对应的标签向量\(z\);什么叫标签向量?简单点说可以用\(z\)来代表\(x\),但是\(z\)[……]

    继续阅读

Speech and Language Processing-笔记(一)

最近这大半个月的时间一直在看一本书《Speech and Language Processing (3rd ed. draft)》(完整版),不得不说这真是一本极好的书,很多概念解释的非常清楚,而且还难能可贵地引入了一些非常前沿的内容(介绍了2017年NLP领域一些比较好的学术成果),看完之后肯定能对NLP在整体上有个很好的感知。因为我没读过其他的NLP书籍,所以不好断言这是最好的入门读物,但我个人强烈推荐此书。然后再说说看完这本书的感受吧。全英文的书看起来有点小累和压抑,主要原因是里面有几个章节涉及到一些语言学(英文语法)的知识让人很头大,的确需要较大的耐心,比较沉闷和乏味吧。虽然看完之后对整个NLP领域有一个清晰的认识,但是也正因如此才感到很失落和失望。那些听起来高大上的NLP技术真的没有想得那么牛逼,比如命名实体识别(Named Entity Recoginition),人机对话(Siri,cotana,Amazon Alex),问答系统(IBM Watson),在明白了其背后的原理后才发现:这些看起来很智能的应用实际上跟智能毫无关系。底层的算法还是太过愚蠢了,本质上还是基于统计[……]

继续阅读

隐马尔可夫模型(Hidden Markov Model)

我们先从马尔科夫模型说起。

Markov Model

马尔科夫模型(The Markov chain, sometimes called the observed Markov model)本质上是一个加权的有限状态机(weighted finite automaton),它描述了不同状态之间的转换关系以及转换概率(这里的权重就是状态转移概率)。示意图如下:
imgur
一个严格定义的马尔科夫模型由以下几个部分组成:

$$
\begin{align*}
& Q = q_1,q_2,…,q_N \\
& A = a_{01},a_{02},…,a_{nn} \\
& q_0, q_F
\end{align*}
$$

其中,

  • \(Q\)是大小为\(N\)的状态集合;
  • \(A\)是状态转移矩阵(transition probability matrix),矩阵内的元素\(a_{ij}\)表示的是从状态\(i\)转移到状态\(j\)的概率,他们之间满足:对于任意\(i\)都有\(\sum_{j=1}^{n}a_{ij} = 1\),也就是所有从状态\(i\)[……]

    继续阅读

GloVe详解

引言

前几天的一篇文章自然语言处理入门里提到了一个词嵌入工具GloVe,今天我们花点时间介绍下它的工作原理。不管是英文还是中文,网上关于GloVe的介绍并不多,所以本文的内容主要来自于Stanford NLP Group的Jeffrey Pennington, Richard Socher, Christopher D. Manning在2014年的Empirical Methods in Natural Language Processing (EMNLP)上发表的一篇论文:GloVe: Global Vectors for Word Representation。相对而言这篇论文还是很容易读懂的,下面我们进入正题。

什么是GloVe?

正如论文的标题而言,GloVe的全称叫Global Vectors for Word Representation,它是一个基于全局词频统计(count-based & overall statistics)的词表征(word representation)工具,它可以把一个单词表达成一个由实数组成的向量,这些向量捕捉到了单词之间一些语义特性[……]

继续阅读