未登录词替换

2015
Addressing the rare word problem in neural machine translation

最小意义单元 - subword

2016
A character level decoder without explicit segmentation for neural machine translation.

2016
Character Based Neural Machine Translation

Achieving open vocabulary neural machine translation with hybrid word-character models

2016
Fully Character Level Neural Machine Translation without Explicit Segmentation

Zero-shot learning 指的是我们之前没有这个类别的训练样本。但是我们可以学习到一个映射X->Y。如果这个映射足够好的话,我们就可以处理没有看到的类了。 比如,我们在训练时没有看见过狮子的图像,但是我们可以用这个映射得到狮子的特征。一个好的狮子特征,可能就和猫,老虎等等比较接近,和汽车,飞机比较远离。

https://www.zhihu.com/question/50996014/answer/157230966

跟oov的关系?

【词向量】汇总

之前的word representation?

还有一种C&W模型,是将context和target-word同时放在网络的同一层。与NNLM的思想不太一样。还有GloVe模型,

汇总

  • one-hot representation
    • 容易受维数灾难的困扰
    • 不能很好地刻画词与词之间的相似性
  • distributed representation (分布式表示,也叫word embedding)

    • 基于矩阵的分布表示
    • 基于聚类的分布表示
    • 基于神经网络的分布表示

      • NNLM: softmax复杂度高
      • word2vec: 用CBOW和Skip-gram来简化NNLM
      • GloVe

        • Glove: Global vectors for word representation, 2014 EMNLP pdf
      • WordRank

      • ELMo
  • subword,解决oov问题
    • 传统方法见到oov的单词,会采用相同的embedding (UNK)
    • char的应用,有CNN over characters,有token embeddings
    • Enriching Word Vectors with Subword, Bojanowski et al.,
      2017 pdf
    • Word2Vec using Character n-grams, Wiseman et al. 2016
    • Charagram: Embedding words and sentences via character n-grams, Wieting et al., 2016
    • Joint Learning of Character and Word Embeddings
    • FastText
    • BPE
  • 多义
    • 每个单词学习多个embedding,learning separate vectors for each word sense
    • Efficient nonparametric estimation of multiple embeddings per word in vector space, Neelakantan et al., 2014
  • context-dependent
    • 为什么要context-depent
    • context2vec: Learning generic context embedding with bidirectional lstm, CoNLL 2016
  • deep: 不同的层表征不同level的信息
    • deep cnn/lstm
    • EMLo
  • attention
    • transformer也能用来学习embedding
  • 半监督
    • Semisupervised sequence learning, Dai and Le 2015
    • Improving sequence to sequence learning with unlabeled data, Ramachandran et al. 2017
  • 双向
    -

其他:
-

  • Learned in translation: Contextualized word vectors, McCann et al., 2017

  • Cluster-based character embeddings 对每个字的所有 occurrence 进行聚类,然后对每个类建一个 embedding

  • Position-based character embeddings 区分字在词中出现的位置,也就是用 char+pos 来表示字,idea 是通常一个字可能出现在词的开始、中间、尾部。如车道、人行道和道法、道经中的道就不是一个含义;

word2vec与语言模型

  • word2vec
    -

word distance

  • embedding distance
  • edit distance,编辑距离体现character级别的信息。

idea

  • enriching word vector with character information
    • 采用cnn
    • 采用rnn
    • 采用编辑距离 约束

主要方向

  • semantic-level:

    • HMM:
    • lstm: 前面context 重构后面
      • supervised lstm for embedding
    • bi-lstm:
    • word2vec: 前后context 重构中间。并强制遵循向量加减法。(有点类似RBM到autoencoder,挺好)
      • supervised word2vec
  • char-level:

    • 比如fatherland-father-land, beautiful-beauty, 北京电影学院-北影
  • context-based:

    • 不同上下文,具有不同的含义
  • 采用multichannel

    • 一个channel采用word2vec学习到的embedding
    • 一个channel采用charCNN学习到的embedding
    • 一个channel采用自变量(类似cnn_for_text_classification)

原理

见paper & zotero

idea

pretrained w2v

eval


https://bitbucket.org/song_xu/word2vec-evaluation/src

code

training

IO & service

实验结果

tensorflow word2vec结果

tensorflow language_model结果

  • 音素:单词的发音由音素构成。对英语,一种常用的音素集是卡内基梅隆大学的一套由39个音素构成的音素集,参见The CMU Pronouncing
    Dictionary。汉语一般直接用全部声母和韵母作为音素集,另外汉语识别还分有调无调
  • 状态:这里理解成比音素更细致的语音单位就行啦。通常把一个音素划分成3个状态。
  • 若干帧语音对应一个状态,每三个状态组合成一个音素,若干个音素组合成一个单词

语音识别是怎么工作的呢?实际上一点都不神秘,无非是:

  • 把帧识别成状态(难点)。
  • 把状态组合成音素。
  • 把音素组合成单词。

参考

https://www.zhihu.com/question/20398418

行存储 VS 列存储

每行是一条数据。
每列是一个field。

按行存储

示例:

1
2
3
[ {A: 1, B:42},
{A: 5, B:12},
{A: 5, B:6} ],

按行获取数据比较方便,获取一列数据比较慢。

按列存储

示例:

1
2
{ A: [1, 5, 5],
B: [42, 12, 6]}.

按列获取数据比较方便,获取一行数据比较慢。

通常情况下,只有少数field会经常用。按列存储还能够更好利用cpu缓存。

  • more efficient for queries that target a limited number of fields by making better use of CPU caches。
    -

实例 - lucene

Doc values are a Lucene 4.x feature which allow for storing field values on disk in a column stride fashion, which is filesystem cache friendly and suitable for custom scoring, sorting or faceting, exactly like field data.

https://www.elastic.co/blog/disk-based-field-data-a-k-a-doc-values

实例