(57)【特許請求の範囲】
【請求項１】
文書データに基づいて、単語の各々について、前記単語に関するＤ次元の単語ベクトル、及び前記単語が他の単語の文脈として出現することを表すＤ次元の文脈ベクトルを学習する単語ベクトル学習装置であって、
前記単語ベクトル及び文脈ベクトルの各々を、次元数ＦのＢ個のブロックに分割し、次元数ＦのＳ種類の実数ベクトルの集合と、前記文書データにおいて単語ペアについて一方の単語が他方の単語の文脈として出現した回数とに基づいて、前記単語ベクトル及び文脈ベクトルの各々の各ブロックが、前記Ｓ種類の実数ベクトルの何れかとなる制約の下で、前記単語ベクトル及び文脈ベクトルの各々の各ブロックの尤もらしさを表す目的関数を最適化するように、前記単語の各々についての単語ベクトル及び文脈ベクトルの各ブロックの実数値ベクトルを推定する学習部
を含む単語ベクトル学習装置。
【請求項２】
前記学習部は、
以下の式により表される、前記目的関数を最適化するように、単語ｉの各々についての単語ベクトルの各ブロックｒｉ,b及び単語ｊの各々についての文脈ベクトルの各ブロックｃｊ,bの実数ベクトルを更新する更新部と、
予め定められた反復終了条件を満たすまで、前記更新部による更新を繰り返させる反復判定部と、を含む請求項１記載の単語ベクトル学習装置。
【数１】
0006586026.tif 000018
ただし、Ｄは、文書データで出現する、前記単語と、前記単語の文脈として出現する単語とのペアの集合を表し、αｉ,ｂ、βｉ,ｂは、ラグランジュ未定乗数であり、ｕｉ,ｂ、ｖｊ,ｂは、次元数Ｆの実数ベクトルである補助パラメタであり、ρは、定数であり、ζは、次元数ＦのＳ種類の実数ベクトルの集合を表し、Ｘｉ，ｊは単語ｉに対して単語ｊが文脈として出現した回数を表す。
【請求項３】
入力された入力文書に対して、請求項１又は２記載の単語ベクトル学習装置で学習された各単語の前記単語ベクトルを用いて、前記単語ベクトルに基づく単語間の意味的な類似度に基づく自然言語処理を行う自然言語処理部
を含む自然言語処理装置。
【請求項４】
文書データに基づいて、単語の各々について、前記単語に関するＤ次元の単語ベクトル、及び前記単語が他の単語の文脈として出現することを表すＤ次元の文脈ベクトルを学習する単語ベクトル学習装置における単語ベクトル学習方法であって、
学習部が、前記単語ベクトル及び文脈ベクトルの各々を、次元数ＦのＢ個のブロックに分割し、次元数ＦのＳ種類の実数ベクトルの集合と、前記文書データにおいて単語ペアについて一方の単語が他方の単語の文脈として出現した回数とに基づいて、前記単語ベクトル及び文脈ベクトルの各々の各ブロックが、前記Ｓ種類の実数ベクトルの何れかとなる制約の下で、前記単語ベクトル及び文脈ベクトルの各々の各ブロックの尤もらしさを表す目的関数を最適化するように、前記単語の各々についての単語ベクトル及び文脈ベクトルの各ブロックの実数値ベクトルを推定するステップ
を含む単語ベクトル学習方法。
【請求項５】
前記学習部が推定するステップは、
更新部が、以下の式により表される、前記目的関数を最適化するように、単語ｉの各々についての単語ベクトルの各ブロックｒｉ,b及び単語ｊの各々についての文脈ベクトルの各ブロックｃｊ,bの実数ベクトルを更新するステップと、
反復判定部が、予め定められた反復終了条件を満たすまで、前記更新部による更新を繰り返させるステップと、を含む請求項４記載の単語ベクトル学習方法。
【数２】
0006586026.tif 000019
ただし、Ｄは、文書データで出現する、前記単語と、前記単語の文脈として出現する単語とのペアの集合を表し、αｉ,ｂ、βｉ,ｂは、ラグランジュ未定乗数であり、ｕｉ,ｂ、ｖｊ,ｂは、次元数Ｆの実数ベクトルである補助パラメタであり、ρは、定数であり、ζは、次元数ＦのＳ種類の実数ベクトルの集合を表し、Ｘｉ，ｊは単語ｉに対して単語ｊが文脈として出現した回数を表す。
【請求項６】
自然言語処理部が、入力された入力文書に対して、請求項４又は５記載の単語ベクトル学習装置で学習された各単語の前記単語ベクトルを用いて、前記単語ベクトルに基づく単語間の意味的な類似度に基づく自然言語処理を行うステップ
を含む自然言語処理方法。
【請求項７】
コンピュータを、請求項１又は請求項２に記載の単語ベクトル学習装置を構成する各部として機能させるためのプログラム。
【請求項８】
コンピュータを、請求項３に記載の自然言語処理装置を構成する各部として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、単語ベクトル学習装置、自然言語処理装置、方法、及びプログラムに係り、特に、単語に関する単語ベクトルを学習する単語ベクトル学習装置、自然言語処理装置、方法、及びプログラムに関する。
【背景技術】
【０００２】
個々の単語は離散シンボルであり、かつ物理現象などに基づくものでもないことから、単語間の類似度を定量的に表現するのはそれほど単純ではない。比較として、例えば音声は、計算機上では一般的に周波数の時系列データとして捉えられる。よって、任意の音声区間同士の類似度は、周波数から算出できる様々な特徴量（連続値）をベクトル化したものの間で距離を計算することで、ある程度計測することができる。同様に、画像間の類似度も画素情報を特徴量としてベクトル化したものの間で距離を計算することである程度容易に計算できる。このように、波形であったり色彩であったり物理的な現象を基とするものの間の類似度は、計算機上でも比較的自然に扱うことが可能であるが、言語のような離散的なシンボルで記述された物理現象にも則さないものの間の類似度は、計算機上で単純には扱えない。このような背景から、単語のような離散シンボル間の類似度を計算するために、これまで様々な方法論が考案されている。そのひとつに分散意味表現という方法がある。これは、音声や画像と同様に、各単語に一つのベクトルを割り振り、そのベクトル間の距離をもって単語間の意味的な類似度を表現しようと試みる方法である。ベクトル空間内の距離計算で単語間の意味的な近さを表現するので、計算機にとっては非常に親和性が高い方法と言える。
【０００３】
図８に分散意味表現による単語間の類似度の概要を示す。
【０００４】
ここでは、ｉ番目の単語をｗｉと表す。また、ｉ番目の単語ｗｉに割り当てられたベクトルをｒｉで表す。以降、単語に割り振られたベクトルのことを特別に「単語ベクトル」と呼ぶこととする。つまり、単語ｗｉの単語ベクトルはｒｉである。この時、計算機上の計算としては、二つの単語ｗｉとｗｊ間の類似度は、ｗｉ、ｗｊの単語ベクトル間の内積、或いは、コサイン距離により定義するのが一般的である。
【０００５】
【数１】
0006586026.tif 000002
【０００６】
この場合、値が大きければ大きいほど単語ｗｉとｗｊは似ているということを意味する。これによって、翻訳、対話、文書要約、文書校正といった言語処理の様々なアプリケーションの中で意味的に類似性がある単語を処理の中で扱えるようになる利点がある。結果として、単語間の意味的な近さを用いない処理方式より良い結果が得られることが示されている。
【０００７】
ここで、各単語の単語ベクトルの獲得方法には、これまで多くの方法が提案されている。基本的な方法論としては、まず文章内の各単語に対して、その単語の文脈情報を定義する。文脈情報に特に規定はなく様々な情報を用いることができるが、最も単純には各単語の周辺に出現する単語を文脈情報として扱う場合がほとんどである。文脈の定義を変更しても、単語ベクトルの推定アルゴリズムそのものにはあまり影響を与えない。よって、以降の議論では、単語の文脈情報としては、周辺に出現する単語とする。
【０００８】
近年では、ｗｅｂから得られるような大規模なデータにも対応できるほど高速に処理可能な方法が主流となっている（非特許文献１及び非特許文献２参照）。大規模データが扱える手法が主流な理由は、データが多ければ多いほど、言語事象を的確に捉えることが可能となるため、類似度の推定精度が向上することが理論的にも期待できるからである。ここでは従来方式の代表として、非特許文献２に即した単語ベクトルの獲得方法を述べる。
【０００９】
この方式では、単語がある単語の文脈として出現した場合を表現するために、各単語に単語ベクトルとは別のもう一つのベクトルを割り当てる。これを単語ベクトルと対比して便宜上「文脈ベクトル」と呼ぶ。つまり、ｉ番目の単語ｗｉは、単語ベクトルｒｉと文脈ベクトルｃｉの二つのベクトルを持つ。語彙数Ｖとする。この時に、（ｒｉ）ｉ＝１Ｖを全ての単語ベクトルをｉ＝１からＶまで順番に並べたベクトルのリストとする。同様に、（ｃｉ）ｉ＝１Ｖを全ての文脈ベクトルをｉ＝１からＶまで順番に並べたベクトルのリストとする。表記を簡単にするためＲ＝（ｒｉ）ｉ＝１Ｖ、Ｃ＝（ｃｉ）ｉ＝１Ｖとする。また、ｉ番目の単語に対してｊ番目の単語が文脈となった回数をＸｉ，ｊとする。この時、非特許文献２に即した分散意味表現の獲得には以下の目的関数を最小化する問題で定式化できる。
【００１０】
【数２】
0006586026.tif 000003
【００１１】
ただし、＾Ｒ＝（＾ｒｉ）ｉ＝１Ｖおよび＾Ｃ＝（＾ｃｉ）ｉ＝１Ｖは、単語ベクトルおよび文脈ベクトルの推定結果を表す。また、φは重み係数をＸｉ，ｊから計算するための関数である。
【００１２】
最終的に得られた＾ｒｉがｉ番目の単語の単語ベクトルである。これが、（２）式の類似度計算などで用いられる単語ベクトルとなる。また、翻訳、文書校正といった自然言語処理の応用アプリケーションで利用される。
【先行技術文献】
【非特許文献】
【００１３】
【非特許文献１】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.
【発明の概要】
【発明が解決しようとする課題】
【００１４】
前述の非特許文献２のような現在主流に用いられている方法の課題は、扱う「単語数」や出力となるベクトル空間の「次元数」が大きくなると、最終的に得られる単語ベクトルの結果を保持するのに必要なメモリ量が大きい点があげられる。
【００１５】
ファイルサイズは、そのまま実行時のメモリ占有量と同じとなる。メモリ占有量は、携帯端末等の限定されたリソースしか持たない計算環境で、非常に大きな問題となる可能性がある。また、一般的な計算機上での実行時にも、近年のマルチコアな計算機上で同時に複数実行する際や、他のプログラムになるべく影響を与えないという観点で、メモリ占有量は極力少ないことが望まれる。
【００１６】
本発明は、上記問題点を解決するために成されたものであり、必要なメモリ容量を削減することができる単語ベクトルを学習することができる単語ベクトル学習装置、方法、及びプログラムを提供することを目的とする。
【００１７】
また、学習された単語ベクトルを用いて、単語の意味的な類似度に基づく自然言語処理を行う自然言語処理装置、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１８】
上記目的を達成するために、第１の発明に係る単語ベクトル学習装置は、文書データに基づいて、単語の各々について、前記単語に関するＤ次元の単語ベクトル、及び前記単語が他の単語の文脈として出現することを表すＤ次元の文脈ベクトルを学習する単語ベクトル学習装置であって、前記単語ベクトル及び文脈ベクトルの各々を、次元数ＦのＢ個のブロックに分割し、次元数ＦのＳ種類の実数ベクトルの集合と、前記文書データにおいて単語ペアについて一方の単語が他方の単語の文脈として出現した回数とに基づいて、前記単語ベクトル及び文脈ベクトルの各々の各ブロックが、前記Ｓ種類の実数ベクトルの何れかとなる制約の下で、前記単語ベクトル及び文脈ベクトルの各々の各ブロックの尤もらしさを表す目的関数を最適化するように、前記単語の各々についての単語ベクトル及び文脈ベクトルの各ブロックの実数値ベクトルを推定する学習部、を含んで構成されている。
【００１９】
また、第１の発明に係る単語ベクトル学習装置において、前記学習部は、以下の式により表される、前記目的関数を最適化するように、単語ｉの各々についての単語ベクトルの各ブロックｒｉ,b及び単語ｊの各々についての文脈ベクトルの各ブロックｃｊ,bの実数ベクトルを更新する更新部と、予め定められた反復終了条件を満たすまで、前記更新部による更新を繰り返させる反復判定部と、を含むようにしてもよい。
【数３】
0006586026.tif 000004
ただし、Ｄは、文書データで出現する、前記単語と、前記単語の文脈として出現する単語とのペアの集合を表し、αｉ,ｂ、βｉ,ｂは、ラグランジュ未定乗数であり、ｕｉ,ｂ、ｖｊ,ｂは、次元数Ｆの実数ベクトルである補助パラメタであり、ρは、定数であり、ζは、次元数ＦのＳ種類の実数ベクトルの集合を表し、Ｘｉ，ｊは単語ｉに対して単語ｊが文脈として出現した回数を表す。
【００２０】
第２の発明に係る自然言語処理装置は、入力された入力文書に対して、請求項１又は２記載の単語ベクトル学習装置で学習された各単語の前記単語ベクトルを用いて、前記単語ベクトルに基づく単語間の意味的な類似度に基づく自然言語処理を行う自然言語処理部、を含んで構成されている。
【００２１】
第３の発明に係る単語ベクトル学習方法は、文書データに基づいて、単語の各々について、前記単語に関するＤ次元の単語ベクトル、及び前記単語が他の単語の文脈として出現することを表すＤ次元の文脈ベクトルを学習する単語ベクトル学習装置における単語ベクトル学習方法であって、学習部が、前記単語ベクトル及び文脈ベクトルの各々を、次元数ＦのＢ個のブロックに分割し、次元数ＦのＳ種類の実数ベクトルの集合と、前記文書データにおいて単語ペアについて一方の単語が他方の単語の文脈として出現した回数とに基づいて、前記単語ベクトル及び文脈ベクトルの各々の各ブロックが、前記Ｓ種類の実数ベクトルの何れかとなる制約の下で、前記単語ベクトル及び文脈ベクトルの各々の各ブロックの尤もらしさを表す目的関数を最適化するように、前記単語の各々についての単語ベクトル及び文脈ベクトルの各ブロックの実数値ベクトルを推定するステップ、を含んで実行することを特徴とする。
【００２２】
また、第１の発明に係る単語ベクトル学習装置において、前記学習部が推定するステップは、更新部が、以下の式により表される、前記目的関数を最適化するように、単語ｉの各々についての単語ベクトルの各ブロックｒｉ,b及び単語ｊの各々についての文脈ベクトルの各ブロックｃｊ,bの実数ベクトルを更新するステップと、反復判定部が、予め定められた反復終了条件を満たすまで、前記更新部による更新を繰り返させるステップと、を含むようにしてもよい。
【数４】
0006586026.tif 000005
ただし、Ｄは、文書データで出現する、前記単語と、前記単語の文脈として出現する単語とのペアの集合を表し、αｉ,ｂ、βｉ,ｂは、ラグランジュ未定乗数であり、ｕｉ,ｂ、ｖｊ,ｂは、次元数Ｆの実数ベクトルである補助パラメタであり、ρは、定数であり、ζは、次元数ＦのＳ種類の実数ベクトルの集合を表し、Ｘｉ，ｊは単語ｉに対して単語ｊが文脈として出現した回数を表す。
【００２３】
第４の発明に係る自然言語処理装置は、自然言語処理部が、入力された入力文書に対して、請求項４又は５記載の単語ベクトル学習装置で学習された各単語の前記単語ベクトルを用いて、前記単語ベクトルに基づく単語間の意味的な類似度に基づく自然言語処理を行うステップを含んで実行することを特徴とする。
【００２４】
また、第５の発明に係るプログラムは、コンピュータを、第１の発明に係る単語ベクトル学習装置、又は第２の発明に係る自然言語処理装置を構成する各部として機能させるためのプログラムである。
【発明の効果】
【００２５】
本発明の単語ベクトル学習装置、方法、及びプログラムによれば、単語ベクトル及び文脈ベクトルの各々を、次元数ＦのＢ個のブロックに分割し、次元数ＦのＳ種類の実数ベクトルの集合と、一方の単語が他方の単語の文脈として出現した回数とに基づいて、各ブロックが、Ｓ種類の実数ベクトルの何れかとなる制約の下で、単語ベクトル及び文脈ベクトルの各々の各ブロックの尤もらしさを表す目的関数を最適化するように、単語の各々についての単語ベクトル及び文脈ベクトルの各ブロックの実数値ベクトルを推定することにより、必要なメモリ容量を削減することができる単語ベクトルを学習することができる、という効果が得られる。
【００２６】
また、本発明の自然言語処理装置、及びプログラムによれば、学習された単語ベクトルを用いて、単語の意味的な類似度に基づく自然言語処理を行うことができる、という効果が得られる。
【図面の簡単な説明】
【００２７】
【図１】単語リスト及び文脈の共起情報の例を示す図である。
【図２】単語ベクトルの一例を示す図である。
【図３】本発明の実施の形態に係る単語ベクトル学習装置の構成を示すブロック図である。
【図４】本発明の実施の形態に係る単語ベクトル学習装置の構成を示すブロック図である。
【図５】本発明の実施の形態に係る単語ベクトル学習装置における単語ベクトル学習処理ルーチンを示すフローチャートである。
【図６】本発明の実施の形態に係る単語ベクトル学習装置におけるベクトル更新処理ルーチンを示すフローチャートである。
【図７】本発明の実施の形態に係る自然言語装置における自然言語処理ルーチンを示すフローチャートである。
【図８】分散意味表現による単語間の類似度の概要を示す図である。
【発明を実施するための形態】
【００２８】
以下、図面を参照して本発明の実施の形態を詳細に説明する。
【００２９】
＜本発明の実施の形態に係る概要＞
【００３０】
まず、本発明の実施の形態における概要を説明する。
【００３１】
本発明では、本質的に、必要リソース量（ファイルサイズ、メモリ専有量など）は、どのような計算環境であれ少ないほうがよりよい、という一般的な考えに基づいて、単語ベクトルのサイズを圧縮するという課題に取り組む。
【００３２】
本発明の実施の形態では、上記（３）式の単語間の類似度はコサイン類似度によって計算されることから、コサイン類似度の値をなるべく変化させずに単語ベクトルが保持する情報量を削減することで、全体として容量を削減した単語ベクトルを得る、という考えに基づく。
【００３３】
まず、次元数Ｄの単語ベクトルを幾つかのブロックで分割する。例えば、単語ベクトルの「ブロック内の要素数」をＦ、「ブロック数」をＢとすると、Ｄ＝ＢＦの関係が成り立つ。例えば、Ｄ＝２５６、Ｆ＝３２、なら、Ｂ＝８となる。次に、各ブロックが取ることができる値集合の種類数を事前に決定する。例えば、「値集合の種類数」をＳとおく。
【００３４】
このとき、単語ベクトル内の個々のブロックは、値集合Ｓの中の一つを選択することとする。つまり、一つの単語ベクトルは、Ｂ個のブロックが個々に一つ選択した値集合の組み合わせによって表現されることになる。このとき、単語ベクトルが取り得る種類数はＳＢ個であり、その中の一つが単語ベクトルに割り当てられる問題に相当する。例えば、先ほどの例で１６種類の値集合を用意した場合は、一つの単語ベクトルは、１６８＝４,２９４,９６７,２９６通りの値を取ることができる。一般的に単語数は数百万規模、どんなに多くても数千万程度なので、４３億種類程度あれば、十分に単語の分散表現を表現できると考えられる。よって、上記（２）式や（３）式で示したような最適化問題を解くことによって、縮約された単語分散意味表現をデータから獲得する方法を用いる。
【００３５】
本発明の実施の形態では、ｗｅｂ上に存在する自然言語で記述された電子化文章を使って単語の分散意味表現を獲得する問題を題材として適用した単語ベクトル学習装置を例に説明する。
【００３６】
まず最初に、ある一日のＳＮＳサイト等へ投稿される一般ユーザが生成する文章を獲得し単語ベクトルを生成することを想定する。この時、用いる語彙数Ｖは、獲得したデータに出現する全ての単語の種類数とする。或いは、ある頻度以上出現した単語を対象として語彙を決定してもよい。
【００３７】
図１に単語リスト及び文脈の共起情報の例を示す。なお、ここで示す例では簡単のため、単語区切りなどは、一般的によく用いられるツール等を用いて容易に獲得可能であることを前提とする。日本語の場合は、フリーで利用できるツールが存在するし、英語であれば、空白区切りを単語の区切りとして利用すれば良い。ここでは日本語の例で述べる。
【００３８】
単語ベクトルの次元数Ｄを例えば２５６に設定する。また、語彙数Ｖが１００万語だったと仮定する。単語ベクトルの一例を図２に示す。
【００３９】
この設定で従来法を用いた場合は、２５６次元の単語ベクトルが１００万本構築されることになる。
【００４０】
また、この単語ベクトルは、上記（２）式の最適化問題を解くことによって獲得できる。
【００４１】
次に、本発明の実施の形態に適用した場合を考える。まず、ｉ番目の単語ベクトルｒｉをブロック毎に分割した際のｂ番目の部分ベクトルをｒｉ，ｂと記述する。このとき、ブロック数をＢとすると、ｒｉ，ｂのｂ＝１からｂ＝Ｂまでのベクトルを連結するとｒと一致する。
【００４２】
本発明の実施の形態では、上記（３）式の代わりに以下（４）式の最適化問題を解くことで単語ベクトルを獲得する。
【００４３】
【数５】
0006586026.tif 000006
【００４４】
ここで、ζは、次元数ＦのＳ種類の実数ベクトルの集合を表す。
【００４５】
従来法との大きな違いは、各単語ベクトルをブロック毎に分割し、ブロック単位のベクトルに対して、最適化を行うような形式になる点である。また各ブロックの値集合の種類がＳ種類となるように制約をかけながら学習が行われる点が大きな特徴となる。
【００４６】
次に、処理を簡単化するために、（４）式を以下のように変形する。
【００４７】
【数６】
0006586026.tif 000007
【００４８】
（４）式と（５）式は等価である。単純に、最適化中の処理として、ベクトルｒとｕ、ｃとｖに分解して処理を行うための式変形である。ｒ＝ｕ、ｃ＝ｖの等式制約を拡張ラグランジュ緩和法を用いて緩和すると以下（６）式を得る（参考文献１：Stephen Boyd, Neal Parikh, Eric Chu, Borja Peleato, and Jonathan Eckstein. Distributed Optimization and Statistical Learning via the Alternating Direction Method of Multipliers. Foundations and Trends in Machine Learning, 2011.）。
【００４９】
【数７】
0006586026.tif 000008
【００５０】
本発明の実施の形態では、（６）式を目的関数として用いる。なお、Ａ＝（αｉ）ｉ＝１Ｖ，Ｂ＝（βｊ）ｊ＝１Ｖである。
【００５１】
本発明の実施の形態の処理の流れを以下に示す。
【００５２】
（入力）
学習用データＤ、人手により決定するチューニングパラメタＤ,Ｂ,Ｆ,Ｔを入力する。
【００５３】
（初期化）
最適化変数Ｒ,Ｃを乱数で初期化し、繰り返しを管理する変数ｔ＝０と初期化する。
【００５４】
（処理１：更新）
勾配法などを用いて制約なしの状態で最適化パラメタＲ,Ｃを更新する。
【００５５】
（処理２：パラメタ調整）
全ての単語ベクトルのブロックで、値集合の種類数がＳ個になるように最適化パラメタＲ；Ｃを調整する。
【００５６】
（処理３）
ラグランジュ乗数を更新する。
【００５７】
（処理４：終了判定）
最適化が収束したか、或いは、事前に設定した規定回数Ｔに達したか判定終了判定が満たされていれば次の処理へ移行する。していなかったらｔ＝ｔ＋１として処理１へ戻る。
【００５８】
（処理５：縮約）
獲得された＾ｗに対してデータの保持方法を最適化する。
【００５９】
＜本発明の実施の形態に係る単語ベクトル学習装置の構成＞
【００６０】
次に、本発明の実施の形態に係る単語ベクトル学習装置の構成について説明する。図３に示すように、本発明の実施の形態に係る単語ベクトル学習装置１００は、ＣＰＵと、ＲＡＭと、後述する単語ベクトル学習処理ルーチンを実行するためのプログラムや各種データを記憶したＲＯＭと、を含むコンピュータで構成することが出来る。この単語ベクトル学習装置１００は、機能的には図３に示すように入力部１０と、演算部２０と、出力部５０とを備えている。
【００６１】
入力部１０は、学習用データ
【００６２】
【数８】
0006586026.tif 000009
【００６３】
（以下、文書データと称する）を受け付ける。文書データは、単語と、単語の文脈として出現する単語とのペア（ｗｉ,ｗｊ）の集合である。ｗｉ,ｗｊは、対象となる単語ｗｉと、その文脈となる単語ｗｊである。また、入力部１０は、人手により決定されたチューニングパラメタＤ,Ｂ,Ｆ,Ｔをそれぞれ受け付ける。これらの値は、以降の処理中で値が変化することはない。
【００６４】
演算部２０は、学習部３０と、ベクトル記憶部４０とを含んで構成されている。
【００６５】
学習部３０は、文書データにおける単語ベクトル及び文脈ベクトルの各々を、次元数ＦのＢ個のブロックに分割し、次元数ＦのＳ種類の実数ベクトルの集合と、文書データにおいて単語ペアについて一方の単語が他方の単語の文脈として出現した回数Ｘｉ，ｊとに基づいて、単語ベクトル及び文脈ベクトルの各々の各ブロックが、Ｓ種類の実数ベクトルの何れかとなる制約の下で、単語ベクトル及び文脈ベクトルの各々の各ブロックの尤もらしさを表す目的関数を最適化するように、単語の各々についての単語ベクトル及び文脈ベクトルの各ブロックの実数値ベクトルを推定する。
【００６６】
学習部３０は、更新部３２と、反復判定部３４とを備えている。
【００６７】
更新部３２は、上記（６）式により表される、目的関数を最適化するように、文書データで出現する、単語と、単語の文脈として出現する単語とのペアの集合
【００６８】
【数９】
0006586026.tif 000010
【００６９】
と、次元数Ｆの実数ベクトルである各ブロックの補助パラメタｕｉ,ｂ、ｖｊ,ｂと、各ブロックについてのラグランジュ未定乗数αｉ,ｂ、βｉ,ｂとに基づいて、単語ｉの各々についての単語ベクトルの各ブロックｒｉ,b及び単語ｊの各々についての文脈ベクトルの各ブロックｃｊ,bの実数ベクトルを更新する。
【００７０】
反復判定部３４は、予め定められた反復終了条件を満たすまで、更新部３２による更新を繰り返させる。ここで反復終了条件は、繰り返し数Ｔの回数だけ更新部３２の更新を繰り返すこととする。
【００７１】
更新部３２の具体的な処理について以下に説明する。
【００７２】
更新部３２は、まず最適化変数Ｒ,Ｃ,Ｕ,Ｖを乱数で初期化する。また、繰り返し数を管理する変数ｔをｔ＝０で初期化する。α、βも同様にα＝０、β＝０と初期化する。
【００７３】
このとき、単語ベクトル集合Ｒ、及び文脈ベクトル集合Ｃのみを最適化変数と考え、補助パラメタ集合のＵ,Ｖを固定した場合の目的関数は以下（７）式のようになる。
【００７４】
【数１０】
0006586026.tif 000011
【００７５】
上記（７）式の単語ベクトルのブロックｒｉ，ｂと文脈ベクトルのブロックｃｊ，ｂとの勾配は以下（８）式及び（９）式のように書ける。
【００７６】
【数１１】
0006586026.tif 000012
【００７７】
よって、勾配法を用いて、上記（８）式、（９）式に従って、単語ベクトルのブロックｒｉ，ｂと文脈ベクトルのブロックｃｊ，ｂとを更新していく。
【００７８】
次に、補助パラメタｕ,ｖを更新する。（６）式に関して、補助パラメタｕ,ｖのみを最適化変数と考え、ｕ,ｖを固定した場合の目的関数は以下（１０）式のようになる。
【００７９】
【数１２】
0006586026.tif 000013
【００８０】
ただし、
【００８１】
【数１３】
0006586026.tif 000014
【００８２】
とする。
【００８３】
この問題は、ユークリッド距離に基づくｋ平均クラスタリング問題と等価になる。よって、例えば、一般的なｋ平均クラスタリング法を用いて（１０）式を解くことにより、補助パラメータｕｉ，ｂ,ｖｊ，ｂを更新する。
【００８４】
次に、Ｒ,Ｃ,Ｕ,Ｖを固定し、ラグランジュ未定乗数αｉ,ｂ及びβｉ,ｂを最適化変数として更新する。
【００８５】
【数１４】
0006586026.tif 000015
【００８６】
この関係から以下の更新式を得る。勾配法を用いて、（１３）（１４）式に従って、ラグランジュ未定乗数αｉ,ｂ及びβｉ,ｂを更新する。
【数１５】
0006586026.tif 000016
ただし、ηは学習率を表す。
【００８７】
次に、反復判定部３４による終了判定を行う。基本的に、終了判定は、事前に設定した繰り返し数Ｔに達したかどうかで判定する。ｔ＝Ｔの時、終了と判定し単語ベクトルの保存へ進む。ｔ＜Ｔの時には、ｔ＝ｔ＋１として更新部３２の最初の処理へ戻る。
【００８８】
学習部３０は、最後に、更新部３２で更新された学習後の単語ベクトル及び文脈ベクトルの実数値ベクトルを適切な形式でベクトル記憶部４０に保存する。単語ベクトルの各ブロックは、Ｓ種類の値集合の中一つを取るので［ｌｏｇＳ］ｂｉｔで記述できる。よって、一つの単語ベクトルはＢ［ｌｏｇＳ］ｂｉｔとなる。結果、全語彙の単語ベクトルでは、ＶＢ［ｌｏｇＳ］ｂｉｔになる。同様に、全語彙の文脈ベクトルもＶＢ［ｌｏｇＳ］ｂｉｔで保存できる。また、一つの値集合は、倍精度浮動小数点（６４ｂｉｔ）がＦ個で構成されるので、Ｓ個の値集合全体は、６４ＳＦｂｉｔで表現できる。
【００８９】
最終的に、２ＶＢ［ｌｏｇＳ］＋６４ＳＦｂｉｔで全語彙の単語ベクトルおよび文脈ベクトルが格納可能である。よって、Ｖ＝１,００００,００、Ｂ＝８、Ｓ＝１６、Ｆ＝３２のとき、最終的に、２×１,００００,００×８×４＋６４×１６×３２＝６４,０３２,７６８ｂｉｔ（約８ＭＢ）で全語彙の単語ベクトルおよび文脈ベクトルが格納可能である。
【００９０】
＜本発明の実施の形態に係る自然言語処理装置の構成＞
【００９１】
次に、本発明の実施の形態に係る自然言語処理装置の構成について説明する。図４に示すように、本発明の実施の形態に係る自然言語処理装置２００は、ＣＰＵと、ＲＡＭと、後述する自然言語処理ルーチンを実行するためのプログラムや各種データを記憶したＲＯＭと、を含むコンピュータで構成することが出来る。この自然言語処理装置２００は、機能的には図４に示すように入力部２１０と、演算部２２０と、出力部２５０とを備えている。本実施の形態では、自然言語処理装置２００では、単語ベクトル学習装置１００により学習された単語ベクトルに基づいて、未知の単語を類似度の高い単語に置き換えて翻訳を行う場合を例に説明するが、これに限定されるものではなく、置き換えた単語を用いて要約、文書校正などを行ってもよい。
【００９２】
入力部２１０は、翻訳対象のテキストを受け付ける。
【００９３】
演算部２２０は、自然言語処理部２３０と、ベクトル記憶部２４０とを備えている。
【００９４】
ベクトル記憶部２４０には、ベクトル記憶部４０と同じものが記憶されている。
【００９５】
自然言語処理部２３０は、置換部２３２と、翻訳部２３４とを備えている。
【００９６】
置換部２３２は、入力部２１０で受け付けたテキストの単語のうち、単語を格納した既存の辞書（図示省略）にない未知の単語を抽出し、ベクトル記憶部４０に記憶されている単語に対する文脈ベクトルに基づいて、未知の単語に対して最も類似度が高い、辞書中の単語を推定する。そして、未知の単語を、推定された辞書中の単語に置き換えたテキストを生成する。
【００９７】
翻訳部２３４は、置換部２３２により単語が置き換えられたテキストを既存の手法により翻訳し、出力部２５０に出力して処理を終了する。
【００９８】
なお、自然言語処理装置２００において、他の自然言語処理を行う際に、特定の文書中に出現する単語と類似する単語を辞書から抽出して、処理対象に含めることで、情報を増やして精度を向上させることが可能である。この際、出現した各単語に対して、上記（１）式を計算して類似度が高い単語を処理に含めるといったことを行う。
【００９９】
＜本発明の実施の形態に係る単語ベクトル学習装置の作用＞
【０１００】
次に、本発明の実施の形態に係る単語ベクトル学習装置１００の作用について説明する。入力部１０において文書データ、及びチューニングパラメタＤ,Ｂ,Ｆ,Ｔを受け付けると、単語ベクトル学習装置１００は、図５に示す単語ベクトル学習処理ルーチンを実行する。
【０１０１】
まず、ステップＳ１００では、最適化変数Ｒ,Ｃ,Ｕ,Ｖを乱数で初期化する。また、繰り返し数を管理する変数ｔをｔ＝０で初期化する。α、βも同様にα＝０、β＝０と初期化する。
【０１０２】
次に、ステップＳ１０２では、上記（６）式により表される、目的関数を最適化するように、文書データで出現する、単語と、単語の文脈として出現する単語とのペアの集合
【０１０３】
【数１６】
0006586026.tif 000017
【０１０４】
と、次元数Ｆの実数ベクトルである各ブロックの補助パラメタｕｉ,ｂ、ｖｊ,ｂと、各ブロックについてのラグランジュ未定乗数αｉ,ｂ、βｉ,ｂとに基づいて、単語ｉの各々についての単語ベクトルの各ブロックｒｉ,b及び単語ｊの各々についての文脈ベクトルの各ブロックｃｊ,bの実数ベクトルを更新する。
【０１０５】
上記ステップＳ１０２は具体的には、図６に示す以下のステップＳ１２０〜Ｓ１２４により行われる。
【０１０６】
ステップＳ１２０では、勾配法を用いて、上記（８）式、（９）式に従って、単語ベクトルのブロックｒｉ，ｂと文脈ベクトルのブロックｃｊ，ｂとを更新する。
【０１０７】
ステップＳ１２２では、（１０）式に従って、補助パラメタｕ,ｖを更新する。
【０１０８】
ステップＳ１２４では、Ｒ,Ｃ,Ｕ,Ｖを固定し、上記（１３）式、（１４）式に従って、ラグランジュ未定乗数αｉ,ｂ及びβｉ,ｂを最適化変数として更新する。
【０１０９】
ステップＳ１０４では、反復終了条件を満たすかを判定する。ｔ＝Ｔの時、終了と判定しステップＳ１１０の単語ベクトルの保存へ進み、ｔ＜Ｔの時には、ステップＳ１０６でｔ＝ｔ＋１としてステップＳ１０２の処理へ戻る。
【０１１０】
ステップＳ１０８では、ステップＳ１０２で更新された学習後の単語ベクトル及び文脈ベクトルの実数値ベクトルを適切な形式でベクトル記憶部４０に保存し、処理を終了する。
【０１１１】
以上説明したように、本発明の実施の形態に係る単語ベクトル学習装置によれば、単語ベクトル及び文脈ベクトルの各々を、次元数ＦのＢ個のブロックに分割し、次元数ＦのＳ種類の実数ベクトルの集合と、一方の単語が他方の単語の文脈として出現した回数とに基づいて、各ブロックが、Ｓ種類の実数ベクトルの何れかとなる制約の下で、単語ベクトル及び文脈ベクトルの各々の各ブロックの尤もらしさを表す目的関数を最適化するように、単語の各々についての単語ベクトル及び文脈ベクトルの各ブロックの実数値ベクトルを推定することにより、必要なメモリ容量を削減することができる単語ベクトルを学習することができる。
【０１１２】
＜本発明の実施の形態に係る自然言語処理装置の作用＞
【０１１３】
次に、本発明の実施の形態に係る自然言語処理装置２００の作用について説明する。入力部２１０において翻訳対象のテキストを受け付けると、自然言語処理装置２００は、図７に示す自然言語処理ルーチンを実行する。
【０１１４】
ステップＳ２００では、入力部２１０で受け付けた翻訳対象のテキストから未知の単語を抽出する。
【０１１５】
ステップＳ２０２では、ベクトル記憶部２４０に記憶されている各単語の単語ベクトルに基づいて、ステップＳ２００で抽出された未知の単語に対して最も類似度が高い、辞書中の単語を推定し、翻訳対象のテキストについて、未知の単語を、推定された辞書中の単語に置き換えたテキストを生成する。
【０１１６】
ステップＳ２０４では、ステップＳ２０２で生成されたテキストに基づいて翻訳し、出力部２５０に出力して処理を終了する。
【０１１７】
以上説明したように、本発明の実施の形態に係る自然言語処理装置によれば、学習された単語ベクトルを用いて、単語の意味的な類似度に基づく翻訳処理を行うことができる。
【０１１８】
なお、本発明は、上述した実施の形態に限定されるものではなく、この発明の要旨を逸脱しない範囲内で様々な変形や応用が可能である。
【符号の説明】
【０１１９】
１０、２１０  入力部
２０、２２０  演算部
３０   学習部
３２   更新部
３４   反復判定部
４０   ベクトル記憶部
５０、２５０  出力部
１００ 単語ベクトル学習装置
２００ 自然言語処理装置
２３０ 自然言語処理部
２３２ 置換部
２３４ 翻訳部
２４０ ベクトル記憶部
【図１】
0006586026.tif 000020
【図２】
0006586026.tif 000021
【図３】
0006586026.tif 000022
【図４】
0006586026.tif 000023
【図５】
0006586026.tif 000024
【図６】
0006586026.tif 000025
【図７】
0006586026.tif 000026
【図８】
0006586026.tif 000027