自然言語処理(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)で視覚化(評価)することができる。
参考リンク
論文メモ:Deep contextualized word representations(ELmo)
Building a model from natural language with INDRA
Word embeddings in 2020. Review with code examples
0 件のコメント:
コメントを投稿