IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ みずほ情報総研株式会社の特許一覧

特開2023-36511分散表現生成システム、分散表現生成方法及び分散表現生成プログラム
<>
  • 特開-分散表現生成システム、分散表現生成方法及び分散表現生成プログラム 図1
  • 特開-分散表現生成システム、分散表現生成方法及び分散表現生成プログラム 図2
  • 特開-分散表現生成システム、分散表現生成方法及び分散表現生成プログラム 図3
  • 特開-分散表現生成システム、分散表現生成方法及び分散表現生成プログラム 図4
  • 特開-分散表現生成システム、分散表現生成方法及び分散表現生成プログラム 図5
  • 特開-分散表現生成システム、分散表現生成方法及び分散表現生成プログラム 図6
  • 特開-分散表現生成システム、分散表現生成方法及び分散表現生成プログラム 図7
  • 特開-分散表現生成システム、分散表現生成方法及び分散表現生成プログラム 図8
  • 特開-分散表現生成システム、分散表現生成方法及び分散表現生成プログラム 図9
  • 特開-分散表現生成システム、分散表現生成方法及び分散表現生成プログラム 図10
  • 特開-分散表現生成システム、分散表現生成方法及び分散表現生成プログラム 図11
  • 特開-分散表現生成システム、分散表現生成方法及び分散表現生成プログラム 図12
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023036511
(43)【公開日】2023-03-14
(54)【発明の名称】分散表現生成システム、分散表現生成方法及び分散表現生成プログラム
(51)【国際特許分類】
   G06N 20/00 20190101AFI20230307BHJP
【FI】
G06N20/00 130
【審査請求】有
【請求項の数】11
【出願形態】OL
(21)【出願番号】P 2022066837
(22)【出願日】2022-04-14
(31)【優先権主張番号】P 2021143263
(32)【優先日】2021-09-02
(33)【優先権主張国・地域又は機関】JP
(71)【出願人】
【識別番号】592131906
【氏名又は名称】みずほリサーチ&テクノロジーズ株式会社
(74)【代理人】
【識別番号】100105957
【弁理士】
【氏名又は名称】恩田 誠
(74)【代理人】
【識別番号】100068755
【弁理士】
【氏名又は名称】恩田 博宣
(72)【発明者】
【氏名】根本 裕也
(72)【発明者】
【氏名】小泉 拓
(72)【発明者】
【氏名】竹田 康亮
(72)【発明者】
【氏名】杉原 裕規
(57)【要約】
【課題】系列データで用いる分散表現を生成するための分散表現生成システム、分散表現生成方法及び分散表現生成プログラムを提供する。
【解決手段】支援サーバ20は、順番に複数の要素が並んだ系列データの各要素の分散表現を正方行列により生成する制御部21と、教師情報を記録する教師情報記憶部22と、を備える。制御部21が、教師情報記憶部22から、正解を付した系列データを取得して、系列データを構成する各要素を表す正方行列を、系列データの各要素の構成順番で乗算するプロセスを含んだネットワークにより、正解を予測するように、各要素を表す正方行列を更新し、更新した正方行列を、系列データの各要素の分散表現として記録する。
【選択図】図1
【特許請求の範囲】
【請求項1】
順番に複数の要素が並んだ系列データの各要素の分散表現を正方行列により生成する制御部と、教師情報を記録する教師情報記憶部と、を備えた分散表現生成システムであって、
前記制御部が、
前記教師情報記憶部から、正解を付した系列データを取得して、前記系列データを構成する各要素を表す正方行列を、前記系列データの各要素の構成順番で乗算するプロセスを含んだネットワークにより、前記正解を予測するように、各要素を表す正方行列を更新し、前記更新した正方行列を、前記系列データの各要素の分散表現として記録することを特徴とする分散表現生成システム。
【請求項2】
前記制御部が、前記正解として、前記系列データに付与されたラベルを予測することを特徴とする請求項1に記載の分散表現生成システム。
【請求項3】
正しい順番で複数の要素が並んだ前記系列データを取得して、前記系列データを構成する各要素の分散表現を正方行列により生成し、
前記正方行列を前記系列データの構成順番で乗算した乗算行列を、正例ラベルを付して前記教師情報記憶部に記録し、
前記正方行列を、前記系列データの構成を崩して乗算して算出した乗算行列を、負例ラベルを付して前記教師情報記憶部に記録し、
前記乗算行列から、正例ラベル及び負例ラベルを予測するように、各要素を表す前記正方行列を更新することを特徴とする請求項2に記載の分散表現生成システム。
【請求項4】
前記制御部が、前記正解として、数値を予測することを特徴とする請求項1に記載の分散表現生成システム。
【請求項5】
前記制御部が、
新たな系列データを取得して、前記取得した系列データを構成する各要素を表す正方行列を生成し、
前記生成した正方行列を前記系列データの構成順番で乗算した乗算行列を算出し、
前記算出した乗算行列を用いて、前記系列データの正解を予測することを特徴とする請求項1に記載の分散表現生成システム。
【請求項6】
前記制御部が、
前記教師情報記憶部に記録された教師文を構成する単語からone-hotベクトルを生成し、
入力文字列を構成する単語の各one-hotベクトルと、入力重み行列とから、前記入力文字列に対応するN次元の正方入力行列を作成し、
予測する周辺単語のone-hotベクトルと、出力重み行列とから、前記周辺単語に対応するN次元の正方出力行列を作成し、
前記正方入力行列と前記正方出力行列の値が近くなるように、前記入力重み行列と前記出力重み行列とを更新して、単語の分散表現を生成することを特徴とする請求項1に記載の分散表現生成システム。
【請求項7】
前記周辺単語には、前記入力文字列の直前及び直後の1以上の単語を含むことを特徴とする請求項6に記載の分散表現生成システム。
【請求項8】
前記制御部が、
前記教師文において連続する複数の単語について、前記入力重み行列を用いて、それぞれN次元の単語入力行列を作成し、
前記連続する複数の単語の順番で、前記単語入力行列を乗算して、前記正方入力行列を作成することを特徴とする請求項6に記載の分散表現生成システム。
【請求項9】
前記制御部が、
前記教師文において連続する複数の単語について、前記出力重み行列を用いて、それぞれN次元の単語出力行列を作成し、
前記連続する複数の単語の順番で、前記単語出力行列を乗算して、前記正方出力行列を作成することを特徴とする請求項6に記載の分散表現生成システム。
【請求項10】
順番に複数の要素が並んだ系列データの各要素の分散表現を正方行列により生成する制御部と、教師情報を記録する教師情報記憶部と、を備えた分散表現生成システムを用いて、分散表現を生成する方法であって、
前記制御部が、
前記教師情報記憶部から、正解を付した系列データを取得して、前記系列データを構成する各要素を表す正方行列を、前記系列データの各要素の構成順番で乗算するプロセスを含んだネットワークにより、前記正解を予測するように、各要素を表す正方行列を更新し、前記更新した正方行列を、前記系列データの各要素の分散表現として記録することを特徴とする分散表現生成方法。
【請求項11】
順番に複数の要素が並んだ系列データの各要素の分散表現を正方行列により生成する制御部と、教師情報を記録する教師情報記憶部と、を備えた分散表現生成システムを用いて、分散表現を生成するためのプログラムであって、
前記制御部を、
前記教師情報記憶部から、正解を付した系列データを取得して、前記系列データを構成する各要素を表す正方行列を、前記系列データの各要素の構成順番で乗算するプロセスを含んだネットワークにより、前記正解を予測するように、各要素を表す正方行列を更新し、前記更新した正方行列を、前記系列データの各要素の分散表現として記録する手段として機能させるための分散表現生成プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、系列データで用いる分散表現を生成する分散表現生成システム、分散表現生成方法及び分散表現生成プログラムに関する。
【背景技術】
【0002】
多様な分野で、自然言語処理が利用されている。この自然言語処理においては、単語を実数値ベクトルで表す分散表現を用いる。この分散表現を用いることで、単語と単語の演算が可能になる。例えば、所定の対象に対する利用者の印象を誘導するための配信情報の指標を提供する情報提供装置が検討されている(例えば、特許文献1を参照。)。この特許文献に記載された情報提供装置は、所定のコンテキストに対する印象の誘導指標を示すコンテキストを取得する。そして、複数のコンテキストが有する相対的な関連性に基づいて生成された各コンテキストの分散表現から、所定のコンテキストの分散表現および誘導指標を示すコンテキストの分散表現と所定の関連性を有する他の分散表現を特定する。そして、特定部が特定した他の分散表現と対応するコンテキストを提供する。
【0003】
このような単語の分散表現手法の分類として、単語毎に一意に分散表現(意味)が決まる「文脈依存なし」の手法や、文脈に応じて分散表現が変化する「文脈依存あり」の手法が存在する。「文脈依存なし」の手法としては、例えば、Word2Vec、FastText等が知られている。また、「文脈依存あり」の手法としては、BERT(Bidirectional Encoder Representations from Transformers)、XLNet等が知られている。
【0004】
ここで、Word2Vecには、CBOW(Continuous Bag-of-Words)とSkip-gramという2つの手法がある。CBOWにおいては、周辺の単語から関心のある単語を学習する。一方、Skip-gramにおいては、関心のある単語から周辺の単語を学習する。このSkip-gramは、CBOWよりも高い精度を示すことが知られている(非特許文献1参照。)。
【0005】
以下では、図12を用いて、Skip-gramによるWord2Vecの学習処理を説明する。ここでは、教師情報として用いる複数の文に含まれるすべての単語について、各単語をユニークに特定できるone-hotベクトルを用意する。このone-hotベクトルは、単語のボキャブラリー数に応じた次元を有し、この単語を表わす成分のみが「1」で、その他の成分を「0」で表現したベクトルである。
【0006】
教師文500に含まれる単語において、単語(n-2)~単語(n+2)の順番で並んでいる場合、入力単語である単語(n)のone-hotベクトル(one-hot(n))を用意する。
【0007】
次に、one-hot(n)と入力重み行列WV×Nから、入力単語に対応する入力ベクトルを作成する。なお、「V」はボキャブラリー数、「N」は分散表現の次元数である。
【0008】
また、任意個の予測する周辺単語を、one-hotベクトルとして用意する。ここでは、周辺前後の2つの単語を用いて、単語(n-2),(n-1),(n+1),(n+2)のone-hotベクトルとして、one-hot(n-2),(n-1),(n+1),(n+2)を用意する場合を想定する。
【0009】
次に、one-hot(n-2),(n-1),(n+1),(n+2)と出力重み行列W’N×Vとから、周辺単語に対応する出力ベクトル(n-2),(n-1),(n+1),(n+2)を作成する。
【0010】
そして、入力ベクトルと出力ベクトルとの距離が近くなるように、入力重み行列WV×Nと出力重み行列W’N×Vを更新する。
ここでは、入力重み行列WV×Nの各成分を単語の分散表現として用いることができる。すなわち、単語wの分散表現は、「単語wのone-hotベクトル×WV×N」となる。
【先行技術文献】
【特許文献】
【0011】
【特許文献1】特開2018-136721号公報
【非特許文献】
【0012】
【非特許文献1】E.Tutubalina 他,“Demographic Prediction Based on User Reviews about Medications”,[online],2017年6月,Computacion y Sistemas,21巻,2号,p.227-241[令和3年7月12日検索],インターネット<URL:https://www.researchgate.net/publication/318507923_Demographic_Prediction_Based_on_User_Reviews_about_Medications>
【発明の概要】
【発明が解決しようとする課題】
【0013】
系列データを構成する要素の分散表現において、要素の順番(系列)に依存する等の「文脈依存あり」の手法の方が、多様なタスクでより的確な確からしさを出力する。しかしながら、「文脈依存あり」の手法では、学習や予測等の計算時間が長くなる。また、学習にあたって多くのメモリ量が必要である。
【課題を解決するための手段】
【0014】
上記課題を解決する分散表現生成システムは、順番に複数の要素が並んだ系列データの各要素の分散表現を正方行列により生成する制御部と、教師情報を記録する教師情報記憶部と、を備える。そして、前記制御部が、前記教師情報記憶部から、正解を付した系列データを取得して、前記系列データを構成する各要素を表す正方行列を、前記系列データの各要素の構成順番で乗算するプロセスを含んだネットワークにより、前記正解を予測するように、各要素を表す正方行列を更新し、前記更新した正方行列を、前記系列データの各要素の分散表現として記録する。
【発明の効果】
【0015】
本開示によれば、系列に依存した分散表現を効率的に生成することができる。
【図面の簡単な説明】
【0016】
図1】第1実施形態の分散表現生成システムの説明図。
図2】第1実施形態のハードウェア構成の説明図。
図3】第1実施形態の処理手順の説明図。
図4】第1実施形態の処理手順の説明図。
図5】変更例の処理手順の説明図。
図6】変更例の処理手順の説明図。
図7】第2実施形態の処理手順の説明図。
図8】第2実施形態の処理手順の説明図。
図9】第3実施形態の処理手順の説明図。
図10】第3実施形態の処理手順の説明図。
図11】第3実施形態の処理手順の説明図。
図12】従来の処理手順の説明図。
【発明を実施するための形態】
【0017】
(第1実施形態)
図1図4に従って、分散表現生成システム、分散表現生成方法及び分散表現生成プログラムを具体化した第1実施形態を説明する。本実施形態では、単語を正方行列で表し、文章の分散表現を、単語の正方行列の積で表わす場合を想定する。
【0018】
図1に示すように、本実施形態の分散表現生成システムは、ユーザ端末10、支援サーバ20を用いる。
(ハードウェア構成例)
図2は、ユーザ端末10、支援サーバ20等として機能する情報処理装置H10のハードウェア構成例である。
【0019】
情報処理装置H10は、通信装置H11、入力装置H12、表示装置H13、記憶装置H14、プロセッサH15を有する。なお、このハードウェア構成は一例であり、他のハードウェアを有していてもよい。
【0020】
通信装置H11は、他の装置との間で通信経路を確立して、データの送受信を実行するインタフェースであり、例えばネットワークインタフェースや無線インタフェース等である。
【0021】
入力装置H12は、利用者等からの入力を受け付ける装置であり、例えばマウスやキーボード等である。表示装置H13は、各種情報を表示するディスプレイやタッチパネル等である。
【0022】
記憶装置H14は、ユーザ端末10、支援サーバ20の各種機能を実行するためのデータや各種プログラムを格納する記憶装置である。記憶装置H14の一例としては、ROM、RAM、ハードディスク等がある。
【0023】
プロセッサH15は、記憶装置H14に記憶されるプログラムやデータを用いて、ユーザ端末10、支援サーバ20における各処理(例えば、後述する制御部21における処理)を制御する。プロセッサH15の一例としては、例えばCPUやMPU等がある。このプロセッサH15は、ROM等に記憶されるプログラムをRAMに展開して、各種処理に対応する各種プロセスを実行する。例えば、プロセッサH15は、ユーザ端末10、支援サーバ20のアプリケーションプログラムが起動された場合、後述する各処理を実行するプロセスを動作させる。
【0024】
プロセッサH15は、自身が実行するすべての処理についてソフトウェア処理を行なうものに限られない。例えば、プロセッサH15は、自身が実行する処理の少なくとも一部についてハードウェア処理を行なう専用のハードウェア回路(例えば、特定用途向け集積回路:ASIC)を備えてもよい。すなわち、プロセッサH15は、以下で構成し得る。
【0025】
(1)コンピュータプログラム(ソフトウェア)に従って動作する1つ以上のプロセッサ
(2)各種処理のうち少なくとも一部の処理を実行する1つ以上の専用のハードウェア回路、或いは
(3)それらの組み合わせ、を含む回路(circuitry)
プロセッサは、CPU並びに、RAM及びROM等のメモリを含み、メモリは、処理をCPUに実行させるように構成されたプログラムコード又は指令を格納している。メモリすなわちコンピュータ可読媒体は、汎用又は専用のコンピュータでアクセスできるあらゆる利用可能な媒体を含む。
【0026】
(各情報処理装置の機能)
図1を用いて、ユーザ端末10、支援サーバ20の機能を説明する。
ユーザ端末10は、本システムを利用するユーザが用いるコンピュータ端末である。
【0027】
支援サーバ20は、単語の分散表現を生成し、自然言語処理を行なうコンピュータシステムである。この支援サーバ20は、制御部21、教師情報記憶部22、学習結果記憶部23を備えている。
【0028】
制御部21は、後述する処理(取得段階、学習段階、予測段階等を含む処理)を行なう。このための分散表現生成プログラムを実行することにより、制御部21は、取得部210、学習部211、予測部212等として機能する。
【0029】
取得部210は、ユーザ端末10から教師文や処理単語を取得する処理を実行する。
学習部211は、分散表現を生成するための分散表現モデル(行列)を生成する処理を実行する。
予測部212は、入力された単語の分散表現を用いて自然言語処理を実行する。
【0030】
教師情報記憶部22には、学習に用いる教師情報が記録される。この教師情報は、教師情報の作成処理が行なわれた場合に記録される。教師情報には、教師文に関するデータが記録される。この教師文は、複数の単語により構成された文章である。
【0031】
学習結果記憶部23には、分散表現を生成する分散表現モデルが記録される。この分散表現モデルは、学習処理の実行時に記録される。分散表現モデルは、ボキャブラリー(単語)に対して分散表現(行列)が記録される。
【0032】
(学習処理及び予測処理)
次に、図3を用いて、学習処理及び予測処理を説明する。
(学習処理)
まず、学習処理においては、支援サーバ20の制御部21は、教師情報の単語抽出処理を実行する(ステップS11)。具体的には、制御部21の取得部210は、ユーザ端末10において指定された複数の教師文を取得する。この教師文は、複数の単語から構成されている。次に、取得部210は、取得した教師文を教師情報記憶部22に記録する。
【0033】
次に、支援サーバ20の制御部21は、各単語のOne-Hot生成処理を実行する(ステップS12)。具体的には、制御部21の学習部211は、教師情報記憶部22に記録された教師文から、すべての単語を抽出する。次に、学習部211は、抽出した単語において重複する単語を統合して、教師文を構成するボキャブラリーを抽出する。次に、学習部211は、ボキャブラリー数Vを特定する。そして、学習部211は、各ボキャブラリーをユニークに特定するために、各ボキャブラリーについて、V次元のOne-Hotベクトルを生成する。
【0034】
次に、支援サーバ20の制御部21は、機械学習処理を実行する(ステップS13)。具体的には、制御部21の学習部211は、教師文を構成する単語を、One-Hotベクトルの並びに置き換える。そして、学習部211は、後述するように、機械学習により、入力重み行列WV×N×N及び出力重み行列W’N×N×Vを算出する。そして、学習部211は、ベクトル入力重み行列WV×N×Nに各ボキャブラリーのOne-Hotを乗算した分散表現を生成し、各ボキャブラリーに関連付けて学習結果記憶部23に記録する。
【0035】
(予測処理)
次に、予測処理においては、支援サーバ20の制御部21は、処理対象の取得処理を実行する(ステップS21)。具体的には、制御部21の取得部210は、ユーザ端末10から、予測処理を行なう処理単語を取得する。
【0036】
次に、支援サーバ20の制御部21は、分散表現の取得処理を実行する(ステップS22)。具体的には、制御部21の予測部212は、学習結果記憶部23から、処理単語に対応する分散表現を取得する。そして、予測部212は、取得した分散表現を用いて、処理単語を用いた自然言語処理を行なうことにより、処理単語に対応する確からしい関連語を算出する。
次に、支援サーバ20の制御部21は、出力処理を実行する(ステップS23)。具体的には、制御部21の予測部212は、関連語を、ユーザ端末10に出力する。
【0037】
(機械学習処理)
次に、図4を用いて、学習部211によって行われる機械学習処理を説明する。
【0038】
ここでは、教師文に含まれる7個の単語(n-3)~(n+3)を用いる場合を想定する。そして、単語(n-1)~(n+1)を入力文字列として用いる。また、その周辺で連続する周辺単語である単語(n-3),(n-2),(n+2),(n+3)を出力文字列として用いる。
【0039】
そして、以下の処理により、初期設定された(V×N×N)次元の入力重み行列、(N×N×V)次元の出力重み行列を更新しながら、入力重み行列WV×N×N、出力重み行列W’N×N×Vを生成する。
【0040】
まず、ステップS101において、入力側の単語(n-1)~(n+1)について、それぞれone-hot(n-1)~(n+1)を生成する。
次に、ステップS102において、one-hot(n-1)~(n+1)に対して、それぞれ入力重み行列WV×N×Nを乗算することにより、(N×N)次元の正方行列の単語入力行列(n-1)~(n+1)を生成する。ここで、単語入力行列(n-1)~(n+1)は、それぞれ入力重み行列WV×N×Nの(n-1)~(n+1)成分である。
【0041】
そして、ステップS103において、単語の入力行列(n-1)~入力行列(n+1)を、単語の並び順に乗算することにより、単語(n-1)~(n+1)からなる入力文字列に対応する正方入力行列(n-1,n,n+1)を生成する。
【0042】
また、ステップS104において、出力側の単語(n-3),(n-2),(n+2),(n+3)について、それぞれone-hot(n-3),(n-2),(n+2),(n+3)を生成する。
【0043】
次に、ステップS105において、出力重み行列W’N×N×Vに対して、周辺単語のone-hotベクトルを乗算することにより、(N×N)次元の正方行列の単語出力行列を生成する。具体的には、出力重み行列W’N×N×Vに対して、one-hot(n-3)を乗算することにより、(N×N)次元の正方行列の単語出力行列(n-3)を生成する。出力重み行列W’N×N×Vに対して、one-hot(n-2)を乗算することにより、(N×N)次元の正方行列の単語出力行列(n-2)を生成する。出力重み行列W’N×N×Vに対して、one-hot(n+2)を乗算することにより、(N×N)次元の正方行列の単語出力行列(n+2)を生成する。出力重み行列W’N×N×Vに対して、one-hot(n+3)を乗算することにより、(N×N)次元の正方行列の単語出力行列(n+3)を生成する。ここで、単語出力行列(n-3),(n-2),(n+2),(n+3)は、それぞれ出力重み行列W’N×N×Vの(n-3)成分、(n-2)成分、(n+2)成分、(n+3)成分である。
【0044】
次に、ステップS106において、文字列〔単語(n-3)、単語(n-2)〕、文字列〔単語(n-2)〕、文字列〔単語(n+2)〕、文字列〔単語(n+2)、単語(n+3)〕を周辺文字列として、これらの周辺文字列に対応する正方出力行列を生成する。
【0045】
正方出力行列(n-3,n-2)は、単語出力行列(n-3)と単語出力行列(n-2)とを乗算することにより生成される。正方出力行列(n-2)としては、単語出力行列(n-2)を用いる。正方出力行列(n+2)としては、単語出力行列(n+2)を用いる。正方出力行列(n+2,n+3)は、単語出力行列(n+2)と単語出力行列(n+3)とを乗算することにより生成される。
【0046】
そして、ステップS107において、正方入力行列(n-1,n,n+1)の値と、正方出力行列(n-3,n-2),(n-2),(n+2),(n+2,n+3)の各値が近くなるように、入力重み行列WV×N×N及び出力重み行列W’N×N×Vを更新する。
【0047】
そして、更新した入力重み行列WV×N×Nの各成分を単語の分散表現として、学習結果記憶部23に記録する。
本実施形態によれば、以下のような効果を得ることができる。
【0048】
(1-1)本実施形態においては、支援サーバ20の制御部21は、機械学習処理を実行する(ステップS13)。ここでは、各単語の分散表現を行列によって構成する。これにより、単語の分散表現(意味)自体は不変となる。すなわち、文を作成する場合、まず、伝えたい内容があり、この内容を表現するのに適した単語を組み合わせるという手順で作られることがある。この場合、単語の意味(分散表現)は事前に決まっているものと考えられる。そして、分散表現を不変とすることで計算時間が抑えられる。
【0049】
(1-2)本実施形態においては、支援サーバ20の制御部21は、機械学習処理を実行する(ステップS13)。ここでは、入力側や出力側において、単語を組み合わせた文字列を用いて学習する。分散表現を行列で作成するため、単語の分散表現の次元と文章の分散表現の次元は同じになる。例えば、所定の単語には、この単語を説明する文章(定義)が存在することから、単語の分散表現と文章の分散表現とを同じ次元で生成することができる。
【0050】
(1-3)本実施形態においては、支援サーバ20の制御部21は、機械学習処理を実行する(ステップS13)。単語の分散表現は正方行列で、文章の分散表現は行列の積で表される。文章の分散表現が、正方行列で表された単語の分散表現の積で表される場合、単語の分散表現は不変という条件下においても、単語の順番が変わることによって文章の意味(分散表現)が変わる。単語の分散表現と文章の分散表現とを同じ次元で生成することによって、文脈依存を実現できる。これにより、単語の分散表現は文脈に依存しないが、文章の分散表現は文脈に依存することになる。
【0051】
本実施形態は、以下のように変更して実施することができる。本実施形態、以下の実施形態及び以下の変更例は、技術的に矛盾しない範囲で互いに組み合わせて実施することができる。
・上記実施形態では、単語(n-1)~(n+1)を入力文字列として用いる。また、単語(n-3),(n-2),(n+2),(n+3)を出力文字列として用いる。入力側や出力側に用いられる単語数は、これらに限定されるものではない。
【0052】
例えば、図5に示すように、単語(n-1)~(n+1)を入力文字列として用い、単語(n-2),(n+2)を出力文字列として用いてもよい。
図6に示すように、単語(n-1),(n)を入力単語として用い、単語(n-2),(n+2)を出力文字列として用いてもよい。
【0053】
また、入力側と出力側とを、単語(n)の片側で構成してもよい。例えば、単語(n-3)~(n)を入力文字列として用い、単語(n+1)~(n+3)を出力文字列として用いてもよい。
【0054】
・上記実施形態では、ユーザ端末10から教師情報を取得する。教師情報の取得は、ユーザ端末10を用いる場合に限定されるものではない。例えば、インターネットで公開されているニュース記事、論文、公的文書等、論理性がある文書を用いることができる。
【0055】
・上記実施形態では、学習結果記憶部23には、各ボキャブラリーに対して分散表現を記録する。学習結果記憶部23に記憶する情報は、処理対象単語の分散表現を生成できればよく、例えば、各ボキャブラリーに対するOne-Hotベクトルや入力重み行列WV×N×Nを記録するようにしてもよい。
【0056】
(第2実施形態)
次に、図7図8に従って、分散表現生成システム、分散表現生成方法及び分散表現生成プログラムを具体化した第2実施形態を説明する。上記第1実施形態では、支援サーバ20の制御部21は、各単語のOne-Hot生成処理(ステップS12)、機械学習処理(ステップS13)を実行する。そして、機械学習処理(ステップS13)では、入力重み行列及び出力重み行列を学習する。本実施形態においては、One-Hotベクトル、入力重み行列及び出力重み行列を用いない。以下の実施形態において、上記第1実施形態と同様の部分については、同一の符号を付し、その詳細な説明を省略する。
【0057】
図7に示すように、支援サーバ20の制御部21は、ステップS11と同様に、教師情報の単語抽出処理を実行する(ステップS31)。
次に、支援サーバ20の制御部21は、機械学習処理を実行する(ステップS32)。具体的には、制御部21の学習部211は、抽出した単語において重複する単語を統合して、教師文を構成するボキャブラリーを抽出する。ボキャブラリーを構成する単語を、初期設定された正方行列に置き換える。そして、入力側の正方行列と、周辺の正方行列とが近くなるように、正方行列を更新する。
【0058】
例えば、図8に示すように、教師文に含まれる7個の単語(n-3)~(n+3)を用いる場合を想定する。そして、単語(n-1)~(n+1)を入力文字列として用いる。また、その周辺で連続する周辺単語である単語(n-3),(n-2),(n+2),(n+3)を出力文字列として用いる。
【0059】
そして、以下の処理により、初期設定された正方行列(分散表現)を更新する。
まず、ステップS301において、入力側の単語(n-1)~(n+1)について、それぞれ入力側の正方行列である単語行列(n-1)~(n+1)を生成する。
【0060】
そして、ステップS302において、入力側の単語行列(n-1)~(n+1)を、単語の並び順に乗算することにより、乗算行列として、単語(n-1)~(n+1)からなる入力文字列に対応する正方入力行列(n-1,n,n+1)を生成する。
【0061】
また、ステップS303において、出力側の単語(n-3),(n-2),(n+2),(n+3)について、それぞれ出力側の正方行列である単語行列(n-3),(n-2),(n+2),(n+3)を生成する。
【0062】
次に、ステップS304において、文字列〔単語(n-3)、単語(n-2)〕、文字列〔単語(n-2)〕、文字列〔単語(n+2)〕、文字列〔単語(n+2)、単語(n+3)〕を周辺文字列として、これらの周辺文字列に対応する正方出力行列を生成する。
【0063】
正方出力行列(n-3,n-2)は、単語行列(n-3)と単語行列(n-2)とを乗算することにより生成される。正方出力行列(n-2)としては、単語行列(n-2)を用いる。正方出力行列(n+2)としては、単語行列(n+2)を用いる。正方出力行列(n+2,n+3)は、単語行列(n+2)と単語行列(n+3)とを乗算することにより生成される。
【0064】
ステップS305において、正方入力行列(n-1,n,n+1)の値と、正方出力行列(n-3,n-2),(n-2),(n+2),(n+2,n+3)の各値が近くなるように、単語行列(n-3)~(n+3)を更新する。
【0065】
そして、更新した単語行列(n-3)~(n+3)を単語の分散表現として、学習結果記憶部23に記録する。
予測処理では、図3に示すステップS21~S23を実行する。
【0066】
本実施形態によれば、以下のような効果を得ることができる。
(2-1)本実施形態においては、支援サーバ20の制御部21は、教師情報の単語抽出処理(ステップS31)、機械学習処理(ステップS32)を実行する。これにより、効率的に、分散表現(正方行列)を生成することができる。
【0067】
(第3実施形態)
次に、図9図10に従って、分散表現生成システム、分散表現生成方法及び分散表現生成プログラムを具体化した第3実施形態を説明する。上記第1、第2実施形態では、入力側、出力側の単語の分散表現が近くなるように機械学習を行なう。機械学習の手法は、これに限定されるものではない。本実施形態では、分類が付与された教師情報を用いた機械学習を行なう。
【0068】
図9に示すように、支援サーバ20の制御部21は、教師情報の作成処理を実行する(ステップS41)。具体的には、制御部21の取得部210は、ユーザ端末10において指定された単語列を取得する。この単語列は、複数の単語が、正しい順番(構成順番)で並んで構成されている。次に、取得部210は、取得した単語列を正例として、正例ラベルに関連付けて教師情報記憶部22に記録する。
【0069】
次に、取得部210は、正例の単語列から負例の単語列を生成する。この負例は、正例を構成する要素データの順番の入れ替え、一部の要素データの削除、一部の要素データを異なる要素データと交換等により行なう。そして、取得部210は、生成した系列データを負例として、負例ラベルに関連付けて教師情報記憶部22に記録する。このように、正例ラベル及び負例ラベルは、正解を示す情報として機能する。
【0070】
例えば、図10に示すように、正例e1を単語列「ABCDEFG」とした場合、単語「C」を単語「X」に置き換えた単語列「ABXDEFG」を負例e2とする。また、単語「B」と単語「F」とを並び替えた単語列「AFCDEBG」を負例e3とする。
【0071】
次に、支援サーバ20の制御部21は、機械学習処理を実行する(ステップS42)。具体的には、制御部21の学習部211は、各単語を、初期設定された正方行列である単語行列(A~G、X)に置き換える。更に、単語列の並び順に単語行列を乗算して、正方行列(乗算行列)を生成する。
【0072】
図10に示すように、正例e1においては、正方行列m1が算出される。また、負例e2、e3においては、それぞれ正方行列m2,m3が算出される。
そして、学習部211は、正方行列m1から正例、正方行列m2,m3から負例を予測できるように、単語行列(分散表現)を更新する。
【0073】
また、上記では、単語列における単語の分散表現を生成する。ここで、順番に並んだ要素からなる系列において、各要素の正方行列(分散表現)を生成することができる。ここでは、要素の順番の正当性を判断する。
【0074】
図9に示すステップS41では、制御部21の取得部210は、教師情報として、正しい順番で並んで構成されている系列データを取得する。次に、取得部210は、取得した系列データを正例として、正例ラベルに関連付けて教師情報記憶部22に記録する。
【0075】
次に、ステップS41では、制御部21の取得部210は、教師情報として、正例の系列データから負例の系列データを生成する。この負例は、正例を構成する要素データの順番の入れ替え、一部の要素データの削除、一部の要素データを異なる要素データと交換等により行なう。次に、取得部210は、生成した系列データを負例として、負例ラベルに関連付けて教師情報記憶部22に記録する。
そして、ステップS42では、制御部21の学習部211は、各要素データを正方行列に置き換える。そして、正方行列を用いて、正例、負例を予測できるように更新する。
【0076】
(機械学習処理)
次に、図11を用いて、学習部211によって行われる機械学習処理を説明する。ここでは、教師データに含まれるi個の要素を用いる場合を想定する。更に、正例、負例ではなく、分類として、正解を示すラベルL1~Lmを予測する。この場合、教師情報である系列データに対して、ラベルL1~Lmを付与して教師情報記憶部22に記録する。
【0077】
まず、制御部21の学習部211は、系列データを構成する要素から、初期設定された正方行列t1~tiを生成する(ステップS401)。
次に、学習部211は、生成した正方行列t1~tiを用いて、中間層1において、複数の正方行列を生成する(ステップS402)。例えば、正方行列iとしては、正方行列t1を用いる。正方行列jとしては、正方行列t2を用いる。正方行列kとしては、正方行列tiを用いる。正方行列ijは、正方行列t1,t2をその順番で乗算した行列である。正方行列ijkは、正方行列t1,t2,tiをその順番で乗算した行列である。このように、正方行列t1~tiそのものや、各要素の順番で各要素の正方行列t1~tiを乗算した正方行列を用いたネットワークを生成する。
【0078】
そして、後続の中間層には、先行の中間層で生成した正方行列を入力する。この場合、正方行列を1次元化して、活性化関数(非線形)に代入する。このように、活性化関数を用いて、先行の中間層と後続の中間層とのネットワークの重み付けを行なう。
【0079】
学習部211は、ラベルL1~Lmを付与した出力層を生成する(ステップS403)。ここで、N層の中間層を想定した場合、中間層Nの正方行列に対して、出力層を繋げたネットワークを生成する。
【0080】
そして、教師情報の系列を入力した場合、各ラベルの確からしさが高くなるように、各要素を表す正方行列を更新する。
本実施形態によれば、以下のような効果を得ることができる。
【0081】
(3-1)本実施形態においては、支援サーバ20の制御部21は、教師情報の作成処理(ステップS41)、機械学習処理(ステップS42)を実行する。順番に並んだ系列の要素を正方行列(分散表現)で表す。このため、系列を構成する順番で、要素の分散表現を乗算した正方行列には、この順番が反映されている。これにより、乗算行列である正方行列を用いて、系列の分類(ラベル)を予測できる。
【0082】
本実施形態は、以下のように変更して実施することができる。上記各実施形態及び以下の変更例は、技術的に矛盾しない範囲で互いに組み合わせて実施することができる。
【0083】
・上記第3実施形態では、出力層において、確からしい分類を予測する。これに代えて、出力層において、連続値等の値の予測する回帰により確からしい数値等を予測するようにしてもよい。
【符号の説明】
【0084】
10…ユーザ端末、20…支援サーバ、21…制御部、210…取得部、211…学習部、212…予測部、22…教師情報記憶部、23…学習結果記憶部。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12