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

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

▶ 富士通株式会社の特許一覧

特許7173351制御方法、制御プログラムおよび情報処理装置
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-11-08
(45)【発行日】2022-11-16
(54)【発明の名称】制御方法、制御プログラムおよび情報処理装置
(51)【国際特許分類】
   G06F 40/216 20200101AFI20221109BHJP
   G06F 40/44 20200101ALI20221109BHJP
   G16B 30/00 20190101ALI20221109BHJP
【FI】
G06F40/216
G06F40/44
G16B30/00
【請求項の数】 10
(21)【出願番号】P 2021536595
(86)(22)【出願日】2019-08-01
(86)【国際出願番号】 JP2019030379
(87)【国際公開番号】W WO2021019789
(87)【国際公開日】2021-02-04
【審査請求日】2021-12-07
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】片岡 正弘
(72)【発明者】
【氏名】尾上 聡
(72)【発明者】
【氏名】酒井 彬
【審査官】萩島 豪
(56)【参考文献】
【文献】特開2019-083477(JP,A)
【文献】国際公開第2019/003516(WO,A1)
【文献】国際公開第2014/147672(WO,A1)
【文献】米国特許第5006849(US,A)
【文献】米国特許出願公開第2017/161362(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 40/00 - 40/58
G16B 30/00
(57)【特許請求の範囲】
【請求項1】
単語及び前記単語の語義の組みの出現頻度に応じた長さの符号を前記単語及び前記語義の組みに対応付ける圧縮辞書を取得し、
前記圧縮辞書により、いずれかの単語及び前記いずれかの単語の語義の組みと、前記いずれかの単語及び前記いずれかの単語の語義の組みに対応付けられた符号とを取得し、
同一の長さの複数の固定長符号それぞれを単語及び語義の組みに対応付けて記憶する記憶部を参照して、前記複数の固定長符号のうち、取得した前記いずれかの単語及び前記いずれかの単語の語義の組みに対応付けられた固定長符号を特定し、
特定した前記固定長符号を、取得した前記符号に対応付ける変換辞書を生成し、
前記変換辞書に基づき、テキストデータが符号化された圧縮データに含まれる各符号に対応づけられた各固定長符号を特定する
処理をコンピュータが実行することを特徴とする制御方法。
【請求項2】
前記圧縮辞書は、複数の意味を有する多義語の各意味、または、複数の熟語で使用される成句の各意味に対して、前記符号を対応付け、
前記記憶部は、前記多義語の各意味または前記成句の各意味と、前記固定長符号とを対応付けて記憶し、
前記生成する処理は、前記多義語の各意味に対応する各符号または前記成句の各意味に対応する各符号と、前記記憶部に記憶される各固定長符号とを対応付けた前記変換辞書を生成することを特徴とする請求項1に記載の制御方法。
【請求項3】
前記圧縮辞書は、タンパク質を形成するコドンであって予め定められる基準コドンを含む各形態素のコドン配列に対して、前記符号を対応付け、
前記記憶部は、前記各形態素のコドン配列と、前記固定長符号とを対応付けて記憶し、
前記生成する処理は、前記各形態素のコドン配列に対応する各符号と、前記記憶部に記憶される各固定長符号とを対応付けた前記変換辞書を生成することを特徴とする請求項1に記載の制御方法。
【請求項4】
前記複数の固定長符号それぞれとベクトル値とを対応付けたベクトル値一覧を取得し、
データベースに格納されるデータを前記データベースから取り出さずに、前記データに対応する符号を特定し、
特定された前記符号に対応する固定長符号を、前記ベクトル値一覧に基づきベクトル値に変換して、ベクトルデータを生成し、
前記ベクトルデータを用いて機械学習を実行する、処理を前記コンピュータが実行することを特徴とする請求項1に記載の制御方法。
【請求項5】
前記複数の固定長符号それぞれとベクトル値とを対応付けたベクトル値一覧を取得し、
前記圧縮データに含まれる各符号に対応する各固定長符号を、前記ベクトル値一覧に基づきベクトル値に変換して、前記圧縮データからベクトルデータを生成し、
前記ベクトルデータを用いて機械学習を実行する、処理を前記コンピュータが実行することを特徴とする請求項1に記載の制御方法。
【請求項6】
前記テキストデータは、第1の言語で生成されたデータであって、正解情報として第2の言語で訳された訳語が設定されており、
前記特定する処理は、前記テキストデータを形態素解析して得られる各単語が符号化された符号化データに含まれる各符号に対応する各固定長符号を特定し、
前記生成する処理は、前記各固定長符号を前記ベクトル値に変換して、前記圧縮データから前記ベクトルデータを生成し、
前記機械学習を実行する処理は、前記ベクトルデータを説明変数、前記正解情報を目的変数として、テキストデータを前記第2の言語に翻訳する翻訳モデルの学習を実行することを特徴とする請求項5に記載の制御方法。
【請求項7】
前記機械学習を実行する処理は、制限ボルツマンマシンの関数を用いて、前記翻訳モデルの学習を実行することを特徴とする請求項6に記載の制御方法。
【請求項8】
単語及び前記単語の語義の組みの出現頻度に応じた長さの符号を前記単語及び前記語義の組みに対応付ける圧縮辞書を取得し、
前記圧縮辞書により、いずれかの単語及び前記いずれかの単語の語義の組みと、前記いずれかの単語及び前記いずれかの単語の語義の組みに対応付けられた符号とを取得し、
同一の長さの複数の固定長符号それぞれを単語及び語義の組みに対応付けて記憶する記憶部を参照して、前記複数の固定長符号のうち、取得した前記いずれかの単語及び前記いずれかの単語の語義の組みに対応付けられた固定長符号を特定し、
特定した前記固定長符号を、取得した前記符号に対応付ける変換辞書を生成し、
前記変換辞書に基づき、テキストデータが符号化された圧縮データに含まれる各符号に対応づけられた各固定長符号を特定する
処理をコンピュータに実行させることを特徴とする制御プログラム。
【請求項9】
単語及び前記単語の語義の組みの出現頻度に応じた長さの符号を前記単語及び前記語義の組みに対応付ける圧縮辞書を取得する取得部と、
前記圧縮辞書により、いずれかの単語及び前記いずれかの単語の語義の組みと、前記いずれかの単語及び前記いずれかの単語の語義の組みに対応付けられた符号とを取得する取得部と、
同一の長さの複数の固定長符号それぞれを単語及び語義の組みに対応付けて記憶する記憶部を参照して、前記複数の固定長符号のうち、取得した前記いずれかの単語及び前記いずれかの単語の語義の組みに対応付けられた固定長符号を特定する特定部と、
特定した前記固定長符号を、取得した前記符号に対応付ける変換辞書を生成する生成部と、
前記変換辞書に基づき、テキストデータが符号化された圧縮データに含まれる各符号に対応づけられた各固定長符号を特定する特定部と
を有することを特徴とする情報処理装置。
【請求項10】
テキストデータに含まれる各単語に割り当てられた可変長の圧縮符号それぞれに対して、各固定長符号を割り当て、
前記可変長の圧縮符号それぞれに対応する各固定長符号と、ニューラルネットワークを適用した機械翻訳への入力に利用される200次元のベクトル値とを対応付ける
処理をコンピュータが実行することを特徴とする制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、制御方法、制御プログラムおよび情報処理装置に関する。
【背景技術】
【0002】
近年、ニューラルネットワークを活用した翻訳技術が利用されている。具体的には、入力されたテキストを符号化し、意味を持つ単位の単語に分割する形態素解析を行い、CBOW(Continuous Bag-of-Words)モデルなどを用いて各単語のベクトルを生成する。そして、RNN(Recurrent Neural Network)などのニューラルネットワークを用いて、各単語のベクトルの総当たり演算を実行し、演算結果に基づき翻訳を実行する。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2006-048685号公報
【文献】特開2018-068752号公報
【非特許文献】
【0004】
【文献】Piotr Bojanowski,Edouard Grave,Armand Joulin,and Tomas Mikolovr、“EnrichingWord Vectors with Subword Information”、arXiv preprint arXiv:1607.04606,2016
【文献】Armand Joulin,Edouard Grave,Piotr Bojanowski,and Tomas Mikolov、“Bag of Tricks for Efficient Text Classification”、arXiv preprint arXiv:1607.01759,2016
【発明の概要】
【発明が解決しようとする課題】
【0005】
ところで、上記技術では、CPU(Central Processing Unit)とGPU(Graphics Processing Unit)により処理を分担することで、高速化を実現しているが、熟語や各単語の語形変化に対応したベクトル変換が繰り返し実行されるので、結果的に、処理速度が低下する。
【0006】
例えば、ベクトル生成までの処理をCPUが実行し、ベクトルを取得して演算を実行する処理をGPUが実行することで、処理を分担させている。ところが、ZIP(登録商標)で圧縮されたテキストを伸長し、字句解析(形態素解析)したテキストに熟語や語形変化が多く存在する場合、基本形の単語とは別のベクトル変換が多発するので、GPUがCPUからベクトルを取得する時間が長時間化し、処理速度の低下が発生する。一方、「cool」などの多義語や「take out」などのストップワードで構成される成句に対するベクトル割当ての最適化や高速化が残存する問題もある。
【0007】
一つの側面では、ベクトル生成や機械学習の処理速度や精度を向上させることができる制御方法、制御プログラムおよび情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【0008】
第1の案では、制御方法は、コンピュータが、単語及び前記単語の語義の組みの出現頻度に応じた長さの符号を前記単語及び前記語義の組みに対応付ける圧縮辞書を取得する処理を実行する。制御方法は、コンピュータが、前記圧縮辞書により、いずれかの単語及び前記いずれかの単語の語義の組みと、前記いずれかの単語及び前記いずれかの単語の語義の組みに対応付けられた符号とを取得する処理を実行する。制御方法は、コンピュータが、同一の長さの複数の固定長符号それぞれを単語及び語義の組みに対応付けて記憶する記憶部を参照して、前記複数の固定長符号のうち、取得した前記いずれかの単語及び前記いずれかの単語の語義の組みに対応付けられた固定長符号を特定する処理を実行する。制御方法は、コンピュータが、特定した前記固定長符号を、取得した前記符号に対応付ける変換辞書を生成し、前記変換辞書に基づき、テキストデータが符号化された圧縮データに含まれる各符号に対応づけられた各固定長符号を特定する処理を実行する。
【発明の効果】
【0009】
一実施形態によれば、ベクトル生成や機械学習の処理速度や精度を向上させることができる。
【図面の簡単な説明】
【0010】
図1図1は、実施例1にかかる情報処理装置を説明する図である。
図2図2は、実施例1にかかる情報処理装置の機能構成を示す機能ブロック図である。
図3図3は、静的辞書および動的辞書を説明する図である。
図4図4は、NNCとベクトルデータとの対応付けを説明する図である。
図5図5は、多義語の静的符号化と動的符号化を説明する図である。
図6図6は、成句の静的符号化と動的符号化を説明する図である。
図7図7は、多義語や成句の動的符号からNNCの生成を説明する図である。
図8図8は、語形変化の動的符号からNNCの生成を説明する図である。
図9図9は、実施例1の学習例を説明する図である。
図10図10は、処理の流れを示すフローチャートである。
図11図11は、処理の高速化を説明する図である。
図12図12は、関連技術を塩基配列へ適したときの問題点を説明する図である。
図13A図13Aは、ゲノムに含まれるタンパク質を特定する処理を説明するための図である。
図13B図13Bは、突然変異が発生した塩基配列データの評価を高速化する例を説明する図である。
図13C図13Cは、実施例2にかかる処理を説明する図である。
図14図14は、実施例2の学習例を説明する図である。
図15図15は、データベースに適用したときの問題点を説明する図である。
図16図16は、実施例3にかかるデータベースへの適用例を説明する図である。
図17図17は、情報処理装置のハードウェア構成を示す図である。
図18図18は、コンピュータで動作するプログラムの構成例を示す図である。
図19図19は、実施形態のシステムにおける装置の構成例を示す図である。
【発明を実施するための形態】
【0011】
以下に、本発明にかかる制御方法、制御プログラムおよび情報処理装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。また、各実施例は、矛盾のない範囲内で適宜組み合わせることができる。
【実施例1】
【0012】
[情報処理装置10の説明]
図1は、実施例1にかかる情報処理装置10を説明する図である。図1に示すように、情報処理装置10は、テキストデータから翻訳結果を予測する機械学習モデルのコンピュータの一例である。例えば、情報処理装置10は、目的変数として「日本語テキストへの翻訳」が設定された英文のテキストデータを学習データとして、特徴量を生成し、その特徴量をもとに機械学習モデルを用いて機械翻訳を行う。
【0013】
ここで、情報処理装置10は、テキストデータに含まれる各単語に割り当てられる圧縮符号一覧と、ニューラルネットワークコード(NNC)テーブルと、ベクトルテーブルとを対応付ける。
【0014】
圧縮符号一覧は、出現頻度が高い高頻度単語に静的に設定される圧縮符号である静的コード(静的符号)と、出現頻度が低く、出現順に動的に割当てられる圧縮符号である動的コード(動的符号)とを含む、可変長の情報である。例えば、静的コードは、goやtakeなどの単語の基本形に予め割当てられる符号であり、動的コードは、goesやtakesなどの単語の語形変化、coolなどの多義語、take offなどの成句に割り当てられる符号である。
【0015】
NNCテーブルは、演算処理を効率化するために、GPU(Graphics Processing Unit)が高速に読み出すことができる固定長(例えば32ビット(4バイト))で設定される符号の一覧である。ベクトルテーブルは、機械学習モデルの学習時に入力データとなるベクトルデータの各ベクトル値を含む情報である。また、ベクトルデータは、各NNCに対応付けられた200次元のベクトル値である。
【0016】
このような状態において、情報処理装置10は、学習データであるテキストデータが入力されると、圧縮符号一覧にしたがって、テキストデータ内の各単語に静的コードまたは動的コードを割当てて、圧縮ファイルを生成する。続いて、情報処理装置10は、圧縮ファイル内の各圧縮符号を、圧縮符号一覧とNNCテーブルとの対応関係に基づいて、NNCに変換した後、NNCテーブルとベクトルテーブルとの対応関係にしたがって、各NNCをベクトル値に変換する。
【0017】
このようにして、情報処理装置10は、テキストデータをベクトル値に変換して機械学習モデルの学習を実行する。したがって、情報処理装置10は、一般的な圧縮ファイルを用いたときに繰り返される、圧縮符号の読み込み、伸長、形態素解析、ハッシュ関数によるアドレス演算などを削減でき、大幅な高速化を図ることができ、処理速度を向上させることができる。
【0018】
[機能構成]
図2は、実施例1にかかる情報処理装置10の機能構成を示す機能ブロック図である。図2に示すように、情報処理装置10は、通信部11、記憶部12、制御部20を有する。
【0019】
通信部11は、他の装置との間の通信を制御する処理部であり、例えば通信インタフェースなどである。例えば、通信部11は、管理者などのユーザ端末から学習開始や学習終了の指示、学習データ、予測対象のデータなどを受信し、学習結果や予測結果などをユーザ端末に送信する。
【0020】
記憶部12は、各種データや制御部20が実行するプログラムなどを記憶する記憶装置の一例であり、例えばメモリやハードディスクなどである。この記憶部12は、テキストデータ13、静的辞書14、動的辞書15、NNCテーブル16、ベクトルテーブル17を記憶する。
【0021】
テキストデータ13は、翻訳モデルに学習に利用される学習データである。例えば、テキストデータ13は、目的変数として「日本語テキストへの翻訳」が設定された英文のテキストデータである。
【0022】
静的辞書14は、出現頻度の高い単語と、当該単語に予め割当てられた圧縮符号との対応付けを記憶するデータベースなどである。動的辞書15は、静的辞書14に登録されていない出現頻度の低い単語であって、符号化対象のテキストデータに登場した単語と、当該単語に割当てられた圧縮符号との対応付けを記憶するデータベースである。なお、図示しないバッファ部などを用いて、多義語や成句などの単語に対して、動的辞書15に割り当てられる符号とその単語の語義との対応関係を管理することができ、例えば特開2019-12468号公報などの技術を採用することができる。
【0023】
図3は、静的辞書14および動的辞書15を説明する図である。図3に示す辞書は、静的辞書14および動的辞書15をあわせた辞書であり、圧縮符号とビットマップ型転置インデックスのY軸は、1対1に対応付けられている。図3に示す横軸の「0*h」から「6*h」、「7***h」から「9***h」までが静的辞書14に対応し、「A***h」から「E***h」、および「F*****h」までが動的辞書15に対応する。
【0024】
図3の上部の横方向の項目は、最初の16進数を0~Fの16進で表記しており、「*」は、後続する16進数を示している。例えば、「1*h」は、「10h」から「1Fh」であることを示す。「7***h」は「7000h」から「7FFFh」を16進表記で示している。「F*****h」は「F00000h」から「FFFFFFh」を16進表記で示している。
【0025】
「0*h」、「6*h」の符号については、1バイトの符号である。「0*h」、「1*h」の符号は、共通の制御コードが対応付けられている。また、「2*h」~「3*h」の符号は、英語の、「4*h」~「5*h」の符号は、日本語の、「6*h」の符号は、数値の高頻度に出現する単語の中でも特に頻度の高い超高頻度単語が予め対応付けられている。
【0026】
また、「7***h」~「E***h」の符号については、2バイトの符号である。「7***h」の符号は、英語の高頻度に出現する単語が、「8***h」の符号は、日本語の高頻度に出現する単語が、「9***h」の符号は、数値や第3国語の高頻度に出現する単語が予め対応付けられている。「A***h」~「E***h」の符号については、低頻度単語が出現した際に符号を動的に割り当てる。なお、「F*****h」は、符号の不足に対応するため、3バイトの符号としている。
【0027】
NNCテーブル16は、1/2/3バイトの可変長の圧縮符号に対して、4バイト(32ビット)の同一の長さの固定長であるNNCを対応付ける情報である。例えば、NNCテーブル16は、静的辞書14に記憶される静的コードとNNCとを静的に対応付ける。また、NNCテーブル16は、動的辞書15に新たに登録された単語については、当該単語に付与された動的コードにNNCを新たに対応付ける。なお、各静的コードとNNCとの対応付けは、静的変換テーブルなどを予め生成しておくことで、静的な対応付けを管理することができる。
【0028】
ベクトルテーブル17は、固定長符号のNNCとベクトルデータの200次元のベクトル値とを対応付ける情報である。例えば、ベクトルテーブル17は、モデル学習のためのベクトル生成のために、NNCとベクトルデータとを1対1で対応付ける。このベクトルテーブル17により、テキストデータ内の単語に対応するNNCから、機械学習を行うベクトルデータを特定することができる。
【0029】
図4は、NNCとベクトルデータとの対応付けを説明する図である。図4に示すように、NNCテーブル16の先頭コードとベクトルテーブル17の先頭アドレスを用いて、相対アドレスや絶対アドレスにより、NNCとベクトルデータとを対応付けることができる。例えば、相対アドレスの場合、NNCの相対コード×800バイトにより、ベクトルテーブル17内の位置を特定して対応付ける。また、絶対アドレスの場合、ベクトルテーブル17の先頭アドレス+相対アドレス、または、絶対コード-先頭コードにより、ベクトルテーブル17内の位置を特定して対応付ける。
【0030】
制御部20は、情報処理装置10全体を司る処理部であり、例えばプロセッサなどである。例えば、制御部20は、符号化部21、変換部22、ベクトル化部23、学習部24を有する。なお、符号化部21、変換部22、ベクトル化部23、学習部24は、プロセッサが有する電子回路の一例やプロセッサが実行するプロセスの一例である。
【0031】
符号化部21は、テキストデータ13を符号化する処理部である。具体的には、符号化部21は、形態素解析等の手法を用いてテキストデータ13を単語に分割し、各単語を符号化する。例えば、符号化部21は、単語が静的辞書14に登録されている場合には、静的辞書14に設定される該当の静的コードに変換する。
【0032】
また、符号化部21は、単語が静的辞書14に登録されていない場合、動的辞書15を参照して登録されているか否かを判定する。そして、符号化部21は、単語が動的辞書15に既に登録されている場合には、動的辞書15に設定される該当の動的コードに変換する。一方、符号化部21は、単語が動的辞書15に既に登録されていない場合には、動的辞書15に新たに登録して動的コードを割当てた後、当該動的コードに変換する。
【0033】
図5は、多義語の静的符号化と動的符号化を説明する図である。ここでは、多義語である「cool」を例にして説明する。図5に示すように、符号化部21は、「冷たい」の意味で利用される単語「cool」を基本形として「cool(1)」と識別する。そして、符号化部21は、「cool(1)」に対応する単語「cool」に対して、静的辞書14において静的コード「712Ah」が割り当てられていることから、ハッシュフィルタにおいて「cool」へのポインタと「cool」の静的コード「712Ah」とを対応付けて格納する。
【0034】
また、符号化部21は、「かっこいい」の意味で利用される単語「cool」を「cool(5)」と識別し、静的辞書14に登録されていないことから、動的コードを割当てる。具体的には、符号化部21は、「cool(5)」に対応する単語「cool」に動的コード「A002h」を割当てて、種別(5=多義語)とともに動的辞書15に登録する。そして、符号化部21は、ハッシュフィルタにおいて「cool(5)」に対応する「cool」へのポインタと動的コード「A002h」とを対応付けて格納する。また、符号化部21は、符号の復号時に「cool(5)」の意味で復号するために、動的辞書15のバッファ部に、動的コード「A002h」に割り当てた「cool(5)」の静的コード「712Ah」とIDである5を対応付けて管理する。つまり、バッファ部には、単語(cool)及び語義(かっこいい)の組みが特定できる情報が格納される。
【0035】
このようにして、符号化部21は、多義語である「cool」の意味ごとに、静的コードまたは動的コードを割当てることができ、意味を区別して符号化することができる。なお、多義語について、どの意味で利用されているかは、ユーザが指定することもでき、前後の単語関係を意味ごとに管理しておくことで、自動で特定することもできる。
【0036】
また、図6は、成句の静的符号化と動的符号化を説明する図である。ここでは、「take off」などに利用される「take」を例にして説明する。図6に示すように、符号化部21は、単語「take」を基本形として「take(1)」と識別する。そして、符号化部21は、「take(1)」に対応する単語「take」に対して、静的辞書14において静的コード「7A3Ch」が割り当てられていることから、ハッシュフィルタにおいて「take」へのポインタと「take」の静的コード「7A3Ch」とを対応付けて格納する。なお、図6において、複数の「take」に同じ静的コードが割り当てられているのは、複数の意味の「take」を同じ符号で符号化するためである。
【0037】
また、符号化部21は、「off」と連結して「take off」として利用される単語「take」を「take(7)」で識別し、静的辞書14に登録されていないことから、動的コードを割当てる。具体的には、符号化部21は、「take(7)」に対応する単語「take」に動的コード「A003h」を割当てて、種別(6=成句)とともに動的辞書15に登録する。そして、符号化部21は、ハッシュフィルタにおいて「take(7)」に対応する単語「take」へのポインタと動的コード「A003h」とを対応付けて格納する。また、符号化部21は、符号の復号時に「take(7)」の意味で復号するために、動的辞書15のバッファ部に、動的コード「A003h」に割り当てた「take」の静的コード「7A3Ch」とIDである7を対応付けて管理する。
【0038】
このようにして、符号化部21は、成句である「take」の意味ごとに、静的コードまたは動的コードを割当てることができ、意味を区別して符号化することができる。なお、どのような成句であるかは、ユーザが指定することもでき、前後の単語関係を意味ごとに管理しておくことで、自動で特定することもできる。
【0039】
図2に戻り、変換部22は、符号化部21により符号化された圧縮ファイルをNNCに変換する処理部である。具体駅には、変換部22は、NNCテーブル16にしたがって、圧縮ファイルに含まれる各圧縮符号に対応するNNCを特定し、各圧縮符号を各NNCに変換する。すなわち、変換部22は、圧縮ファイル内の可変長の各圧縮符号を固定長のNNCに置換する。
【0040】
ここで、動的コードが割り当てられる単語について、当該単語の基本形の静的コードとNNCとの対応付けである基本形変換テーブルを用いて、動的コードからNNCに変換する方法について具体的に説明する。例えば、多義語「cool」について、基本形である「冷たい」の意味の「cool(1)」の静的コードとNNCとの対応付けを説明し、「かっこいい」の意味の「cool(5)」の動的コードからNNCに変換する方法を説明する。なお、多義語や成句については、予めNNCと1対Nで対応付けられている。
【0041】
図7は、基本形変換テーブルを用いて、多義語や成句の動的符号からNNCを生成を説明する図である。図7の(a)は多義語の例であり、図7の(b)は成句の例である。変換部22は、多義語において、圧縮ファイルの動的辞書にその単語の基本形とその単語の意味を特定する語義IDを格納する。
【0042】
具体的には、図7の(a)に示すように、変換部22は、単語「cool」の静的コード「712Ah」と、当該NNCの位置「00001321h」とを対応付けて基本形変換テーブルに格納する。変換部22は、この基本形変換テーブルを用いて、「かっこいい」の意味を持つ「cool(5)」の動的符号「A002h」のバッファの情報「cool△712Ah+ID」から、「00001321h」を獲得し、IDである5を加算し、NNCを生成する。また、図7の(b)に示すように、単語「take」の静的コード「7A3Ch」と、当該NNCの位置「00002E7Fh」とを対応付けて基本形変換テーブルに格納する。変換部22は、この基本形変換テーブルを用いて、成句「take(7)」の動的符号「A003h」のバッファの情報「take△7A3Ch+ID」から、「00002E7Fh」を獲得し、IDである7を加算し、NNCを生成する。
【0043】
図8は、語形変化や熟語の動的符号からNNCの生成を説明する図である。変換部22は、多義語や成句に加え、語形変化の動的符号からNNCを生成する。具体的には、図8に示すように、変換部22は、語形変化した「goes」の動的符号「71B1h」のバッファの情報「go△71B1h+ID」から、基本形変換テーブルを用いて「000019CDh」を獲得し(IDの加算は不要)、NNCを生成する。
【0044】
なお、熟語とNNCテーブルは1対1に対応付けられており、動的符号のバッファの情報の文字列をもとにNNCを獲得することができる。具体的に、変換部22は、熟語「White House」は、動的符号「A000h」のバッファの情報「White△House」の文字列とNNCテーブルの文字列部を比較し、NNC「0053A34Bh」を獲得する。
【0045】
図2に戻り、ベクトル化部23は、変換部22により変換されたNNCをベクトル値に変換する処理部である。具体的には、ベクトル化部23は、静的コードに対応付けられる静的なNNCについては、ベクトル値を予め割当てて、ベクトルテーブル17で管理する。また、ベクトル化部23は、動的コードについては、動的コードに対してNNCが割与えられると、動的にベクトル値を割当てて、ベクトルテーブル17で管理する。
【0046】
そして、ベクトル化部23は、各テキストデータ13についてNNCの割当てが実行された後、ベクトル値の割当てを実行することで、圧縮符号(静的コード、動的コード)とNNCとベクトル値とを対応付けて動的に管理する。この結果、ベクトル化部23は、各テキストデータ13から変換された各NNCを、ベクトルテーブル17を参照して、ベクトル値に変換してベクトルデータを生成して、学習部24に出力する。
【0047】
学習部24は、テキストデータ13から生成されたベクトルデータを用いて、機械学習を実行する処理部である。具体的には、学習部24は、ベクトルデータをRNN(Recurrent Neural Network)に入力し、RNNからの出力と正解情報であるラベル(和訳)との誤差が小さくなるように、RNNの各種パラメータ等を学習する。そして、学習部24は、学習が完了すると、各パラメータを含む学習結果を記憶部12に格納する。
【0048】
図9は、実施例1の学習例を説明する図である。図9では、教師データとして、入力データ「I take lunch out of store.」と、出力データ「私は店からランチを買って出る」とを用いる例で説明する。図9に示すように、学習部24は、テキストデータ「I take lunch out of store.」から、圧縮符号化およびNNC化を経て、生成されたベクトルデータ「V1,V2,・・・,Vn」をRNNの各入力層に入力する。
【0049】
そして、学習部24は、RNNの出力層からの出力結果を取得する。続いて、学習部24は、静的辞書14および動的辞書15等を参照して、各出力結果を復号して単語を取得することで、翻訳結果を取得する。その後、学習部24は、テキストデータの正確な訳であるラベル「私は店からランチを買って出る」と、RNNの翻訳結果との誤差が小さくなるように、RNNを学習する。
【0050】
なお、学習完了後、情報処理装置10は、翻訳対象のテキストデータが入力されると、学習時と同様、圧縮符号化、NNC化、ベクトル化を実行してベクトルデータを生成して、学習済みのRNNに入力する。そして、情報処理装置10は、学習済みのRNNの出力結果を翻訳結果としてユーザに出力する。
【0051】
[処理の流れ]
図10は、処理の流れを示すフローチャートである。図10に示すように、符号化部21は、処理開始が指示されると(S101:Yes)、テキストデータ13を記憶部12から取得し(S102)、形態素解析等により単語に分割する(S103)。
【0052】
続いて、符号化部21は、単語を1つ選択し(S104)、静的辞書14に登録済みか否かを判定する(S105)。ここで、符号化部21は、静的辞書14に登録済みの場合(S105:Yes)、静的辞書14に基づき符号化する(S106)。なお、静的辞書に登録済みの場合、NNCテーブル16およびベクトルテーブル17への対応付けも完了している。
【0053】
一方、符号化部21は、静的辞書14に未登録の場合(S105:No)、動的辞書15に登録済みか否かを判定する(S107)。ここで、符号化部21は、動的辞書15に登録済みの場合(S107:Yes)、動的辞書15に基づき符号化する(S108)。なお、動的辞書に登録済みの場合、NNCテーブル16およびベクトルテーブル17への対応付けも完了している。
【0054】
一方、符号化部21は、動的辞書15に未登録の場合(S107:No)、動的辞書15に新たに符号を割当て、当該単語を符号化する(S109)。続いて、変換部22は、割り当てた符号(動的コード)にNNCを新規に割当てる(S110)。さらに、ベクトル化部23は、新規に割当てたNNCにベクトル値を新規に割当てる(S111)。
【0055】
その後、テキストデータ内に未処理の単語が存在する場合(S112:No)、S102以降が繰り返される。一方、テキストデータ内の全単語について処理が完了すると(S112:Yes)、S113以降が実行される。
【0056】
具体的には、変換部22が、NNCテーブル16にしたがって、テキストデータ13が符号化された圧縮ファイルの各圧縮符号をNNCに変換し、ベクトル化部23が、ベクトルテーブル17にしたがって、各NNCをベクトル値に変換する(S113)。
【0057】
続いて、学習部24は、テキストデータ13から生成されたベクトルデータを用いて、翻訳モデルの機械学習を実行する(S114)。その後、学習を継続する場合(S115:No)、S102以降が繰り返され、学習を終了するタイミングである場合(S115:Yes)、学習が終了される。
【0058】
[効果]
上述したように、情報処理装置10は、4バイトの固定長のNNCの符号に、単語のベクトルテーブル17を対応付ける。また、情報処理装置10は、可変長の圧縮符号の動的辞書から動的コード変換テーブルを生成し、NNCにコード変換する。そして、情報処理装置10は、CBOW関数などを用いて、各単語の200次元のベクトル値を算出し、単語のベクトルテーブル17に格納する。
【0059】
次に、情報処理装置10は、RNNの機械学習において、圧縮ファイルをリードし、可変長の圧縮符号を固定長のNNCにコード変換し、NNCの符号に対応付けられた単語のベクトルテーブル17から200次元のベクトル値を取得する。その後、情報処理装置10は、単語毎の総当たり演算を行い、RNNの機械学習を行う。
【0060】
図11は、処理の高速化を説明する図である。図11に示すように、一般的に利用される関連技術の場合、符号化を行う圧縮、圧縮符号を読み込み、圧縮符号の伸張、字句解析(形態素解析)をCPUが実行し、その後のハッシュ演算、ベクトル取得、関数演算をGPUが実行する。この場合、各テキストデータを用いて学習する際に、伸張と字句解析を符号の数だけ繰り返すとともに、ハッシュ演算も符号の数だけ繰り返すことになるので、処理時間が長くなる。
【0061】
一方、実施例1の場合、単語符号化と圧縮符号の読み込みとをCPUが実行し、ベクトル取得と関数演算をGPUで分担する。このように、単語単位で符号化し、圧縮符号とNNCとベクトル値とを対応付けて管理するので、関連技術において繰り返される、伸長、字句解析、ハッシュ関数によるアドレス演算などを削減でき、大幅な高速化が図れる。
【実施例2】
【0062】
ところで、実施例1では、テキストデータを用いた例を説明したが、実施例1による手法は、ゲノムの塩基配列にも適用することができる。そこで、実施例2では、ゲノムの塩基配列に適用した例を説明する。
【0063】
図12は、従来の技術を塩基配列へ適したときの問題点を説明する図である。図12に示すように、従来の圧縮技術では、入力データを最長一致文字列に符号を割り当てるので、CUGやACU、GAUなどのコドン単位にアミノ酸として意味を持つ場合であっても、コドン単位に符号化できずに、コドンの途中で符号化の分断が発生する。この場合、意味を持つコドン単位に符号化することができないので、機械学習の精度が低下する。
【0064】
そこで、実施例2では、例えばタンパク質やアミノ酸などのように、意味を持つ単位に形態素解析して、符号化、NNC化、ベクトル化を実行する。ここでは、一例として、タンパク質やアミノ酸などを含む治験データを入力データとして学習する例を説明する。なお、治験データには、ラベルとして副作用が設定されているものとする。つまり、タンパク質などの組み合わせを特徴量として、副作用の発生や強さを予測する機械学習モデルを構築する。
【0065】
図13Aは、ゲノムに含まれるタンパク質を特定する処理を説明するための図である。図13Aに示すように、第2符号化部210は、コドン圧縮ファイル200a、コドン転置インデックス200b、タンパク質辞書210A、辞書インデックス210B、タンパク質HMM210Cを基にして、タンパク質圧縮ファイル220aおよびタンパク質転置インデックス220bを生成する。
【0066】
第2符号化部210は、辞書インデックス210Bを基にして、コドン圧縮ファイル200aに含まれる各タンパク質のコドン符号配列の切れ目を特定する。第2符号化部210は、各切れ目の間のコドン符号配列と、タンパク質辞書210Aとを基にして、各切れ目の間のコドン符号配列に対応するタンパク質の符号を特定し、コドン符号配列を、タンパク質の符号に変換する。
【0067】
第2符号化部210は、タンパク質の符号(切れ目)に続くコドン符号配列が、複数のタンパク質の符号に該当する場合には、タンパク質HMM210Cを基にして、該当する複数のタンパク質の符号のうち、最も共起率の高いタンパク質の符号を特定する。第2符号化部210は、切れ目に続くコドン符号配列を、特定したタンパク質の符号に変換する。第2符号化部210は、上記処理を繰り返し実行することで、タンパク質圧縮ファイル220aを生成する。
【0068】
上記のように、コドン圧縮ファイル200aに含まれるタンパク質と、このタンパク質に後続するタンパク質の共起率を算出することで、タンパク質HMM210Cを生成する。タンパク質HMM210Cを用いることで、コドン圧縮ファイル200aのコドン符号配列を、正しいタンパク質単位で切り出すことができる。正しいタンパク質単位で切り出すことで、コドン圧縮ファイル200aをタンパク質単位で符号化したタンパク質圧縮ファイル220aを生成することができる。また、コドン圧縮ファイル200aに含まれるタンパク質の配列を特定できるので、タンパク質を容易に特定可能となる。
【0069】
図13Bは、突然変異が発生した塩基配列データの評価を高速化する例を説明する図である。図13Bに示すように、情報処理装置10が、評価対象となる評価対象ゲノムデータ200aに対して、突然変異「挿入」を発生させることで、新たな突然変異ゲノムデータ250aを生成する。情報処理装置10は、突然変異ゲノムデータ250aの基準コドン「AAA(6Ah)」を、基準位置200βを基にして特定する。
【0070】
情報処理装置10は、突然変異ゲノムデータ250aに対して、タンパク質の単位で、形態素解析を実行することで、突然変異ゲノムデータ250aに含まれる複数の形態素を特定する。たとえば、一つの形態素には、タンパク質に対応するコドン配列が含まれる。
【0071】
情報処理装置10は、突然変異ゲノムデータ250aに対して実行した形態素解析の結果と、所定のタンパク質(既存のタンパク質)の符号と、コドン単位の符号の配列とを対応付ける静的辞書の情報であるタンパク質辞書情報とを比較し、突然変異ゲノムデータ250aの形態素が、タンパク質辞書情報のコドン配列にヒットした場合には、突然変異ゲノムデータ250aの形態素を、タンパク質の符号に変換する。本実施例では、符号化したタンパク質を、適宜、タンパク質α、β、γ等のギリシャ文字によって表記する。
【0072】
情報処理装置10は、基準コドンを含む形態素のコドン配列が、タンパク質辞書情報のコドン配列にヒットしない場合には、基準コドンを含む形態素のコドン配列が、動的辞書情報250Aのコドン配列にヒットするか否かを判定する。情報処理装置は、基準コドンを含む形態素のコドン配列が、動的辞書情報250Aのコドン配列にヒットしない場合には、突然変異ゲノムデータ250aに類似する癌ゲノムは、癌ゲノムDBに存在しないと判定する。
【0073】
これに対して、情報処理装置10は、基準コドンを含む形態素のコドン配列が、動的辞書情報250Aのコドン配列にヒットする場合には、突然変異ゲノムデータ250aに類似する癌ゲノムは、癌ゲノムDBに存在すると判定する。たとえば、基準コドン「AAA(6Ah)」を含むコドン配列「UUC(41h)/AAA(6Ah)/GUA(72h)」は、動的辞書情報250Aに存在しているため、情報処理装置は、突然変異ゲノムデータ250aに類似する癌ゲノムは、癌ゲノムDBに存在すると判定する。
【0074】
情報処理装置10は、基準コドンを含む形態素のコドン配列が、動的辞書情報250Aのコドン配列にヒットする場合には、登録番号によって、コドン配列を符号化する。情報処理装置10は、上記処理を実行することで、タンパク質単位に符号化した、突然変異ゲノムデータ251aを生成する。以下の説明では、類似度の評価のため、動的符号に符号化した、基準コドンを含む未知のタンパク質を便宜上、「基準タンパク質」と表記する。
【0075】
図13Cは、実施例2にかかる処理を説明する図である。図13Cに示すように、実施例2にかかる情報処理装置10は、実施例1による手法によって、各タンパク質に静的コードや動的コードを割当てて、静的辞書14や動的辞書15を更新する。
【0076】
そして、情報処理装置10は、実施例1による手法によって、各タンパク質に割り当てた符号にNNCを割当てる。例えば、情報処理装置10は、タンパク質(1)に割り当てられた符号にNNC(1)を割当て、タンパク質(2)に割り当てられた符号にNNC(2)を割当てて、NNCテーブル16を生成する。
【0077】
また、情報処理装置10は、実施例1による手法によって、各NNCにベクトル値を割当てる。例えば、情報処理装置10は、タンパク質(1)のNNC(1)にはV(1)を割当て、タンパク質(2)のNNC(2)にはV(2)を割当てて、ベクトルテーブル17を生成する。
【0078】
このようにして、情報処理装置10は、タンパク質やアミノ酸などを含む治験データを受け付けると、静的辞書14や動的辞書15にしたがって符号化し、NNCテーブル16にしたがってNNC化し、ベクトルテーブル17にしたがって、治験データのベクトル化を実行する。その後、情報処理装置10は、ベクトル化されたベクトルデータをRNNに入力して学習を実行する。
【0079】
図14は、実施例2の学習例を説明する図である。図14は、教師データとして、入力データ「治験データ」、出力データ「副作用」を用いる例で説明する。図14に示すように、情報処理装置10は、入力データ「治験データ」を意味のある単位で分割した後、圧縮符号化およびNNC化を実行し、ベクトルデータ「V1,V2,・・・,Vn」を生成して、RNNの各入力層に入力する。
【0080】
そして、情報処理装置10は、RNNの出力層からの出力結果を取得する。続いて、情報処理装置10は、静的辞書14および動的辞書15等を参照して、各出力結果を復号して単語を取得することで、翻訳結果を取得する。その後、学習部24は、入力データに設定される「副作用」と、RNNの翻訳結果との誤差が小さくなるように、RNNを学習する。
【0081】
このようにすることで、情報処理装置10は、区切りのない塩基配列を、意味を持つ単位に分割して学習することができる。この結果、情報処理装置10は、塩基配列の特徴と副作用との関係性を学習することができ、新薬開発等にも役立てることができる。
【実施例3】
【0082】
ところで、上記実施例1ではテキストデータが入力された場合について、また、上記実施例2では塩基配列が入力された場合について、一般的なファイルシステムにおける処理やその流れを説明したが、これに限定されず、データベース(DB)に適用することができる。
【0083】
図15は、従来のデータベースの問題点を説明する図である。図15に示すように、従来技術では、テキストはLZ78系圧縮され登録されているが、テキスト伸長されて、DBからエクスポートされ、TensorFlowなどでベクトル生成や機械学習が行われている。
【0084】
ベクトル生成やRNN機械学習は多次元解析であり、SQL言語で処理でき、本来、DBに適している。現在では、気象予測などの数値入力の分野では、In-Database分析技術とも呼ばれ、AI(Artificial Intelligence)分析としての応用技術が普及している。
【0085】
しかし、テキストデータのAI分析では、意味ある単位の単語に字句解析(形態素解析)する必要があり、DBからエクスポートされ、TensorFlowなどにより分析されているのが実状である。
【0086】
つまり、従来技術では、テキストデータを図15の(a)に示す、テキスト伸長とDBエクスポートの繰返し、15の(b)に示す字句解析とハッシュ演算を繰り返すことになる。このようにすることで、多義語や成句などによる精度低下を抑制することになるが、処理の遅延が発生する。そこで、実施例3では、従来技術で繰り返し行われる処理を省略することで、処理の高速化を実現する。
【0087】
図16は、実施例3にかかるデータベースへの適用例を説明する図である。図16に示すように、情報処理装置10は、単語の符号化を工夫し、テキスト伸長とDBのエクスポートの処理を見直しして、In-Database分析技術を活用して、多次元解析を行う。具体的には、情報処理装置10は、データベースからデータを取り出さずに、単語単位に圧縮された、圧縮符号を読み込み、NNCに変換し、ベクトル生成やRNN機械学習を実行する。また、情報処理装置10は、単語圧縮においては、字句解析(形態素解析)、ハッシュ演算による静的コードまたは動的コードの取得、符号化、インデックス生成、ベクトル生成などを実行する。なお、各単語の圧縮符号とNNCとベクトルデータとの対応付けは、実施例1と同様の手法を用いる。
【0088】
このように、実施例3にかかる情報処理装置10は、従来技術におけるテキスト伸長やDBエクスポートおよび字句解析やハッシュ演算の繰返しを省略することができるので、処理の高速化を実現することができる。
【実施例4】
【0089】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。例えば、圧縮符号化などは、特開2018-195028号公報などの技術を採用することができる。
【0090】
[機械学習モデル]
上述したニューラルネットワーク機械学習モデルには、Softmax関数を適用した機械学習を採用しているが、他の機械学習を用いることもできる。また、制限ボルツマンマシンの関数を用いて学習することもできる。また、日本語と英語を例にして説明したが、言語を限定するものではなく、他の言語でも同様に処理することができる。
【0091】
[各種対応付け]
上記実施例では、基本形変換テーブルや動的変換テーブルを用いて、各テーブル等を対応付ける例を説明したが、これに限定されず、アドレス変換やポインタなどの技術を用いることもできる。
【0092】
[ハードウェア構成]
図17は、情報処理装置10のハードウェア構成を示す図である。図17の例に示すように、コンピュータ400は、各種演算処理を実行するCPU401と、ユーザからのデータ入力を受け付ける入力装置402と、モニタ403とを有する。また、コンピュータ400は、記憶媒体からプログラム等を読み取る媒体読取装置404と、他の装置と接続するためのインタフェース装置405と、他の装置と無線により接続するための無線通信装置406とを有する。また、コンピュータ400は、各種情報を一時記憶するRAM407と、ハードディスク装置408とを有する。また、各装置401~408は、バス409に接続される。
【0093】
ハードディスク装置408には、例えば図2に示した符号化部21、変換部22、ベクトル化部23、学習部24の各処理部と同様の機能を有する情報処理プログラムが記憶される。また、ハードディスク装置408には、情報処理プログラムを実現するための各種データが記憶される。
【0094】
CPU401は、ハードディスク装置408に記憶された各プログラムを読み出して、RAM407に展開して実行することで各種の処理を行う。これらのプログラムは、コンピュータ400を、例えば図2に示した符号化部21、変換部22、ベクトル化部23、学習部24として機能させることができる。
【0095】
なお、上記の情報処理プログラムは、必ずしもハードディスク装置408に記憶されている必要はない。例えば、コンピュータ400が読み取り可能な記憶媒体に記憶されたプログラムを、コンピュータ400が読み出して実行するようにしてもよい。コンピュータ400が読み取り可能な記憶媒体は、例えば、CD-ROMやDVDディスク、USB(Universal Serial Bus)メモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリ、ハードディスクドライブ等が対応する。また、公衆回線、インターネット、LAN(Local Area Network)等に接続された装置にこのプログラムを記憶させておき、コンピュータ400がこれらからプログラムを読み出して実行するようにしてもよい。
【0096】
[プログラム構成]
図18は、コンピュータ400で動作するプログラムの構成例を示す図である。コンピュータ400において、図17に示すハードウェア群26(401~409)の制御を行なうOS(オペレーティング・システム)27が動作する。OS27に従った手順でCPU401が動作して、ハードウェア群26の制御・管理が行なわれることにより、アプリケーションプログラム29やミドルウェア28に従った処理がハードウェア群26で実行される。さらに、コンピュータ400において、ミドルウェア28またはアプリケーションプログラム29が、RAM407に読み出されてCPU401により実行される。
【0097】
CPU401により圧縮機能が呼び出された場合、ミドルウェア28またはアプリケーションプログラム29の少なくとも一部に基づく処理を行なうことで、(それらの処理をOS27に基づいてハードウェア群26を制御して)圧縮部110の機能が実現される。圧縮機能は、それぞれアプリケーションプログラム29自体に含まれてもよいし、アプリケーションプログラム29に従って呼び出されることで実行されるミドルウェア28の一部であってもよい。
【0098】
アプリケーションプログラム29(またはミドルウェア28)の圧縮機能により得られる圧縮ファイルは、部分的に伸張することも可能である。圧縮ファイルの途中を伸張する場合には、伸張対象の部分までの圧縮データの伸張処理が抑制されるため、CPU401の負荷が抑制される。また、伸張対象の圧縮データを部分的にRAM407上に展開するので、ワークエリアも削減される。
【0099】
[システム]
図19は、実施形態のシステムにおける装置の構成例を示す図である。図19のシステムは、コンピュータ400a、コンピュータ400b、基地局300およびネットワーク40を含む。コンピュータ400aは、無線または有線の少なくとも一方により、コンピュータ400bと接続されたネットワーク40に接続している。
【0100】
上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【0101】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散や統合の具体的形態は図示のものに限られない。つまり、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
【0102】
さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【符号の説明】
【0103】
10 情報処理装置
11 通信部
12 記憶部
13 テキストデータ
14 静的辞書
15 動的辞書
16 NNCテーブル
17 ベクトルテーブル
20 制御部
21 符号化部
22 変換部
23 ベクトル化部
24 学習部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13A
図13B
図13C
図14
図15
図16
図17
図18
図19