(57)【要約】【課題】コンピュータの計算量を抑えることができ、単語の特徴量を損なうことなく汎用単語ベクトルに固有単語ベクトルを簡単に加えられるようにする。【解決手段】  結合対象の２つの単語ベクトルリストを入力する入力手段２と、単語ベクトルリストの次元を同一次元に次元調整する次元調整手段３と、単語ベクトルリストと次元調整された単語ベクトルリストから、共通単語ベクトルリストを生成する共通単語ベクトルリスト生成手段４と、共通単語ベクトルリストを次元削減し、出力単語ベクトル空間を生成する出力ベクトル空間生成手段５と、単語ベクトルリストの単語ベクトル空間から出力単語ベクトル空間への変換行列を計算する変換行列生成手段６と、変換行列を使用して単語ベクトルリストの全単語を出力単語ベクトル空間にマッピングして出力単語ベクトルリストを出力するマッピング手段７と、を有する。【選択図】図２
2020077228.tif 000002
【特許請求の範囲】
【請求項１】
結合対象の２つの単語ベクトルリストＷ１（ｎ次元ベクトル空間），Ｗ２（ｍ次元ベクトル空間）（ｎ≦ｍ）を入力する入力手段と、
前記単語ベクトルリストＷ１，Ｗ２の次元を同一次元になるように調整する次元調整手段と、
前記次元調整された単語ベクトルリストＷ１と単語ベクトルリストＷ’２の共通の単語の単語ベクトルを連結し、共通単語ベクトルリストＭｉｎｔｅｒｓｅｃｔを生成する共通単語ベクトルリスト生成手段と、
前記共通単語ベクトルリストＭｉｎｔｅｒｓｅｃｔを次元削減し、出力単語ベクトル空間Ｗｒｅｓｕｌｔ，ｉｎｔｅｒｓｅｃｔを生成する出力ベクトル空間生成手段と、
前記単語ベクトルリストＷ１，Ｗ２の単語ベクトル空間Ｗ１，ｉｎｔｅｒｓｅｃｔ，Ｗ２，ｉｎｔｅｒｓｅｃｔから前記出力単語ベクトル空間Ｗｒｅｓｕｌｔ，ｉｎｔｅｒｓｅｃｔへの変換行列Ｔ１，Ｔ２を計算する変換行列生成手段と、
前記変換行列Ｔ１，Ｔ２を使用して前記単語ベクトルリストＷ１，Ｗ２の全単語を出力単語ベクトル空間にマッピングして出力単語ベクトルリストＷｒｅｓｕｌｔを出力するマッピング手段と、
を有することを特徴とする単語ベクトルリスト生成装置。
【請求項２】
請求項１記載の単語ベクトルリスト生成装置であって、
前記出力単語ベクトルリストＷｒｅｓｕｌｔの行列に、知識ベースから自己関連性ウェイトと関連語の関連性ウェイトによる補正を行う知識注入手段、を有することを特徴とする単語ベクトルリスト生成装置。
【請求項３】
請求項１または２に記載の単語ベクトルリスト生成装置であって、
前記出力ベクトル空間生成手段は、ＳＶＤ（特異値分解：ｓｉｎｇｕｌａｒ  ｖａｌｕｅ  ｄｅｃｏｍｐｏｓｉｔｉｏｎ）、または、ＰＣＡ（主成分分析：ｐｒｉｎｃｉｐａｌ  ｃｏｍｐｏｎｅｎｔ  ａｎａｌｙｓｉｓ）により、前記共通単語ベクトルリストＭｉｎｔｅｒｓｅｃｔ（ｎ＋ｎ次元ベクトル空間）を次元削減することを特徴とする単語ベクトルリスト生成装置。
【請求項４】
請求項１〜３のいずれかに記載の単語ベクトルリスト生成装置であって、
前記次元調整手段は、ＳＶＤ（特異値分解：ｓｉｎｇｕｌａｒ  ｖａｌｕｅ  ｄｅｃｏｍｐｏｓｉｔｉｏｎ）、または、ＰＣＡ（主成分分析：ｐｒｉｎｃｉｐａｌ  ｃｏｍｐｏｎｅｎｔ  ａｎａｌｙｓｉｓ）により、次元削減することを特徴とする単語ベクトルリスト生成装置。
【請求項５】
結合対象の２つの単語ベクトルリストＷ１（ｎ次元ベクトル空間），Ｗ２（ｍ次元ベクトル空間）（ｎ≦ｍ）を入力する工程と、
前記単語ベクトルリストＷ１，Ｗ２の次元を同一次元になるように調整する工程と、
前記次元調整された単語ベクトルリストＷ１と単語ベクトルリストＷ’２の共通の単語の単語ベクトルを連結し、共通単語ベクトルリストＭｉｎｔｅｒｓｅｃｔを生成する工程と、
前記共通単語ベクトルリストＭｉｎｔｅｒｓｅｃｔを次元削減し、出力単語ベクトル空間Ｗｒｅｓｕｌｔ，ｉｎｔｅｒｓｅｃｔを生成する工程と、
前記単語ベクトルリストＷ１，Ｗ２の単語ベクトル空間Ｗ１，ｉｎｔｅｒｓｅｃｔ，Ｗ２，ｉｎｔｅｒｓｅｃｔから前記出力単語ベクトル空間Ｗｒｅｓｕｌｔ，ｉｎｔｅｒｓｅｃｔへの変換行列Ｔ１，Ｔ２を計算する工程と、
前記変換行列Ｔ１，Ｔ２を使用して前記単語ベクトルリストＷ１，Ｗ２の全単語を出力単語ベクトル空間にマッピングして出力単語ベクトルリストＷｒｅｓｕｌｔを出力する工程と、
を有することを特徴とする単語ベクトルリスト生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、単語ベクトルリストを生成する装置と方法に関する。
【背景技術】
【０００２】
自然言語処理は、人間が意味を解する言語（自然言語）を、コンピュータを用いて解析する処理である。自然言語をコンピュータで解析しようとすると、文章を構成する単語、助詞等の単位を特定し、単位の意味を特定しなければならない。このため、従前からコンピュータによる自然言語処理の分野では、文章を最小単位（形態素）に分解する形態素解析や、構文解析や、語義判別等の処理が試みられていた。しかし、人間が使用する言語は、単語の区切り、語義、構文等に曖昧さを伴う。さらに、不完全な文章や間違った文章も使用される。このため、従前の技術では限界があった。
【０００３】
これに対して近年は、機械学習によるディープラーニングの技術が急速に進展し、単語の属性や潜在的な意味まで考慮した自然言語処理が行われるようになった。このディープラーニングの自然言語処理の適用分野は、機械翻訳、対話、感情分析等に急速に拡大している。
【０００４】
ディープラーニングによる自然言語処理は、単語とその要素との関係（単語の特徴量）を機械学習し、単語の特徴量に基づいて文章内の単語の正しさの評価等をするものである。ここで、単語の「要素」とは、単語と潜在的に関係を有する他の単語をいう。例えば、「東京」という単語に対して、地理的に潜在的な関係を有する「ヨーロッパ」や、地形的に潜在的な関係を有する「島」や、人口の集積度の面から潜在的な関係を有する「大都会」は、「東京」の要素である。「東京」という単語は、複数の要素との関係で特徴付けることができる。つまり、単語は、該単語を表す複数の要素との関係の強さを数値化して定義することができる。要素との関係を表した数値のセットにより、単語をベクトル化することができる。単語をベクトル化することによって単語間の近さを数値計算することができる。それによって、ある単語が所定の文章内で使用された場合に、その使用された文章（他の単語）との適合性から、単語の正しさや意味の推測等を行うことができる。
【０００５】
現在、大量の文章から単語をベクトル化した「単語ベクトルリスト」が、複数の企業や研究所によって提供されている。これらの単語ベクトルリストは、大量の一般的な文章から機械学習されるため、汎用的な単語の単語ベクトル（汎用単語ベクトル）が生成される傾向にある。
【０００６】
また、汎用単語ベクトルリストは、大量の文章から一括して機械学習されるため、膨大な量の機械学習の後は頻繁に追加の文章を取り入れて学習することは困難であった。
【０００７】
汎用の単語に対して、現実の世界では新製品名や新組織名等が次々に生成され、新しい単語が生成される。また、特定の企業や組織内では従来から固有の単語を使用することが多い。このため、新しい単語や固有の単語（これらをまとめて「固有単語」という）について、特化した単語ベクトルリスト（固有単語ベクトルリスト）が個別的作成されている。
【０００８】
しかし、固有単語が使用される分野でも汎用単語が使用されるため、汎用単語ベクトルリストを固有単語ベクトルリストで補完した単語ベクトルリストが必要であった。
【０００９】
この要求に対して、非特許文献１は、異なる単語ベクトルリスト（単語ベクトル空間）を結合する技術を提案している。
【００１０】
方法１として、結合する２つの単語ベクトルリストをＷ１（ｎ次元ベクトル空間）、Ｗ２（ｍ次元ベクトル空間）（ｎ≦ｍ）とする。単語ｗａのＷ１におけるベクトルをｗａ，１、ｗａのＷ２におけるベクトルをｗａ，２とする。最初に、Ｗ１，Ｗ２に共通して含まれる単語について、ベクトルを連結した単語ベクトルリストＭ（ｎ＋ｍ次元ベクトル空間）を生成する。
【００１１】
次に、Ｗ１にのみ含まれる単語ベクトルｗａ，１について、Ｗ１，Ｗ２に共通して含まれる単語ベクトルの中でｗａ，１との類似度が高い上位５つの単語ベクトルを取得する。取得した５つの単語ベクトルのＷ２でのベクトルの平均をｗａ，２とし、ｗａ，１とｗａ，２を連結したベクトルをＭに追加する。この処理をＷ１にのみ含まれる全単語ベクトルについて行う。同様に、Ｗ２にのみ含まれる単語ベクトルについても同じ処理を行う。
【００１２】
このようにして得られたＭについて、ＳＶＤ（特異値分解：ｓｉｎｇｕｌａｒ  ｖａｌｕｅ  ｄｅｃｏｍｐｏｓｉｔｉｏｎ）を用いて次元削減を行う。すなわち、
【００１３】
【数１】
2020077228.tif 000003
【００１４】
【数２】
2020077228.tif 000004
【００１５】
ここで、Ｍがｐ×ｑの行列とすると、Ｕはｐ×ｐの直交行列、Ｖはｑ×ｑの直交行列、Σはｐ×ｑの行列であって、対角成分が非負で大きさの順に特異値が並んだ行列になる。ｓｑｒｔ（Σ）はΣの対角成分の平方根を示している。Ｕ・ｓｑｒｔ（Σ）は、行列Ｕと、行列Σの各特異ベクトルの特異値の二乗根の内積を示している。ｄｉｍ＿ｒｅｄｕｃｔ（）は、次元削減するという意味のここで定義した関数であって、かっこ内の行列の特異値の大きいものから所定の次元を切り出して次元削減をするという意味である。
【００１６】
方法２として、非特許文献１の技術は、結合する２つの単語ベクトルリストをＷ１（ｎ次元ベクトル空間）、Ｗ２（ｍ次元ベクトル空間）（ｎ≦ｍ）とし、Ｗ１とＷ２を連結して単語ベクトルリストＭ（ｎ＋ｍ次元ベクトル空間）を生成する。
【００１７】
次に、Ｍから一部をサンプリングしてＭｓａｍｐｌｅを生成し、ＳＶＤを用いて変換行列を得る。すなわち、
【００１８】
【数３】
2020077228.tif 000005
【００１９】
【数４】
2020077228.tif 000006
【００２０】
【数５】
2020077228.tif 000007
【００２１】
ここで、ｄｉｍ＿ｒｅｄｕｃｔ（）はすでに説明したここで定義した関数であって、ｎ＋ｍ次元の行列から特異値の大きいｋ次元を切り出すという意味である。
【００２２】
次に、得られた変換行列で、連結した単語ベクトルを射影して、ｓの各要素の二乗根で対応する行ベクトルを除算する。すなわち、
【００２３】
【数６】
2020077228.tif 000008
【００２４】
【数７】
2020077228.tif 000009
【先行技術文献】
【非特許文献】
【００２５】
【非特許文献１】ｌｕｍｉｎｏｓｏ−ｂｅａｕｄｏｉｎ、他３名、“ｃｏｎｃｅｐｔｎｅｔ５／ｃｏｎｃｅｐｔｎｅｔ５／ｖｅｃｔｏｒｓ／ｍｅｒｇｅ．ｐｙ”、［ｏｎｌｉｎｅ］、２０１８年６月６日、［２０１８年７月１７日検索］、ＧｉｔＨｕｂ、インターネット〈ＵＲＬ：ｈｔｔｐｓ：／／ｇｉｔｈｕｂ．ｃｏｍ／ｃｏｍｍｏｎｓｅｎｓｅ／ｃｏｎｓｅｐｔｎｅｔ５／ｂｌｏｂ／ｍａｓｔｅｒ／ｃｏｎｃｅｐｔｎｅｔ５／ｖｅｃｔｒｏｓ／ｍｅｒｇｅ．ｐｙ〉
【発明の概要】
【発明が解決しようとする課題】
【００２６】
しかし、従来技術の方法１では、自然言語処理の精度を高くするのが困難であった。
【００２７】
例えば、方法１は、Ｗ１にのみ含まれる単語ベクトルｗａ，１について、Ｗ１，Ｗ２に共通して含まれる単語ベクトルの中でｗａ，１との類似度が高い上位５つの単語ベクトルを得るようにしている。しかし、類似度が高い上位５つの単語ベクトルの選定にはばらつきがあり、その結果、平均すると自然言語処理の精度が低下する問題があった。
【００２８】
また、方法１の技術によれば、単語数の二乗のオーダーの計算量となり、コンピュータの計算量が膨大になるという問題があった。
【００２９】
方法２は、Ｗ１とＷ２を連結して単語ベクトルリストＭ（ｎ＋ｍ次元ベクトル空間）を生成し、Ｍから一部をサンプリングしてＳＶＤで変換行列を得るようにしている。
【００３０】
しかし、方法２によれば、Ｗ１，Ｗ２に共通する単語しか出力することができず、単語数が減ってしまうという問題があった。
【００３１】
そこで、本発明の目的は、コンピュータの計算量を抑えることができ、汎用単語ベクトルリストに固有単語ベクトルリストを簡単に加えられ、かつ、精度の高い自然言語処理を行うことができる単語ベクトルリストを生成する技術を提供することにある。
【課題を解決するための手段】
【００３２】
上述した課題を解決するために、本発明の単語ベクトルリスト生成装置は、
結合対象の２つの単語ベクトルリストＷ１（ｎ次元ベクトル空間），Ｗ２（ｍ次元ベクトル空間）（ｎ≦ｍ）を入力する入力手段と、
前記単語ベクトルリストＷ１，Ｗ２の次元を同一次元になるように調整する次元調整手段と、
前記次元調整された単語ベクトルリストＷ１と単語ベクトルリストＷ’２の共通の単語の単語ベクトルを連結し、共通単語ベクトルリストＭｉｎｔｅｒｓｅｃｔを生成する共通単語ベクトルリスト生成手段と、
前記共通単語ベクトルリストＭｉｎｔｅｒｓｅｃｔを次元削減し、出力単語ベクトル空間Ｗｒｅｓｕｌｔ，ｉｎｔｅｒｓｅｃｔを生成する出力ベクトル空間生成手段と、
前記単語ベクトルリストＷ１，Ｗ２の単語ベクトル空間Ｗ１，ｉｎｔｅｒｓｅｃｔ，Ｗ２，ｉｎｔｅｒｓｅｃｔから前記出力単語ベクトル空間Ｗｒｅｓｕｌｔ，ｉｎｔｅｒｓｅｃｔへの変換行列Ｔ１，Ｔ２を計算する変換行列生成手段と、
前記変換行列Ｔ１，Ｔ２を使用して前記単語ベクトルリストＷ１，Ｗ２の全単語を出力単語ベクトル空間にマッピングして出力単語ベクトルリストＷｒｅｓｕｌｔを出力するマッピング手段と、
を有することを特徴とする。
【００３３】
前記出力単語ベクトルリストＷｒｅｓｕｌｔの行列に、知識ベースから自己関連性ウェイトと関連語の関連性ウェイトによる補正を行う知識注入手段、を有していてもよい。
【００３４】
前記出力ベクトル空間生成手段は、ＳＶＤ（特異値分解：ｓｉｎｇｕｌａｒ  ｖａｌｕｅ  ｄｅｃｏｍｐｏｓｉｔｉｏｎ）、または、ＰＣＡ（主成分分析：ｐｒｉｎｃｉｐａｌ  ｃｏｍｐｏｎｅｎｔ  ａｎａｌｙｓｉｓ）により、前記共通単語ベクトルリストＭｉｎｔｅｒｓｅｃｔを次元削減してもよい。
【００３５】
前記次元調整手段は、ＳＶＤ（特異値分解：ｓｉｎｇｕｌａｒ  ｖａｌｕｅ  ｄｅｃｏｍｐｏｓｉｔｉｏｎ）、または、ＰＣＡ（主成分分析：ｐｒｉｎｃｉｐａｌ  ｃｏｍｐｏｎｅｎｔ  ａｎａｌｙｓｉｓ）により、次元削減してもよい。
【００３６】
本発明の単語ベクトルリスト生成方法は、
結合対象の２つの単語ベクトルリストＷ１（ｎ次元ベクトル空間），Ｗ２（ｍ次元ベクトル空間）（ｎ≦ｍ）を入力する工程と、
前記単語ベクトルリストＷ１，Ｗ２の次元を同一次元になるように調整する工程と、
前記次元調整された単語ベクトルリストＷ１と単語ベクトルリストＷ’２の共通の単語の単語ベクトルを連結し、共通単語ベクトルリストＭｉｎｔｅｒｓｅｃｔを生成する工程と、
前記共通単語ベクトルリストＭｉｎｔｅｒｓｅｃｔを次元削減し、出力単語ベクトル空間Ｗｒｅｓｕｌｔ，ｉｎｔｅｒｓｅｃｔを生成する工程と、
前記単語ベクトルリストＷ１，Ｗ２の単語ベクトル空間Ｗ１，ｉｎｔｅｒｓｅｃｔ，Ｗ２，ｉｎｔｅｒｓｅｃｔから前記出力単語ベクトル空間Ｗｒｅｓｕｌｔ，ｉｎｔｅｒｓｅｃｔへの変換行列Ｔ１，Ｔ２を計算する工程と、
前記変換行列Ｔ１，Ｔ２を使用して前記単語ベクトルリストＷ１，Ｗ２の全単語を出力単語ベクトル空間にマッピングして出力単語ベクトルリストＷｒｅｓｕｌｔを出力する工程と、
を有する。
【発明の効果】
【００３７】
本発明によれば、コンピュータの計算量を抑えられ、汎用単語ベクトルリストに固有単語ベクトルリストを簡単に加えられ、かつ、精度の高い自然言語処理を行うことができる単語ベクトルリストを生成することができる。
【図面の簡単な説明】
【００３８】
【図１】本発明の一実施形態による単語ベクトルリストの生成の全体の流れを示した説明図。
【図２】本発明の一実施形態による単語ベクトルリスト生成装置の構成と処理の流れを示したブロック図。
【図３】知識ベースを例示した説明図。
【図４】知識ベースの関連性ウェイトを単語ベクトルリストに注入するための疎行列の例を示した説明図。
【図５】知識ベースの関連性ウェイトを単語ベクトルリストに注入する方法を示した説明図。
【図６】本発明による単語ベクトルリストの効果を示した説明図。
【発明を実施するための形態】
【００３９】
以下に本発明の実施形態を、図面を用いて説明する。
【００４０】
図１は、本発明の一実施形態による単語ベクトルリストの生成の全体の流れを示している。前述したように、複数の企業や研究所により、一般的な文章を含む大量の文章データから汎用単語ベクトルリストが作成されている。なお図１においては、かかる汎用単語ベクトルリストを一つのみ示しているが、かかる汎用単語ベクトルリストは複数提供されている。一方、新しい分野を含む特定の企業や分野で使用される単語は、それらの用語を含む文章データから、個別に固有単語ベクトルリストが作成されている。
【００４１】
汎用単語ベクトルリストは通常単語数が多く、これに対して固有単語ベクトルリストの単語数は相対的に少ないことが多い。単語を表す要素の数は区々である。また、汎用単語ベクトルリストと固有単語ベクトルリストでは、性質上元々含まれる単語が異なることが多い。さらに、同一単語であっても、異なるベクトルリストでは、各次元の表す意味が異なるため、一般に大きく異なるベクトルとなる。
【００４２】
本発明による単語ベクトルリストの生成は、上記のような性質が異なる汎用単語ベクトルリストと固有単語ベクトルリストを結合する部分を有する（図中の「１．異なる単語ベクトル空間の結合技術」）。なお、「異なる単語ベクトル空間の結合技術」に関して、ここでは汎用単語ベクトルリストと固有単語ベクトルリストを結合することについて説明している。しかし、本発明による「異なる単語ベクトル空間の結合技術」の結合対象は、汎用単語ベクトルリストと固有単語ベクトルリストに限られず、任意の二つの単語ベクトルリストとすることができる。
【００４３】
結合の方法は後に詳細に説明するが、最初にそれぞれの単語ベクトルリストに、知識ベースの関連性ウェイトの処理を行う。知識ベースとは、所定の単語間の関連性を有し、その関連性の強さを表すウェイトを有する知識ベースである。関連性ウェイトに関する処理は、元の単語ベクトルリストに含まれない単語を、関連のある単語のベクトルを使って追加する。また、関連性ウェイトに関する処理は、関連のある単語により類似するベクトルとなるように、単語ベクトルの調整を行う。これら二つの処理は下記の処理により同時に行われる。
【００４４】
具体的には、本発明の知識ベースの関連性ウェイトに関する処理は、単語ベクトルリストの単語に知識ベースの単語を加え、単語間の関連性ウェイトを行列化する。関連性ウェイトの行列と、正規化した元の単語ベクトルリストの行列を掛け合わせることによって元の単語ベクトルリストの行列の要素に関連性ウェイトを加えることができる。次に得られた単語ベクトルリストの行列をＬ２正則化し、元の単語ベクトルとの平均を新たな単語ベクトルとする。これらの操作を数回繰り返すことによって、知識ベースの単語の関連性ウェイトを注入することができる（図中の「２．単語ベクトルと知識ベースの融合技術」）。
【００４５】
次に、知識ベースの関連性ウェイトを注入した単語ベクトルを連結する。
【００４６】
さらに次に、各単語の特徴量を可能な限り保存しながら単語ベクトル空間の次元を削減し、出力用の単語ベクトル空間上に配置する。
【００４７】
以上の処理により、本発明は、膨大な再学習やサンプリング等を行うことなく、単語の特徴量を維持しながら汎用単語ベクトルリストと固有単語ベクトルリストを結合することができる。
【００４８】
なお、知識ベースの関連性ウェイトの処理と、単語ベクトルの連結の処理は、順番を入れ替えて行うこともできる。順番を入れ替えた処理も本発明の範疇内である。
【００４９】
次に、図２を用いて、本発明による異なる単語ベクトル空間の結合技術について説明する。
【００５０】
本発明による単語ベクトルリスト生成装置１は、結合対象の単語ベクトルリストを本装置に入力するための入力手段２を有している。入力手段２は、結合対象の単語ベクトルリストを単語ベクトルリスト生成装置１に取り込める範囲内のすべての公知の技術を含む。すなわち、入力手段２はその物理的な構成は限定されない。
【００５１】
最初に、入力手段２により、結合対象の２つの単語ベクトルリストＷ１（ｎ次元ベクトル空間）、Ｗ２（ｍ次元ベクトル空間）（ｎ≦ｍ）を入力する。単語ｗａのＷ１におけるベクトルをｗａ，１、単語ｗａのＷ２におけるベクトルをｗａ，２とする。
【００５２】
次に以下の順番に限られないが、知識注入手段９により、二つの単語ベクトルリストＷ１，Ｗ２に対して、既存の知識ベースの単語の関連性ウェイトを加味する。知識注入手段９による処理は、単語ベクトルリストＷ１，Ｗ２の結合後に追加的に行うことができ、この処理については後に詳細に説明する。
【００５３】
次に、次元調整手段３により、Ｗ１（ｎ次元ベクトル空間）とＷ２（ｍ次元ベクトル空間）を、次元が同一になるように調整する。好ましくは、ＳＶＤ（特異値分解：ｓｉｎｇｕｌａｒ  ｖａｌｕｅ  ｄｅｃｏｍｐｏｓｉｔｉｏｎ）により、次元が大きい方のＷ２を次元が小さい方のｎ次元に次元削減する。たとえば、以下のように処理することができる。
【００５４】
【数８】
2020077228.tif 000010
【００５５】
ここで、Ｗ２がｍ×ｐの行列とすると、ＳＶＤによればＷ２は上式のように分解でき、Ｕはｍ×ｍの直交行列、Ｖはｐ×ｐの直交行列、Σはｍ×ｐの行列であって、対角成分が非負で大きさの順に特異値が並んだ行列になる。
【００５６】
Ｗ２を次元削減または次元調整した行列をＷ’２とすると、Ｗ’２は以下のように求めることができる。
【００５７】
【数９】
2020077228.tif 000011
【００５８】
ここで、Ｗ’２はＷ２のｎ次元に次元調整された行列である。ｓｑｒｔ（Σ）はΣの対角成分の平方根を示している。Ｕ・ｓｑｒｔ（Σ）は、行列Ｕと、行列Σの各特異ベクトルの特異値の二乗根の内積を示している。ｄｉｍ＿ｒｅｄｕｃｔ（）は、次元削減するという意味のここで定義した関数であって、かっこ内の行列の特異値の大きいものから所定の次元を切り出して次元削減をするという意味である。なお、行列Ｕと行列Σの内積による次元削減ｄｉｍ＿ｒｅｄｕｃｔ（Ｕ・Σ）ではなく、行列Ｕと行列Σの各特異ベクトルの特異値の二乗根の内積による次元削減ｄｉｍ＿ｒｅｄｕｃｔ（Ｕ・ｓｑｒｔ（Σ））を用いる理由は、後者の方が自然言語処理の分野でより精度が向上するからである。換言すると、精度の問題を別にすれば前者を用いることも可能であり、前者を用いる場合も本発明の範疇内である。
【００５９】
なお、次元調整手段３は、ここではｎ次元に次元調整しているが、次元調整される単語ベクトルの次元数を自由に設定することができる。このため、処理を行う者が処理前に次元数を決定することが好ましい。
【００６０】
次元調整手段３による次元削減は、Ｗ１とＷ２の次元を同一次元になるように調整できれば足り、双方のベクトル空間をｎ次以下の同次元に調整することも本発明の範疇内である。次元調整手段３により、後述する出力単語ベクトル空間の次元数に合わせてＷ１とＷ２の次元を削減することもできる。また、Ｗ１とＷ２の次元が大きく相違しないことが明らかな場合は、省略することもできる。
【００６１】
次元調整手段３は、次元削減の方法としてＰＣＡ（主成分分析：ｐｒｉｎｃｉｐａｌ  ｃｏｍｐｏｎｅｎｔ  ａｎａｌｙｓｉｓ）を採用することもできる。
【００６２】
次に、次元調整されたＷ１とＷ’２の共通の単語から、共通単語ベクトルリスト生成手段４により、共通単語のベクトルを連結する。
【００６３】
連結したベクトルリストを共通単語ベクトルリストＭｉｎｔｅｒｓｅｃｔ（ｎ＋ｎ次元ベクトル空間）とする。なお、ここで行うベクトルの連結は、２つの単語ベクトルリストの成分を並べるようにして連結する。この連結の際に、次元調整されたＷ１とＷ’２のいずれか重要視する方に加重的に所定の倍数を乗じて連結することができる。この倍数は、単語ベクトルリストの性質によって適宜採ることができる。
【００６４】
共通単語ベクトルリストＭｉｎｔｅｒｓｅｃｔは、ｎ＋ｎ次元を有しているので、Ｗ１とＷ’２から出力できる単語ベクトル空間（出力単語ベクトル空間）に次元削減を行う必要がある。
【００６５】
そこで、出力ベクトル空間生成手段５により、Ｍｉｎｔｅｒｓｅｃｔの次元削減を行う。好ましくは、ＳＶＤにより、以下のように共通単語ベクトルリストＭｉｎｔｅｒｓｅｃｔの次元を削減する。
【００６６】
【数１０】
2020077228.tif 000012
【００６７】
【数１１】
2020077228.tif 000013
【００６８】
ここで、Ｍｉｎｔｅｒｓｅｃｔがｐ×ｑの行列とすると、Ｕはｐ×ｐの直交行列、Ｖはｑ×ｑの直交行列、Σはｐ×ｑの行列であって、対角成分が非負で大きさの順に特異値が並んだ行列になる。ｄｉｍ＿ｒｅｄｕｃｔ（）は前述したように、次元削減するという意味のここで定義した関数である。ｓｑｒｔ（Σ）はΣの対角成分の平方根を示している。Ｕ・ｓｑｒｔ（Σ）は、行列Ｕと、行列Σの各特異ベクトルの特異値の二乗根の内積を示している。
【００６９】
Ｗｒｅｓｕｌｔ，ｉｎｔｅｒｓｅｃｔは、Ｗ１とＷ’２から出力できる次元とするのが好ましい。例えば、Ｗｒｅｓｕｌｔ，ｉｎｔｅｒｓｅｃｔはｎ次元とすることができる。
【００７０】
なお、出力ベクトル空間生成手段５は、次元削減の方法としてＰＣＡ（主成分分析：ｐｒｉｎｃｉｐａｌ  ｃｏｍｐｏｎｅｎｔ  ａｎａｌｙｓｉｓ）を用いることができる。
【００７１】
次に、単語ベクトル空間Ｗ１とＷ’２と出力単語ベクトル空間Ｗｒｅｓｕｌｔ，ｉｎｔｅｒｓｅｃｔの関係から、それぞれ変換行列Ｔ１及びＴ２を計算することができる。
【００７２】
すなわち、変換行列生成手段６により、以下のようにして変換行列Ｔ１，Ｔ２を計算する。
【００７３】
【数１２】
2020077228.tif 000014
【００７４】
【数１３】
2020077228.tif 000015
【００７５】
ここで、Ｗ１，ｉｎｔｅｒｓｅｃｔ，Ｗ’２，ｉｎｔｅｒｓｅｃｔは共通単語のＷ１，Ｗ’２の単語ベクトル空間、Ｗｒｅｓｕｌｔ，ｉｎｔｅｒｓｅｃｔは共通単語の出力単語ベクトル空間である。
【００７６】
上記変換行列Ｔ１，Ｔ２は、Ｗ１とＷ’２の全単語に適用できるため、マッピング手段７により、以下のようにして全単語を出力ベクトル空間にマッピングすることができる。この結果、以下のように全単語を含む出力単語ベクトルリストＷｒｅｓｕｌｔを得ることができる。
【００７７】
【数１４】
2020077228.tif 000016
【００７８】
ここで、Ｗ１，ｕｎｉｑｕｅはＷ１にのみ存在する単語の単語ベクトルリスト、Ｗ’２，ｕｎｉｑｕｅはＷ’２にのみ存在する単語の単語ベクトルリスト、Ｗｒｅｓｕｌｔ，ｉｎｔｅｒｓｅｃｔは共通単語の出力単語ベクトルリストである。出力単語ベクトルリストＷｒｅｓｕｌｔはそれらの和集合となる。
【００７９】
以上により、次元や要素や単語が異なる二つの単語ベクトルリストを、単語の特徴量を損なうことなく結合でき、汎用単語と固有単語の双方をカバーすることができる。また、類似語の選択やサンプリングを行うことなく、少ない計算量で単語ベクトルリストを結合することができる。
【００８０】
なお、上述したＳＶＤによる次元削減は、種々な式の表現をとり得る。このことについて以下に説明する。
【００８１】
入力行列をＡ、出力行列をＢとすると、入力行列Ａは次のように特異値分解することができる。
【００８２】
【数１５】
2020077228.tif 000017
【００８３】
これに続いて、出力行列Ｂを以下の式（１）〜式（３）のいずれか一つのように求めることができる。
【００８４】
【数１６】
2020077228.tif 000018
【００８５】
【数１７】
2020077228.tif 000019
【００８６】
【数１８】
2020077228.tif 000020
【００８７】
ここで、ｄｉｍ＿ｒｅｄｕｃｔ（）は前述したように、次元削減するという意味のここで定義した関数である。ｓｑｒｔ（Σ）はΣの対角成分の平方根を示している。Ｕ・ｓｑｒｔ（Σ）は、行列Ｕと、行列Σの各特異ベクトルの特異値の二乗根の内積である。ｄｉｖｉｄｅ（）は、かっこ内の行列を要素ごとに除算する関数である。ｓはΣの対角成分からなるベクトルである。Ｖｍｏｄ（ｎ）は行列Ｖの要素を特異ベクトルΣの特異値の二乗根で除算した行列の最初のｎ列を採用した行列である。
【００８８】
式（１）〜式（３）は、表現は異なるが、本質的に同じ処理である。同一の入力行列Ａに対して、算出される出力行列Ｂはすべて同じ値になる。
【００８９】
本実施形態によるＳＶＤによる次元削減は、式（１）の形で説明したが、式（２）または式（３）の形でもよい。
【００９０】
図３はここにいう「知識ベース」の例を示す。
【００９１】
図３の知識ベース８は、携帯電話のキャリア（以下単に「キャリア」という。）に関する知識ベースの例を示している。キャリアは、通信会社と同義語であり、Ａ，Ｂ，Ｃの３つの系列が存在するとする。各系列には、親会社キャリアＡ，Ｂ，Ｃと、親会社に所属するショップ（図中の「Ａ社ショップ」と「Ｂ社ショップ」と「Ｃ社ショップ」）と、関連会社（図中の「系列会社Ａ」と「関係会社Ｂ」と「関係会社Ｃ」）が存在する。各社のショップの上位概念として「キャリアショップ」が存在する。
【００９２】
知識ベース８上の「単語」は、「コンセプト（Ｃｏｎｃｅｐｔ）」になっており、関連する単語は関連性ウェイトを有している。Ａ系列の単語同士は、同系列であるため、高い関連性ウェイトを有している。Ｂ系列とＣ系列についても同様に、同じ系列同士は高い関連性ウェイトを有している。異なる系列の単語同士は低い関連性ウェイトを有している。同じ系列内であれば、距離が短いほど高い関連性ウェイトを有している。
【００９３】
このような構成の知識ベースを用いて、単語ベクトルリストに関連性ウェイトを注入する方法について以下に説明する。なお、この知識ベースの関連性ウェイトの注入は、単語ベクトル空間の結合の後に図２の知識注入手段９によって行われる。
【００９４】
知識ベースの単語の関連性ウェイトを単語ベクトルリストに反映するには、知識ベース上の単語（知識ベースの「コンセプト（Ｃｏｎｃｅｐｔ）」になっている。）と単語ベクトルリストの単語から、疎行列を作る。
【００９５】
まず、単語ベクトルリストの単語リスト（Ｌａｂｅｌｓ）に、単語ベクトルリストにない知識ベース８の単語（Ｃｏｎｃｅｐｔ）を追加する。図４の例では、知識ベースにのみ存在する「ｄｅｓｋｔｏｐ」を単語リストに加えている。
【００９６】
次に、Ｃｏｎｃｅｐｔ１とＣｏｎｃｅｐｔ２の間の関連性ウェイトを疎行列の要素にセットする。この場合、自Ｃｏｎｃｅｐｔとの関連性ウェイトは、他のＣｏｎｃｅｐｔとの関連性ウェイトの合算をセットする。すなわち、疎行列の対角成分（自Ｃｏｎｃｅｐｔとの関連性ウェイトの成分）は、その行や列の合算値をセットする。また、Ｃｏｎｃｅｐｔの組合せで出現しない要素は“０”をセットする。
【００９７】
図４の例では、「ｔｅｌｅｐｈｏｎｅ」と「ｃａｌｌ」と「ｄｅｓｋｔｏｐ」の関連性ウェイト（ｗｅｉｇｈｔ）を疎行列にセットしている。単語数をｍとすると疎行列はｍ×ｍの行列となる。
【００９８】
次に、上記疎行列を使用して、単語ベクトルリストに知識ベースの関連性ウェイトを注入する処理について説明する。
【００９９】
図５において、「関連性ウェイト」と表示した行列は、図４で説明した疎行列を示している。関連性ウェイトの要素は具体的な数値に代えてａ，・・・，ｄ，α，β，γとする。「元の単語ベクトルリスト」と表示した行列は、関連性ウェイトを注入する前の行列であって、単語数ｍ、要素数を３００の行列になっている。元の単語ベクトルリストは、行の平均値が０になるように正規化している。「単語ベクトルリスト」と表示した行列は、関連性ウェイトを注入した後の行列である。
【０１００】
「関連性ウェイト」の行列と「元の単語ベクトルリスト」の行列をかけ合わせて「単語ベクトルリスト」の行列を得る。「単語ベクトルリスト」のある次元に着目すると、「自己Ｗｅｉｇｈｔ×元の値＋関連性Ｗｅｉｇｈｔ×関連語の同次元の値」になっている。すなわち、「単語ベクトルリスト」の各単語の要素は、自己Ｗｅｉｇｈｔをかけたものと、関連語の同次元の要素に関連性Ｗｅｉｇｈｔをかけたものの和になっている。つまり、単語ベクトルリストの各成分は、元の単語の要素に、自己の関連性ウェイトの他に、関連語の同次元の要素の関連性Ｗｅｉｇｈｔをかけて加えられている。これにより、単語ベクトルリストに、知識ベースの関連性ウェイトを注入する。
【０１０１】
「関連性ウェイト」の行列をかけて得られた「単語ベクトルリスト」の行列は、行の平均値が０になるように正規化し、ベクトル長さが１になるようにノルム化する。
【０１０２】
次に、ノルム化した「単語ベクトルリスト」の行列と「元の単語ベクトルリスト」の行列を加算し、ベクトルがある行は２で除し、ベクトルがない行はそのまま加算し、この計算を行った行列を「元の単語ベクトルリスト」の行列として使用する。
【０１０３】
【数１９】
2020077228.tif 000021
【０１０４】
以上の処理を所定回、好ましくは５回繰り返すことによって、単語ベクトルリストに知識ベースの関連性ウェイトを注入することができる。これによって、さらに自然言語処理の精度を向上させることができる。
【０１０５】
本発明の発明者らは、本発明による結合と関連性ウェイト注入を行った後の単語ベクトルリストの評価を行った。図６は日本語単語類似度データセットによるベンチマークの結果を示している。
【０１０６】
図６において、固有単語と全体の単語に分けて評価結果を示している。図６に示すように、汎用単語ベクトルリスト（例：ＣｏｎｃｅｐｔＮｅｔ  Ｎｕｍｂｅｒｂａｔｃｈ）は、ベンチマークのスコアが高いが、固有単語のカバー率が低い。一方、固有単語ベクトルリスト（例：ｎｗｊｃ２ｖｉｃ（ｗｏｒｄ２ｖｅｃ版））は固有単語のカバー率が高いが、ベンチマークのスコアが低い。これに対して、本発明による単語ベクトルリストは、固有単語を１００パーセントカバーし、かつ、ベンチマークのスコアが高い結果となった。
【０１０７】
以上のように、本発明の技術によれば、汎用単語ベクトルリストの膨大な再学習を行うことなく、既存の汎用単語ベクトルリストと特定の企業や分野で作成された固有単語ベクトルリストを結合して、高い単語カバー率を得ることができる。また、結合に際しては、単語の特徴量を損なうことなく結合でき、結果として精度の高い自然言語処理を行うことができる単語ベクトルリストを生成することができる。
【０１０８】
上記の記載に基づいて、当業者であれば、本発明の追加の効果や種々の変形を想到できるかもしれないが、本発明の態様は、上述した実施形態に限定されるものではない。特許請求の範囲に規定された内容及びその均等物から導き出される本発明の概念的な思想と趣旨を逸脱しない範囲で種々の追加、変更及び部分的削除が可能である。
【符号の説明】
【０１０９】
１  単語ベクトルリスト生成装置
２  入力手段
３  次元調整手段
４  共通単語ベクトルリスト生成手段
５  出力ベクトル空間生成手段
６  変換行列生成手段
７  マッピング手段
８  知識ベース
９  知識注入手段
【図１】
2020077228.tif 000022
【図２】
2020077228.tif 000023
【図３】
2020077228.tif 000024
【図４】
2020077228.tif 000025
【図５】
2020077228.tif 000026
【図６】
2020077228.tif 000027