2021年1月21日木曜日

単語埋め込み(word embedding)の手法

 自然言語処理(Natural Language Processing)、特に機械学習を用いたNLP処理でまず最初に行うべきこと。単語をベクトル化することで、単語の概念を示し、数学的な処理を行うことができるようになる。


【単語埋め込み技術(分散表現)の種類】

・word2vec

基本的な考え方はJohn Rupert Firthの"a word is characterized by the company it keeps"(単語はその周辺によって特徴付けられる)という考え方による。 skip-gramとCBOWモデルを利用。

・Glove

word2vecでは周辺単語から言葉の意味(ベクトル)を推定するが、GloVeではコーパス全体から得られる単語間の共起行列を用いた最適化関数 (重み付き最小二乗法) で学習する。

・fasttext

FastTextは2016年にFacebookによって最初に発表された素のWord2Vecモデルを拡張および改善したもの。各単語をBag of Character n-gram(サブワードモデル)とみなしてベクトル化する。計算量は多くなるがサブワードモデルのおかげで珍しい単語が出現しても対応できる可能性が高い。

・Elmo

事前学習によって文脈を考慮した単語表現を可能にする手法。 双方向言語モデルを用いることで実現される。双方向を用いることで語順が順方向だけではなく、逆方向に対しても学習することできる。

・Indra

情報収集中

 

分散ベクトルを作った後は、主成分分析(PCA)やT-Distributed Stochastic Neighbor Embedding(t-sne)で視覚化(評価)することができる。


参考リンク

GloVeで単語ベクトルを得る

fastTextの実装を見てみた

高速と噂のfastTextの仕組み 

文脈を考慮した単語表現を獲得するELMo

論文メモ:Deep contextualized word representations(ELmo)

2018年の言語モデル概要(ELmo) 

Building a model from natural language with INDRA 

Word embeddings in 2020. Review with code examples

 

 

 

 

0 件のコメント:

コメントを投稿