JP6517537B2 - 単語ベクトル学習装置、自然言語処理装置、方法、及びプログラム - Google Patents

単語ベクトル学習装置、自然言語処理装置、方法、及びプログラム Download PDF

Info

Publication number
JP6517537B2
JP6517537B2 JP2015037057A JP2015037057A JP6517537B2 JP 6517537 B2 JP6517537 B2 JP 6517537B2 JP 2015037057 A JP2015037057 A JP 2015037057A JP 2015037057 A JP2015037057 A JP 2015037057A JP 6517537 B2 JP6517537 B2 JP 6517537B2
Authority
JP
Japan
Prior art keywords
word
vector
dimension
word vector
context
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2015037057A
Other languages
English (en)
Other versions
JP2016161968A (ja
Inventor
鈴木 潤
潤 鈴木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2015037057A priority Critical patent/JP6517537B2/ja
Publication of JP2016161968A publication Critical patent/JP2016161968A/ja
Application granted granted Critical
Publication of JP6517537B2 publication Critical patent/JP6517537B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Machine Translation (AREA)

Description

本発明は、単語ベクトル学習装置、自然言語処理装置、方法、及びプログラムに係り、特に、単語に関する単語ベクトルを学習する単語ベクトル学習装置、自然言語処理装置、方法、及びプログラムに関する。
個々の単語は離散シンボルであり、かつ物理現象などに基づくものでもないことから、単語間の類似度を定量的に表現するのはそれほど単純ではない。比較として、例えば音声は、計算機上では一般的に周波数の時系列データとして捉えられる。よって、任意の音声区間同士の類似度は、周波数から算出できる様々な特徴量(連続値)をベクトル化したものの間で距離を計算することで、ある程度計測することができる。同様に、画像間の類似度も画素情報を特徴量としてベクトル化したものの間で距離を計算することである程度容易に計算できる。このように、波形であったり色彩であったり物理的な現象を基とするものの間の類似度は、計算機上でも比較的自然に扱うことが可能であるが、言語のような離散的なシンボルで記述された物理現象にも則さないものの間の類似度は、計算機上で単純には扱えない。
このような背景から、単語のような離散シンボル間の類似度を計算するために、これまで様々な方法論が考案されている。そのひとつに分散意味表現という方法がある。これは、音声や画像と同様に、各単語に一つのベクトルを割り振り、そのベクトル間の距離をもって単語間の意味的な類似度を表現しようと試みる方法である.ベクトル空間内の距離計算で単語間の意味的な近さを表現するので、計算機にとっては非常に親和性が高い方法と言える。
図9に分散意味表現による単語間の類似度の概要を示す。
ここでは、i番目の単語をwと表す。また、i番目の単語wに割り当てられたベクトルをr´で表す。なお、ベクトルを表す記号には、記号の後ろに「´」を付して表現する。
以降、単語に割り振られたベクトルのことを特別に「単語ベクトル」と呼ぶこととする。つまり、単語wの単語ベクトルはr´である。この時、計算機上の計算としては、以下(1)式において表すように、二つの単語wとwと間の類似度は、wと、wとの単語ベクトル間の内積、あるいは、コサイン距離により定義するのが一般的である。
この場合、内積あるいはコサイン距離の値が大きければ大きいほど単語wとwは似ているということを意味する。これによって、翻訳、対話、文書要約、又は文書校正といった言語処理の様々なアプリケーションの中で意味的に類似性がある単語を処理の中で扱えるようになる利点がある。結果として、単語間の意味的な近さを用いない処理方式より良い結果が得られることが示されている。ここで、各単語の単語ベクトルの獲得方法には、これまで多くの方法が提案されている。基本的な方法論としては、まず文章内の各単語に対して、その単語の文脈情報を定義する。文脈情報に特に規定はなく様々な情報を用いることができるが、最も単純には各単語の周辺に出現する単語を文脈情報として扱う場合がほとんどである。文脈の定義を変更しても、単語ベクトルの推定アルゴリズムそのものにはあまり影響を与えない。よって、以降の議論では、単語の文脈情報としては、周辺に出現する単語とする。
近年では、webから得られるような大規模なデータにも対応できるほど高速に処理可能な方法が主流となっている(非特許文献1及び非特許文献2参照)。大規模データが扱える手法が主流な理由は、データが多ければ多いほど、言語事象を的確に捉えることが可能となるため、類似度の推定精度が向上することが理論的にも期待できるからである。ここでは従来方式の代表として、非特許文献2に即した単語ベクトルの獲得方法を述べる。
非特許文献2の方式では、単語がある他の単語の文脈として出現した場合を表現するために、各単語に単語ベクトルとは別のもう一つのベクトルを割り当てる。これを単語ベクトルと対比して便宜上「文脈ベクトル」と呼ぶ。つまり、i番目の単語wは、単語ベクトルr´と文脈ベクトルc´jの二つのベクトルを持つ。
単語がN単語あるとする。この時に、(r´i=1 を全ての単語ベクトルをi=1からNまで順番に並べたベクトルのリストとする。同様に、(c´j=1 を全ての文脈ベクトルのjについて1からNまで順番に並べたベクトルのリストとする。また、i番目の単語に対してj番目の単語が文脈となった回数をXi,jとする。この時、非特許文献2に即した分散意味表現の獲得には以下(3)の目的関数を最小化する問題として、以下(2)式により定式化できる。
ただし、^r´及び^c´は,単語ベクトル及び文脈ベクトルの推定結果である。
最終的に得られた^r´がi番目の単語の単語ベクトルである。これが、(1)式の類似度計算などで用いられる単語ベクトルとなる。また、翻訳、又は文書校正等の自然言語処理の応用アプリケーションで利用される。
Tomas Mikolov, Kai Chen, Greg Corrado, Jeffrey Dean, Efficient Estimation of Word Representations in Vector Space. Proceedings of Workshop at ICLR, 2013. Jeffrey Pennington, Richard Socher, and Christopher Manning, Glove: Global Vectors for Word Representation. Proceedings of the 2014 Conference on Empirical Methods in Natural Language Processing (EMNLP),2014.
前述の非特許文献2のような現在主流に用いられている方法の課題は、学習を行う前に扱う「単語数」、出力となるベクトル空間の「次元数」を明示的に決定しなくてはいけない点である。議論を明確にするために、以降単語数をN、出力ベクトル空間の次元数をDと記述することとする。つまり、分散意味表現の学習を始める前に単語数Nと次元数Dを決めて学習を始めることを意味する。
一般的に分散意味表現を構築する状況を考えると、学習に用いることが可能なデータは日々増加、更新する場合がほとんどであり、理想的には学習データの更新分に合わせて逐次学習していきたいという状況が発生する。また単語ベクトルの適切な次元数は、取り扱う学習データ量によって異なると考えられるため、例えば、学習データ量が増加した際にベクトルの次元数を増やすといった処理を違和感なく扱える枠組みであることが望ましい。更に、これらの理由がなかったとしても、分散意味表現の学習は基本的に非凸最適化問題であり局所最適解が複数あるため、同じデータを用いていて同じ目的関数を使っても、学習時の初期値や手順の違いによって、得られる単語ベクトルが大きく異なることがあるという性質を持つ。このため、少し学習データが増加した状況で、再学習前後の単語ベクトルの間に関係性が全くないとすると、分散意味表現を再学習するたびに、それを利用したシステムのシステムパラメタも再推定しなくてはいけないというデメリットが生じる。
本発明は、上記問題点を解決するために成されたものであり、効率よく、単語ベクトルを学習するごとができる単語ベクトル学習装置、方法、及びプログラムを提供することを目的とする。
また、学習された単語ベクトルを用いて、単語の意味的な類似度に基づく自然言語処理を行う自然言語処理装置、及びプログラムを提供することを目的とする。
上記目的を達成するために、第1の発明に係る単語ベクトル学習装置は、文書データに基づいて、単語の各々について、前記単語に関する単語ベクトル、及び前記単語が他の単語の文脈として出現することを表す文脈ベクトルを学習する単語ベクトル学習装置であって、前記単語ベクトル及び文脈ベクトルの何れかの次元を順番に対象次元とし、前記単語の各々についての単語ベクトル及び文脈ベクトルの対象次元と異なる各次元の値と、単語ペアについて一方の単語が他方の単語の文脈として出現した回数とに基づいて、前記対象次元に関する目的関数を最適化するように、前記単語の各々についての単語ベクトル及び文脈ベクトルの対象次元の値を推定することを繰り返す反復最適化部、を含んで構成されている。
また、第1の発明に係る単語ベクトル学習装置において、前記反復最適化部は、前記単語の各々についての単語ベクトルの対象次元の値を固定とし、前記単語の各々についての単語ベクトル及び文脈ベクトルの対象次元と異なる各次元の値と、単語ペアについて一方の単語が他方の単語の文脈として出現した回数とに基づいて、前記対象次元に関する目的関数を最適化するように、前記単語の各々についての文脈ベクトルの対象次元の値を推定する文脈ベクトル最適化部と、前記単語の各々についての文脈ベクトルの対象次元の値を固定とし、前記単語の各々についての単語ベクトル及び文脈ベクトルの対象次元と異なる各次元の値と、単語ペアについて一方の単語が他方の単語の文脈として出現した回数とに基づいて、前記対象次元に関する目的関数を最適化するように、前記単語の各々についての単語ベクトルの対象次元の値を推定する単語ベクトル最適化部と、予め定められた反復終了条件を満たすまで、前記文脈ベクトル最適化部による推定、及び前記単語ベクトル最適化部による推定を交互に繰り返し行う反復判定部と、を含み、前記単語ベクトル及び文脈ベクトルの何れかの次元を順番に対象次元とし、前記文脈ベクトル最適化部、前記単語ベクトル最適化部、及び前記反復判定部による処理を繰り返すようにしてもよい。
また、第1の発明に係る単語ベクトル学習装置において、前記反復最適化部は、学習された前記単語ベクトル及び文脈ベクトルに対して次元数を増やして前記単語ベクトル及び文脈ベクトルを学習する場合、前記単語ベクトル及び文脈ベクトルの学習されていない何れかの次元を順番に対象次元とし、前記単語の各々についての単語ベクトル及び文脈ベクトルの対象次元と異なる各次元の値と、単語ペアについて一方の単語が他方の単語の文脈として出現した回数とに基づいて、前記対象次元に関する目的関数を最適化するように、前記単語の各々についての単語ベクトル及び文脈ベクトルの対象次元の値を推定することを繰り返すようにしてもよい。
また、第1の発明に係る単語ベクトル学習装置において、前記反復最適化部は、以下(5)式により表される、対象次元dに関する前記目的関数を、以下(4)式に従って最適化するように、単語iの各々についての単語ベクトルr´及び単語jの各々についての文脈ベクトルc´の対象次元dの値を推定することを繰り返すようにしてもよい。
ただし、rは単語iの単語ベクトルr´の次元dの要素、cは単語jの文脈ベクトルc´jの次元dの要素を表し、^rはrの、^cはcの推定結果を表し、bi,j,d=−r´ (d)・c´ (d)+log(Xi,j)であり、r´ (d)は、単語iの単語ベクトルr´の次元dの要素を0に置き換えた単語ベクトルを表し、c´ (d)は、単語jの単語ベクトルc´の次元dの要素を0に置き換えた文脈ベクトルを表し、Xi,jは単語iに対して単語jが文脈として出現した回数を表す。
第2の発明に係る自然言語処理装置は、入力された入力文書に対して、上記の単語ベクトル学習装置で学習された各単語の前記単語ベクトルを用いて、前記単語ベクトルに基づく単語間の意味的な類似度に基づく自然言語処理を行う自然言語処理部、を含んで構成されている。
第3の発明に係る単語ベクトル学習方法は、文書データに基づいて、単語の各々について、前記単語に関する単語ベクトル、及び前記単語が他の単語の文脈として出現することを表す文脈ベクトルを学習する単語ベクトル学習装置における単語ベクトル学習方法であって、反復最適化部が、前記単語ベクトル及び文脈ベクトルの何れかの次元を順番に対象次元とし、前記単語の各々についての単語ベクトル及び文脈ベクトルの対象次元と異なる各次元の値と、単語ペアについて一方の単語が他方の単語の文脈として出現した回数とに基づいて、前記対象次元に関する目的関数を最適化するように、前記単語の各々についての単語ベクトル及び文脈ベクトルの対象次元の値を推定することを繰り返すステップ、を含んで実行することを特徴とする。
第3の発明に係る単語ベクトル学習方法において、前記反復最適化部が推定することを繰り返すステップは、文脈ベクトル最適化部が、前記単語の各々についての単語ベクトルの対象次元の値を固定とし、前記単語の各々についての単語ベクトル及び文脈ベクトルの対象次元と異なる各次元の値と、単語ペアについて一方の単語が他方の単語の文脈として出現した回数とに基づいて、前記対象次元に関する目的関数を最適化するように、前記単語の各々についての文脈ベクトルの対象次元の値を推定するステップと、単語ベクトル最適化部が、前記単語の各々についての文脈ベクトルの対象次元の値を固定とし、前記単語の各々についての単語ベクトル及び文脈ベクトルの対象次元と異なる各次元の値と、単語ペアについて一方の単語が他方の単語の文脈として出現した回数とに基づいて、前記対象次元に関する目的関数を最適化するように、前記単語の各々についての単語ベクトルの対象次元の値を推定するステップと、反復判定部が、予め定められた反復終了条件を満たすまで、前記文脈ベクトル最適化部による推定、及び前記単語ベクトル最適化部による推定を交互に繰り返し行うステップと、を含み、前記単語ベクトル及び文脈ベクトルの何れかの次元を順番に対象次元とし、前記文脈ベクトル最適化部が推定するステップ、前記単語ベクトル最適化部が推定するステップ、及び前記反復判定部によって処理を繰り返すことを特徴とする。
第4の発明に係るプログラムは、コンピュータを、上記の単語ベクトル学習装置、又は自然言語処理装置を構成する各部として機能させるためのプログラムである。
本発明の単語ベクトル学習装置、方法、及びプログラムによれば、単語ベクトル及び文脈ベクトルの何れかの次元を順番に対象次元とし、対象次元と異なる各次元の値と、単語ペアについて一方の単語が他方の単語の文脈として出現した回数とに基づいて、対象次元に関する目的関数を最適化するように、単語の各々についての単語ベクトル及び文脈ベクトルの対象次元の値を推定することを繰り返すことにより、効率よく、単語ベクトルを学習するごとができる、という効果が得られる。
また、本発明の自然言語処理装置、及びプログラムによれば、学習された単語ベクトルを用いて、単語の意味的な類似度に基づく自然言語処理を行うことができる、という効果が得られる。
本発明の実施の形態に係る単語ベクトル学習装置の構成を示すブロック図である。 単語リスト及び文脈の共起情報の例を示す図である。 一次元の単語ベクトルの例を示す図である。 次元数を増やした二次元の単語ベクトルの例を示す図である。 10次元の単語ベクトルの例を示す図である。 本発明の実施の形態に係る自然言語処理装置の構成を示すブロック図である。 本発明の実施の形態に係る単語ベクトル学習装置における単語ベクトル学習処理ルーチンを示すフローチャートである。 本発明の実施の形態に係る自然言語処理装置における自然言語処理ルーチンを示すフローチャートである。 分散意味表現による単語間の類似度の概要を示す図である。
以下、図面を参照して本発明の実施の形態を詳細に説明する。
<本発明の実施の形態に係る概要>
まず、本発明の実施の形態における概要を説明する。本発明の実施の形態では、現実の環境で分散意味表現を利用する際に起こりえる状況に即して、単語数Nと次元数Dの更新という観点から、逐次追加可能で継続的に学習が行え、かつ、得られる結果は前回の結果を極力保持したような振る舞いとなる単語の分散意味表現獲得方法の枠組みを提案する。本実施の形態でも従来法と同様に、上記(2)式で示した最適化問題を基本的に踏襲して単語ベクトルを獲得する。ただし、前述の単語数Nと次元数Dが逐次増加するような状況でも継続的に学習を行えるような枠組みへ変更する。
まず、全ての単語ベクトルr´と文脈ベクトルc´はD次元のベクトルからなるものとする。ただし、D≧1である。このとき任意の対象次元dに対して、全ての単語ベクトルの次元dの要素のみを最適化変数とし、それ以外(次元d以外)の要素の値を定数とみなす。ただし、1≦d≦Dである。この設定で、上記(2)式の最適化問題を解くことを考えると、各単語について1変数の最適化問題を解く問題とみなせる。このとき当たり前の話であるが、各ベクトルの次元dの要素のみを最適化変数と決定したので、最適化後に変更される単語ベクトルの要素は選択した次元dの要素のみである。対象次元dでの学習が終了した後に、対象次元dの選択を適宜変更し同様の学習を繰り返す、という処理へ変更する。このように変更しても、単に各次元毎の最適化を繰り返すことで元の最適化問題の解を得ようという最適化アルゴリズムを用いていると解釈できるので、基本的には同じ問題を、ある特定の方法で解いているという解釈ができる。
本実施の形態では、まず、基本的に学習は永続的に行われるという状況において、学習環境の設定でおこなう。ただし、実際に処理が発生するのは、(1)文書データが更新された場合、(2)単語ベクトルの次元数を増加したいとき、の2パターンの事象が発生した場合に限られる。学習にはある程度の時間を必要とするが、上記2パターンの事象の発生より学習時間の方が短ければ、処理としては停止した状態で待機するような形式となる。
また、学習の開始時は単語ベクトルの数はN=0、ベクトルの次元はD=1に設定されていることとする。このように、本実施の形態においては、最初は必ず単語数や次元数が最小の状態から始めることができる。
主な処理の流れは、以下の処理1〜処理4のようになる。
(処理1):待機
文書データ更新のシグナルを受信したら処理2Aへ移行する。
単語ベクトルの次元数増加のシグナルを受信したら処理2Bへ移行する。
(処理2A):文書データの更新
文書データを読み込み、単語と文脈単語の共起情報を更新する。
文書データに出現した単語数に従って単語数Nの値を更新する。
対象次元dをd=1とセットする。
(処理2B):ベクトルに対する次元の追加
単語ベクトル及び文脈ベクトルの要素を末尾に一つ増やし初期化する。
次元数DをD=D+1とする。
dの初期値をd=Dとセットする。
(処理3)
後述する(6)式に従って対象次元dに関する最適化問題を解き、単語ベクトルの対象次元dの値を更新する。
(処理4)
dがd=Dならば処理1へ戻る。
dがd=D以外であればd=d+1として処理3へ戻る。
本発明の実施の形態では、上記の処理1〜処理4を、web上に存在する自然言語で記述された電子化文書を使って、単語の分散意味表現を獲得する問題を題材として適用した単語ベクトル学習装置を例に説明する。
<本発明の実施の形態に係る単語ベクトル学習装置の構成>
次に、本発明の実施の形態に係る単語ベクトル学習装置の構成について説明する。図1に示すように、本発明の実施の形態に係る単語ベクトル学習装置100は、CPUと、RAMと、後述する単語ベクトル学習処理ルーチンを実行するためのプログラムや各種データを記憶したROMと、を含むコンピュータで構成することが出来る。この単語ベクトル学習装置100は、機能的には図1に示すように入力部10と、演算部20と、出力部50とを備えている。また、単語ベクトル学習装置100は、初期状態は、何も学習していない状態であると仮定する。よって単語数NはN=0、次元数DはD=1に設定されている。
入力部10は、文書データ及び文書データ更新のシグナル、又は次元数増加のシグナルを受け付ける。文書データとしては、本実施の形態では、ある一日のSNSサイト等へ投稿される一般ユーザが生成する文書データを用いる。
演算部20は、文書データ更新部26と、次元数増加部28と、反復最適化部30と、ベクトル記憶部40とを含んで構成されている。
文書データ更新部26は、以下に説明するように、入力部10から文書データ更新のシグナルを受け取った場合に、文書データの更新に伴い、単語リストと、単語の文脈の共起情報を更新すると共に、新たに追加された単語の単語ベクトル及び文脈ベクトルを準備する。
文書データ更新部26は、まず、受け付けた文書データに基づいて、単語リストと、単語の文脈の共起情報とを更新する。ここで得られた単語リスト内の単語数に基づいてNを設定する。本実施の形態では、単語リストに用いる単語数は、受け付けた文書データに出現する全単語とする。例えば、単語数が1万単語であれば、N=10,000である。あるいは、ある頻度以上出現した単語としてもよい。
次に、文書データ更新部26は、単語と、当該単語の文脈から抽出された単語とのペアをまとめ、共起情報を得る。例えば、各単語の文脈情報として、対象となる単語の前後2単語を抽出する。ただし、前後何単語を実際に使うかは任意に定めればよく、いくつでもよい。その際に出現数(共起頻度)も併せて記録する。このペアと頻度が統計情報として事前に獲得されるものである。
図2に単語リスト及び文脈の共起情報の例を示す。なお、ここで示す例では簡単のため、単語区切りなどは、一般的によく用いられるツール等を用いて容易に獲得可能であることを前提とする。日本語の場合は、フリーで利用できるツールが存在するし、英語であれば、空白区切りを単語の区切りとして利用すれば良い。また、本実施の形態では日本語の例として説明するが、英語に適用してもよい。また、本実施の形態では、処理を簡便化、高速化するため、事前に単語と文脈の共起情報を文書データから取得しておく。
次に、文書データ更新部26は、文書データの更新により新たに追加された単語については、当該単語の単語ベクトル及び文脈ベクトルを、ベクトル記憶部40に記憶されている単語ベクトル及び文脈ベクトルに追加する。初期状態では、次元数DがD=1なので、文書データ更新部26は、各単語に対して、全て1次元の単語ベクトル及び文脈ベクトルを準備し、ベクトル記憶部40に記憶する。
次元数増加部28は、入力部10から次元数増加のシグナルを受け取った場合に処理を実行する。次元数の増加に対応するため、全ての単語ベクトル及び文脈ベクトルの各々について、次元を一つ追加し、追加した次元の要素を任意の値で初期化する。次に、次元数DをD=D+1と更新する。
反復最適化部30は、文脈ベクトル最適化部32と、単語ベクトル最適化部34と、反復判定部36とを含んで構成されている。
まず、反復最適化部30の原理について説明する。
反復最適化部30は、単語ベクトル及び文脈ベクトルの何れかの次元を順番に対象次元とし、単語の各々についての単語ベクトル及び文脈ベクトルの対象次元と異なる各次元の値と、単語ペアについて一方の単語が他方の単語の文脈として出現した回数とに基づいて、対象次元に関する目的関数を最適化するように、単語の各々についての単語ベクトル及び文脈ベクトルの対象次元の値を推定することを繰り返す。
反復最適化部30は、具体的には、以下の処理を行う。まず、入力として、文書データ更新部26から単語リストと文脈の共起頻度とを受け付ける。そして、処理対象の次元数を表す変数dの初期値を1と設定する。記述を簡単にするために、i番目の単語の単語ベクトルr´に対して、次元dの要素をri,dとする。次に、単語ベクトルr´の次元dの要素を0に固定したベクトルをr´ (d)とする。同様に、文脈ベクトルc´の次元dの要素を0に固定したベクトルをc´ (d)とする。このとき、最適化に用いる変数は、全ての単語iに対するri,d及び全ての単語jに対するcj,dのみとし、全てのr´ (d)及びc´ (d)は定数とする。更に記述を簡単にするため、最適化中に定数となる項をまとめてbi,j,d=−r´ (d)・c´ (d)+log(Xi,j)とおく。
このとき、以下(6)式に示す、対象次元dに関する最適化問題を解く。
上記(6)式は、上記(2)式と比較して、単純に全ての単語ベクトル及び文脈ベクトルの次元dの要素のみが最適化変数となり、それ以外の次元の要素は全て固定された状態で最適化を行うことを意味している。よって、D=1であるならば、(2)式と(6)式は完全に等価であることを意味する。
上記(6)式の最適化時には、全ての単語iに対してri,dを固定し、全ての単語jに関して変数cj,dを最適化する。逆に、全ての単語jに対してcj,dを固定し、全ての単語iに関して変数ri,dを最適化する、という処理を交互に繰り返して最終的に(6)式の最適化問題の解を得る。このように、それぞれの問題は、それぞれの変数に対して解析解が求めるので正確な解が求まる。以下、反復最適化部30における、文脈ベクトル最適化部32、単語ベクトル最適化部34、及び反復判定部36の各部の処理について説明する。
文脈ベクトル最適化部32は、全ての単語iについての単語ベクトルr´の対象次元dの値を、ベクトル記憶部40に記憶されているri,dに固定し、各単語iについての単語ベクトルr´及び各単語jについての文脈ベクトルc´の、対象次元と異なる各次元の値と、単語ペアについて一方の単語iが他方の単語jの文脈として出現した回数Xi,jとに基づいて、対象次元dに関する上記(7)式に示す目的関数を最適化するように、各単語jについての文脈ベクトルc´の対象次元dの値を推定して、ベクトル記憶部40に記憶する。ここで、文脈ベクトル最適化部32は、全ての単語iについての単語ベクトルr´の対象次元dの値ri,dを固定して、各単語jに関して文脈ベクトルc´の対象次元dの要素cj,dを最適化する場合は、以下(8)式のように、全ての単語jに対して各要素cj,dの偏微分が0になる値を求めればよい。
単語ベクトル最適化部34は、全ての単語jについての文脈ベクトルc´の対象次元dの値をベクトル記憶部40に記憶されているcj,dに固定し、各単語i、jについての単語ベクトルr´及び文脈ベクトルc´の対象次元と異なる各次元の値と、単語ペアについて一方の単語iが他方の単語jの文脈として出現した回数Xi,jとに基づいて、対象次元dに関する上記(7)式に示す目的関数を最適化するように、各単語iについての単語ベクトルr´の対象次元dの値を推定して、ベクトル記憶部40に記憶する。ここで、単語ベクトル最適化部34は、全ての単語jについての単語ベクトルc´の対象次元dの値cj,dを固定して、各単語iに関して単語ベクトルr´の対象次元dの要素ri,dを最適化する場合は、以下(9)式のように、全ての単語iに対して各要素ri,dの偏微分が0になる値を求めればよい。
反復判定部36は、予め定められた反復終了条件を満たすまで、文脈ベクトル最適化部32による推定、及び単語ベクトル最適化部34による推定を交互に繰り返し行う。反復終了条件としては、例えば、上記(8)式と(9)式とを交互に計算すると、上記(7)式の目的関数の値は必ず同じか、小さくなるため、目的関数の値が変化しなくなるか、ほとんど変化がなくなるまで処理を繰り返す。そして、対象次元dがd=Dであれば、次の学習データ更新のシグナル又は次元数増加のシグナルが届くまで待機する。一方、対象次元dがd≠Dであれば、d=d+1として対象次元を変更し、次の対象次元において、文脈ベクトル最適化部32、及び単語ベクトル最適化部34の処理を繰り返す。例えば、評判分析等に利用するため、単語ベクトルを10次元程度まで拡充したいという要求があったと仮定した場合、次元数増加のシグナルを受け付ける。この時、本実施の形態に係る単語ベクトル学習装置は必ず1次元ずつしか増やさないため、次元数増加部28、文脈ベクトル最適化部32、及び単語ベクトル最適化部34の一連の処理を10回繰り返す。
図3に反復最適化部30による推定により得られた一次元の単語ベクトルの例を示し、図4及び図5に、次元数を増やして、反復最適化部30による推定を繰り返して得た単語ベクトルの例を示す。
<本発明の実施の形態に係る自然言語処理装置の構成>
次に、本発明の実施の形態に係る自然言語処理装置の構成について説明する。図6に示すように、本発明の実施の形態に係る自然言語処理装置200は、CPUと、RAMと、後述する自然言語処理ルーチンを実行するためのプログラムや各種データを記憶したROMと、を含むコンピュータで構成することが出来る。この自然言語処理装置200は、機能的には図6に示すように入力部210と、演算部220と、出力部250とを備えている。本実施の形態では、自然言語処理装置200では、単語ベクトル学習装置100により学習された単語ベクトルに基づいて、未知の単語を類似度の高い単語に置き換えて翻訳を行う場合を例に説明するが、これに限定されるものではなく、置き換えた単語を用いて要約、文書校正などを行ってもよい。
入力部210は、翻訳対象のテキストを受け付ける。
演算部220は、自然言語処理部230と、ベクトル記憶部240とを備えている。
ベクトル記憶部240には、ベクトル記憶部40と同じものが記憶されている。
自然言語処理部230は、置換部232と、翻訳部234とを備えている。
置換部232は、入力部210で受け付けたテキストの単語のうち、単語を格納した既存の辞書(図示省略)にない未知の単語を抽出し、ベクトル記憶部40に記憶されている単語に対する文脈ベクトルに基づいて、未知の単語に対して最も類似度が高い、辞書中の単語を推定する。そして、未知の単語を、推定された辞書中の単語に置き換えたテキストを生成する。
翻訳部234は、置換部232により単語が置き換えられたテキストを既存の手法により翻訳し、出力部250に出力して処理を終了する。
なお、自然言語処理装置200において、他の自然言語処理を行う際に、特定の文書中に出現する単語と類似する単語を辞書から抽出して、処理対象に含めることで、情報を増やして精度を向上させることが可能である。この際、出現した各単語に対して、上記(1)式を計算して類似度が高い単語を処理に含めるといったことを行う。
<本発明の実施の形態に係る単語ベクトル学習装置の作用>
次に、本発明の実施の形態に係る単語ベクトル学習装置100の作用について説明する。入力部10において文書データ及び文書データ更新のシグナル、又は次元数増加のシグナルを受け付けると、単語ベクトル学習装置100は、図7に示す単語ベクトル学習処理ルーチンを実行する。
まず、ステップS100では、入力部10において受け付けたシグナルが、文書データ更新のシグナル、又は次元数増加のシグナルのいずれのシグナルであるかを判定し、文書データ更新のシグナルであれば、ステップS102へ移行し、次元数増加のシグナルであれば、ステップS108へ移行する。
ステップS102では、入力部10で受け付けた文書データに基づいて、単語リストと、単語の文脈の共起情報を更新する。
ステップS104では、入力部10で受け付けた文書データにより新たに単語が追加されているかを判定し、追加されていればステップS106へ移行し、追加されていなければステップS110へ移行する。
ステップS106では、入力部10で受け付けた文書データにより追加された単語については、当該単語のベクトル及び文脈ベクトルを、ベクトル記憶部40に記憶されている単語ベクトル及び文脈ベクトルに追加する。そして、ステップS107において、対象次元dを1にセットして、ステップS114へ移行する。
ステップS108では、入力部10で受け付けた次元数増加のシグナルに基づいて、ベクトル記憶部40に記憶されている全ての単語の単語ベクトル及び文脈ベクトルの各々について、次元を一つ追加し、追加した次元の要素を任意の値で初期化する。
ステップS110では、次元数DをD+1に更新する。
ステップS112では、学習されていない次元を学習対象とするため、対象次元dをDに設定する。
ステップS114では、ベクトル記憶部40に記憶されている全ての単語の単語ベクトル及び文脈ベクトルに基づいて、上記(8)式に従って、各単語の文脈ベクトルの対象次元dの要素cj,dを最適化し、ベクトル記憶部40に記憶されている各単語の文脈ベクトルを更新する。
ステップS116では、ベクトル記憶部40に記憶されている全ての単語の単語ベクトル及び文脈ベクトルに基づいて、上記(9)式に従って、各単語の単語ベクトルの対象次元dの要素ri,dを最適化し、ベクトル記憶部40に記憶されている各単語の単語ベクトルを更新する。
ステップS118では、ステップS114及びステップS116の最適化により、上記(7)式の目的関数の値が、上記(6)式に従って定められた反復終了条件を満たすかを判定し、満たしていればステップS120へ移行し、満たしていなければステップS114へ戻ってステップS114及びステップS116の最適化の処理を繰り返す。
ステップS120では、d=Dであるかを判定し、d=Dであれば、ステップS122へ移行し、d=DでなければステップS118へ移行する。
ステップS122では、d=d+1として対象次元を変更し、ステップS114へ移行してステップS114〜ステップS116の最適化の処理を繰り返す。
ステップS124では、ステップS114〜ステップS118の処理で得られた単語ベクトル及び文脈ベクトルを出力して単語ベクトル学習処理ルーチンを終了し、次のシグナルを受け付けるまで待機する。
以上説明したように、本発明の実施の形態に係る単語ベクトル学習装置によれば、単語ベクトル及び文脈ベクトルの何れかの次元を順番に対象次元とし、対象次元と異なる各次元の値と、単語ペアについて一方の単語が他方の単語の文脈として出現した回数とに基づいて、対象次元に関する上記(7)式の目的関数を最適化するように、単語の各々についての単語ベクトル及び文脈ベクトルの対象次元の値を推定することを繰り返すことにより、効率よく、単語ベクトルを学習するごとができる。
<本発明の実施の形態に係る自然言語処理装置の作用>
次に、本発明の実施の形態に係る自然言語処理装置200の作用について説明する。入力部210において翻訳対象のテキストを受け付けると、自然言語処理装置200は、図8に示す自然言語処理ルーチンを実行する。
ステップS200では、入力部210で受け付けた翻訳対象のテキストから未知の単語を抽出する。
ステップS202では、ベクトル記憶部240に記憶されている各単語の単語ベクトルに基づいて、ステップS200で抽出された未知の単語に対して最も類似度が高い、辞書中の単語を推定し、翻訳対象のテキストについて、未知の単語を、推定された辞書中の単語に置き換えたテキストを生成する。
ステップS204では、ステップS202で生成されたテキストに基づいて翻訳し、出力部250に出力して処理を終了する。
以上説明したように、本発明の実施の形態に係る自然言語処理装置によれば、学習された単語ベクトルを用いて、単語の意味的な類似度に基づく翻訳処理を行うことができる。
また、本発明の実施の形態に係る単語ベクトル学習装置によれば、ベクトルの各次元に意味を持たせるために、d=1からd=Dまで順番に最適化を行っている。これは、このように1番目の次元から順番に処理することで、各ベクトルの1番目の要素が最も強い類似度を表現し、以下2番目、3番目と大きくなるにしたがって、それまで学習した類似度を前提条件として、これまで捉えきれなかった更に詳細な類似度を学習していくという仕組みを得ることができるからである。
また、学習済みの単語ベクトルに対して、文書データが増加するか、あるいは更新された際に再学習する場合、学習済み単語ベクトルを初期値として学習を継続することで、差分情報を各次元毎に追加していく形式で学習が行える。よって、再学習前と後の単語ベクトルの変更分は、差分情報から得られた値の変化となる。これは、仮にデータの差分に影響を受けなかった場合は値も変化しないことを意味する。この性質により、従来のように、文書データが増加した際に初めから再学習する場合と比較して、再学習前後の単語ベクトルが文書データの差分情報により更新され、以前の情報を保持し続けるといったメリットを得ることができる。
また、単語ベクトルの次元数を増加したい場合でも、処理を各次元毎の最適化に分解していることから、容易に対応可能である、後付けの形で、ベクトルの次元数をDからD+1へ増加し、d=Dと設定し、逐次次元を増やしながら学習ということも容易に行える。更に、全く単語ベクトルが存在しない状態から学習を始める場合には、D=1と設定し1次元のベクトルから処理を始めればよく、特に事前に単語ベクトルの次元数を決定しなくても、学習を開始することが可能である。
このように、本発明を用いることで従来法と異なり、単語数や次元数が継続的に増加するような状況下でも分散意味表現の学習が可能となる。また、得られた単語ベクトルの前回からの差分には依存関係が保持することが可能である。これによって、分散意味表現を利用したシステムの再構築を行う際に、システムパラメタ等を最初から全て再推定しなくてもよくなり、システムメンテナンスのコストを大幅に下げられるという利点がある。
なお、本発明は、上述した実施の形態に限定されるものではなく、この発明の要旨を逸脱しない範囲内で様々な変形や応用が可能である。
例えば、上述した実施の形態では、次元数増加のシグナルを受け付けて次元数DをD+1に更新して、増加させた次元を対象次元として単語ベクトル及び文脈ベクトルを学習する場合を例に説明したが、これに限定されるものではなく、次元数を任意の二以上の数だけに増加させるシグナルを受け付けて、増加させた分の次元を順番に対象次元として単語ベクトル及び文脈ベクトルを学習するようにしてもよい。
10、210 入力部
20、220 演算部
26 文書データ更新部
28 次元数増加部
30 反復最適化部
32 文脈ベクトル最適化部
34 単語ベクトル最適化部
36 反復判定部
40 ベクトル記憶部
50、250 出力部
100 単語ベクトル学習装置
200 自然言語処理装置
230 自然言語処理部
232 置換部
234 翻訳部
240 ベクトル記憶部

Claims (10)

  1. 文書データに基づいて、単語の各々について、当該単語の特徴を表す単語ベクトルを学習する単語ベクトル学習装置であって、
    前記単語ベクトルの何れかの次元を順番に対象次元とし、単語の文脈情報と、前記単語ベクトルとに基づいた前記対象次元に関する目的関数であって、前記単語ベクトル中の当該対象次元を除く各次元の値を定数とみなすことで定まる前記目的関数を最適化するように、当該対象次元の値を推定する処理を、前記単語ベクトル中の各次元について繰り返す反復最適化部
    を含む単語ベクトル学習装置。
  2. 前記反復最適化部は、前記単語ベクトル中の各次元について、小さい次元から順番に当該対象次元の値を推定する処理を繰り返す請求項1に記載の単語ベクトル学習装置。
  3. 前記反復最適化部は、前記単語ベクトルの何れかの次元を順番に対象次元dとし、さらに前記単語ベクトルに対応する単語が他の単語の文脈として出現することを表す文脈ベクトルであって前記単語ベクトルと同じ次元数の文脈ベクトルの次元dを対象次元とし、単語の文脈情報と、前記単語ベクトルと、前記文脈ベクトルとに基づいた前記対象次元dに関する目的関数であって、前記単語ベクトル中、又は前記文脈ベクトル中の当該対象次元dを除く、前記単語ベクトル及び前記文脈ベクトルの各次元の値を定数とみなすことで定まる前記目的関数を最適化するように、当該対象次元の値を推定する処理を、前記単語ベクトル中の各次元について繰り返す請求項1又は請求項2に記載の単語ベクトル学習装置。
  4. 前記反復最適化部は、
    前記単語の各々についての単語ベクトルの対象次元の値を固定とし、前記単語の各々についての単語ベクトル及び前記文脈ベクトルの対象次元と異なる各次元の値と、単語ペアについて一方の単語が他方の単語の文脈として出現した回数とに基づいて、前記対象次元に関する目的関数を最適化するように、前記単語の各々についての文脈ベクトルの対象次元の値を推定する文脈ベクトル最適化部と、
    前記単語の各々についての文脈ベクトルの対象次元の値を固定とし、前記単語の各々についての単語ベクトル及び文脈ベクトルの対象次元と異なる各次元の値と、単語ペアについて一方の単語が他方の単語の文脈として出現した回数とに基づいて、前記対象次元に関する目的関数を最適化するように、前記単語の各々についての単語ベクトルの対象次元の値を推定する単語ベクトル最適化部と、
    予め定められた反復終了条件を満たすまで、前記文脈ベクトル最適化部による推定、及び前記単語ベクトル最適化部による推定を交互に繰り返し行う反復判定部と、を含み、
    前記単語ベクトル及び文脈ベクトルの何れかの次元を順番に対象次元とし、前記文脈ベクトル最適化部、前記単語ベクトル最適化部、及び前記反復判定部による処理を繰り返す請求項3に記載の単語ベクトル学習装置。
  5. 次元数の更新情報に基づいて前記単語ベクトルの次元数を増加する次元数増加部を更に含み、
    前記反復最適化部は、学習された前記単語ベクトルに対して次元数を増やして前記単語ベクトルを学習する場合、前記単語ベクトル中の前記増加した分の各次元を順番に対象次元とし、前記推定する処理を繰り返す請求項1〜請求項4の何れか1項に記載の単語ベクトル学習装置。
  6. 入力された入力文書に対して、請求項1〜請求項5の何れか1項記載の単語ベクトル学習装置で学習された各単語の前記単語ベクトルを用いて、前記単語ベクトルに基づく単語間の意味的な類似度に基づく自然言語処理を行う自然言語処理部
    を含む自然言語処理装置。
  7. 入力文書に基づき、単語の各々について、当該単語の特徴を表す単語ベクトルの学習を行い、学習された各単語の単語ベクトルを用いて、前記入力文書に対し、前記単語ベクトルに基づく単語間の意味的な類似度に基づく自然言語処理を行う自然言語処理装置であって、
    前記学習は、前記単語ベクトルの何れかの次元を順番に対象次元とし、前記入力文書から得られる単語の文脈情報と、前記単語ベクトルとに基づいた前記対象次元に関する目的関数であって、前記単語ベクトル中の当該対象次元を除く各次元の値を定数とみなすことで定まる前記目的関数を最適化するように、当該対象次元の値を推定する処理を、前記単語ベクトル中の各次元について繰り返すことを特徴とする自然言語処理装置。
  8. 文書データに基づいて、単語の各々について、当該単語の特徴を表す単語ベクトルを学習する単語ベクトル学習装置における単語ベクトル学習方法であって、
    反復最適化部が、前記単語ベクトルの何れかの次元を順番に対象次元とし、単語の文脈情報と、前記単語ベクトルとに基づいた前記対象次元に関する目的関数であって、前記単語ベクトル中の当該対象次元を除く各次元の値を定数とみなすことで定まる前記目的関数を最適化するように、当該対象次元の値を推定する処理を、前記単語ベクトル中の各次元について繰り返すステップ
    を含む単語ベクトル学習方法。
  9. コンピュータを、請求項1〜請求項5の何れか1項に記載の単語ベクトル学習装置を構成する各部として機能させるためのプログラム。
  10. コンピュータを、請求項6又は請求項7に記載の自然言語処理装置を構成する各部として機能させるためのプログラム。
JP2015037057A 2015-02-26 2015-02-26 単語ベクトル学習装置、自然言語処理装置、方法、及びプログラム Active JP6517537B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015037057A JP6517537B2 (ja) 2015-02-26 2015-02-26 単語ベクトル学習装置、自然言語処理装置、方法、及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015037057A JP6517537B2 (ja) 2015-02-26 2015-02-26 単語ベクトル学習装置、自然言語処理装置、方法、及びプログラム

Publications (2)

Publication Number Publication Date
JP2016161968A JP2016161968A (ja) 2016-09-05
JP6517537B2 true JP6517537B2 (ja) 2019-05-22

Family

ID=56845052

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015037057A Active JP6517537B2 (ja) 2015-02-26 2015-02-26 単語ベクトル学習装置、自然言語処理装置、方法、及びプログラム

Country Status (1)

Country Link
JP (1) JP6517537B2 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018150453A1 (ja) 2017-02-14 2018-08-23 三菱電機株式会社 データ分析装置およびデータ分析方法
JP6620950B2 (ja) * 2017-03-02 2019-12-18 日本電信電話株式会社 単語学習装置、単語学習方法、及び単語学習プログラム
KR102034346B1 (ko) * 2017-06-29 2019-10-18 연세대학교 산학협력단 학습 기반의 비속어 탐지 장치 및 방법
KR102024300B1 (ko) * 2017-09-28 2019-09-24 한국과학기술원 개체명 임베딩 시스템 및 방법
CN108170667B (zh) * 2017-11-30 2020-06-23 阿里巴巴集团控股有限公司 词向量处理方法、装置以及设备
JP7084761B2 (ja) * 2018-04-10 2022-06-15 日本放送協会 文生成装置、文生成方法及び文生成プログラム
JP6936370B1 (ja) * 2020-09-02 2021-09-15 Scsk株式会社 情報処理システム、及び情報処理プログラム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5675819A (en) * 1994-06-16 1997-10-07 Xerox Corporation Document information retrieval using global word co-occurrence patterns
JP3195752B2 (ja) * 1997-02-28 2001-08-06 シャープ株式会社 検索装置
JP4013489B2 (ja) * 2001-03-02 2007-11-28 富士ゼロックス株式会社 対応カテゴリ検索システムおよび方法
JP2010152561A (ja) * 2008-12-24 2010-07-08 Toshiba Corp 類似表現抽出装置、サーバ装置及びプログラム

Also Published As

Publication number Publication date
JP2016161968A (ja) 2016-09-05

Similar Documents

Publication Publication Date Title
JP6517537B2 (ja) 単語ベクトル学習装置、自然言語処理装置、方法、及びプログラム
CN107729322B (zh) 分词方法及装置、建立句子向量生成模型方法及装置
EP3602419B1 (en) Neural network optimizer search
JP6872505B2 (ja) ベクトル生成装置、文ペア学習装置、ベクトル生成方法、文ペア学習方法、およびプログラム
CN110610234B (zh) 将外部应用程序集成到深度神经网络中
JP6738769B2 (ja) 文ペア分類装置、文ペア分類学習装置、方法、及びプログラム
JP6291443B2 (ja) 接続関係推定装置、方法、及びプログラム
US20220108215A1 (en) Robust and Data-Efficient Blackbox Optimization
CN109299246B (zh) 一种文本分类方法及装置
CN110874392B (zh) 基于深度双向注意力机制的文本网络信息融合嵌入方法
CN113591496A (zh) 一种双语词语对齐方法及系统
CN112463989A (zh) 一种基于知识图谱的信息获取方法及系统
JP6586026B2 (ja) 単語ベクトル学習装置、自然言語処理装置、方法、及びプログラム
CN113505583A (zh) 基于语义决策图神经网络的情感原因子句对提取方法
CN111310996A (zh) 基于图自编码网络的用户信任关系预测方法及系统
CN110838021A (zh) 转化率预估方法、装置、电子设备及存储介质
JP6698061B2 (ja) 単語ベクトル変換装置、方法、及びプログラム
CN110399619A (zh) 面向神经机器翻译的位置编码方法及计算机存储介质
CN115908775A (zh) 化学结构式的识别方法、装置、存储介质及电子设备
JP5503577B2 (ja) データ極性判定装置、方法、及びプログラム
CN115066689A (zh) 细粒度的随机神经架构搜索
JP6482084B2 (ja) 文法規則フィルターモデル学習装置、文法規則フィルター装置、構文解析装置、及びプログラム
JP2019061623A (ja) パラメータ推定装置、方法、及びプログラム
WO2022185457A1 (ja) 特徴量抽出装置、学習装置、特徴量抽出方法、学習方法、及びプログラム
JP2013186656A (ja) 自然言語解析処理装置、方法、及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170210

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20171211

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180206

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180404

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20181002

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181127

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190409

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190418

R150 Certificate of patent or registration of utility model

Ref document number: 6517537

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150