(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-12-13
(45)【発行日】2022-12-21
(54)【発明の名称】機械学習方法、機械学習装置および機械学習プログラム
(51)【国際特許分類】
G06F 40/216 20200101AFI20221214BHJP
【FI】
G06F40/216
(21)【出願番号】P 2021558128
(86)(22)【出願日】2019-11-21
(86)【国際出願番号】 JP2019045670
(87)【国際公開番号】W WO2021100183
(87)【国際公開日】2021-05-27
【審査請求日】2022-01-26
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002918
【氏名又は名称】弁理士法人扶桑国際特許事務所
(72)【発明者】
【氏名】梁 俊
【審査官】長 由紀子
(56)【参考文献】
【文献】柳沼 大輝 外2名,分散表現のファインチューニングによる語義曖昧性解消の領域適応,情報処理学会 研究報告 自然言語処理(NL) 2018-NL-236 [online] ,日本,情報処理学会,2018年07月02日,pp.1-5
【文献】大内 啓樹 外2名,意味役割付与におけるトランズダクティブ分野適応,言語処理学会第25回年次大会 発表論文集 [online] ,日本,言語処理学会,2019年03月04日,pp.155-158
(58)【調査した分野】(Int.Cl.,DB名)
G06F 40/00-58
(57)【特許請求の範囲】
【請求項1】
入力された文書に含まれる単語のうち、文章の分野を示す第1のドメインおよび第2のドメインの両方で使用される共通単語を特定し、
前記文書に含まれる単語のうち前記共通単語以外の2以上の他の単語に基づいて、前記第1のドメインと前記第2のドメインとの間の重みを算出し、
前記第1のドメインに対応する第1のモデルによって前記共通単語に対して算出される第1の特徴情報と、前記第2のドメインに対応する第2のモデルによって前記共通単語に対して算出される第2の特徴情報と、前記重みとを用いて、前記文書において前記共通単語に対して割り当てる第3の特徴情報を算出し、
前記第3の特徴情報と前記文書に含まれる前記共通単語に対して付与された教師ラベルとを用いて、第3のモデルの学習を実行する、
処理をコンピュータが実行することを特徴とする機械学習方法。
【請求項2】
前記文書は、それぞれ2以上の文を含む複数のブロックを含み、
前記重みは、前記複数のブロックそれぞれに対して算出される、
ことを特徴とする請求項1に記載の機械学習方法。
【請求項3】
前記重みを算出する処理は、前記2以上の他の単語のうち、前記第1のドメインで使用される単語の第1の個数と前記第2のドメインで使用される単語の第2の個数とをカウントし、前記第1の個数と前記第2の個数との比に基づいて前記重みを算出する処理を含む、
ことを特徴とする請求項1に記載の機械学習方法。
【請求項4】
前記重みを算出する処理は、前記第1のドメインに対応する第1の確率的言語モデルを用いて、前記共通単語および前記2以上の他の単語を含む単語列の第1の確率を推定し、前記第2のドメインに対応する第2の確率的言語モデルを用いて、前記単語列の第2の確率を推定し、前記第1の確率と前記第2の確率との比に基づいて前記重みを算出する処理を含む、
ことを特徴とする請求項1に記載の機械学習方法。
【請求項5】
前記第1の特徴情報は第1の単語ベクトルであり、前記第2の特徴情報は第2の単語ベクトルであり、前記第3の特徴情報は第3の単語ベクトルであり、
前記第3の単語ベクトルは、前記第1の単語ベクトルと前記第2の単語ベクトルとを前記重みに応じて変換して結合することで算出される、
ことを特徴とする請求項1に記載の機械学習方法。
【請求項6】
前記教師ラベルは、前記共通単語が固有表現であるか否かを示し、
前記第3のモデルは、単語列の中から固有表現を抽出する固有表現抽出モデルである、
ことを特徴とする請求項1に記載の機械学習方法。
【請求項7】
前記第2のドメインは、所定の専門分野を示す専門ドメインであり、前記第1のドメインは、前記第2のドメインより広い分野を示す一般ドメインと前記第2のドメインと異なる専門分野を示す他の専門ドメインとの何れか一方である、
ことを特徴とする請求項1に記載の機械学習方法。
【請求項8】
単語に割り当てる特徴情報を算出するモデルであって、文章の分野を示す第1のドメインに対応する第1のモデルと、前記第1のドメインと異なる分野を示す第2のドメインに対応する第2のモデルとを記憶する記憶部と、
入力された文書に含まれる単語のうち、前記第1のドメインおよび前記第2のドメインの両方で使用される共通単語を特定し、前記文書に含まれる単語のうち前記共通単語以外の2以上の他の単語に基づいて、前記第1のドメインと前記第2のドメインとの間の重みを算出し、前記第1のモデルによって前記共通単語に対して算出される第1の特徴情報と、前記第2のモデルによって前記共通単語に対して算出される第2の特徴情報と、前記重みとを用いて、前記文書において前記共通単語に対して割り当てる第3の特徴情報を算出し、前記第3の特徴情報と前記文書に含まれる前記共通単語に対して付与された教師ラベルとを用いて、第3のモデルの学習を実行する処理部と、
を有することを特徴とする機械学習装置。
【請求項9】
入力された文書に含まれる単語のうち、文章の分野を示す第1のドメインおよび第2のドメインの両方で使用される共通単語を特定し、
前記文書に含まれる単語のうち前記共通単語以外の2以上の他の単語に基づいて、前記第1のドメインと前記第2のドメインとの間の重みを算出し、
前記第1のドメインに対応する第1のモデルによって前記共通単語に対して算出される第1の特徴情報と、前記第2のドメインに対応する第2のモデルによって前記共通単語に対して算出される第2の特徴情報と、前記重みとを用いて、前記文書において前記共通単語に対して割り当てる第3の特徴情報を算出し、
前記第3の特徴情報と前記文書に含まれる前記共通単語に対して付与された教師ラベルとを用いて、第3のモデルの学習を実行する、
処理をコンピュータに実行させることを特徴とする機械学習プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は機械学習技術に関する。
【背景技術】
【0002】
自然言語で記載された文書を処理する自然言語処理の分野では、単語の特徴を表す特徴情報として分散表現の単語ベクトルが使用されることがある。分散表現は、単語埋め込み(Word Embeddings)と言われることがある。分散表現は単語の意味(語義)を反映しており、語義の近い単語には類似する単語ベクトルが割り当てられるという性質をもつ。分散表現の単語ベクトルを用いることで、固有表現抽出や機械翻訳などの各種の自然言語処理アプリケーションを実現することが容易となる。
【0003】
単語に対して分散表現の単語ベクトルなどの特徴情報を割り当てるモデルは、それ自体が機械学習によって学習される。良質な特徴情報を算出するモデルは、インターネットから収集された大規模Webテキストなどの大規模テキストコーパスを用いて学習されることが多く、データ収集コストや計算コストなどの学習コストが高い。一方、大規模テキストコーパスを用いて学習された学習済みモデルの中には、公開されており容易に入手可能なものがある。そこで、既存の学習済みモデルを利用することがある。
【0004】
例えば、分散表現の単語ベクトルを算出するモデルを生成(更新)する増分生成システムが提案されている。提案の増分生成システムは、大規模な既存テキストコーパスを用いて学習された既存モデルの使用開始後に、小規模な追加テキストコーパスを入手し、追加テキストコーパスから新規モデルを生成する。増分生成システムは、既存テキストコーパスのサイズと追加テキストコーパスのサイズの比から重みを決定する。増分生成システムは、既存モデルと新規モデルの両方に出現する単語に対して、既存モデルの単語ベクトルと新規モデルの単語ベクトルとを重み付けして合算して、新たな単語ベクトルを割り当てる。
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【発明が解決しようとする課題】
【0006】
ところで、同一単語であっても、文章の分野を示す「ドメイン」が異なると、異なる文脈や異なる語義として使用されることがある。ドメインは、大規模Webテキストのように特定の専門分野に限定されない一般ドメイン(Generic Domain)であることもあるし、政治経済や医療技術などの特定の専門分野を示す専門ドメイン(Specific Domain)であることもある。入力される文書のドメインがわかっていれば、ドメインに応じて異なる特徴情報を単語に割り当てることが好ましい。これにより、単語の特徴情報を訓練データとして利用する後続の機械学習の精度を向上させることができる。
【0007】
しかし、入力される文書のドメインに合った適切な特徴情報を単語に割り当てることは容易でないという問題がある。例えば、入力される文書のドメインが不明であることもあるし、特徴情報を算出する学習済みモデルを保持していない新規ドメインであることもある。入力される文書のドメインが新規ドメインであることがわかっても、単語の特徴情報を算出する新規モデルを生成できる程度の十分なデータ量がないこともある。その結果、ドメインの違いを反映した適切な特徴情報が単語に割り当てられず、単語の特徴情報を利用する後続モデルの機械学習の精度が低下するおそれがある。
【0008】
1つの側面では、本発明は、複数の単語を含む文書を用いた機械学習の精度を向上させる機械学習方法、機械学習装置および機械学習プログラムを提供することを目的とする。
【課題を解決するための手段】
【0009】
1つの態様では、コンピュータが以下の処理を実行することを特徴とする機械学習方法が提供される。入力された文書に含まれる単語のうち、文章の分野を示す第1のドメインおよび第2のドメインの両方で使用される共通単語を特定する。文書に含まれる単語のうち共通単語以外の2以上の他の単語に基づいて、第1のドメインと第2のドメインとの間の重みを算出する。第1のドメインに対応する第1のモデルによって共通単語に対して算出される第1の特徴情報と、第2のドメインに対応する第2のモデルによって共通単語に対して算出される第2の特徴情報と、重みとを用いて、文書において共通単語に対して割り当てる第3の特徴情報を算出する。第3の特徴情報と文書に含まれる共通単語に対して付与された教師ラベルとを用いて、第3のモデルの学習を実行する。
【0010】
また、1つの態様では、記憶部と処理部とを有する機械学習装置が提供される。また、1つの態様では、コンピュータに実行させる機械学習プログラムが提供される。
【発明の効果】
【0011】
1つの側面では、複数の単語を含む文書を用いた機械学習の精度が向上する。
本発明の上記および他の目的、特徴および利点は本発明の例として好ましい実施の形態を表す添付の図面と関連した以下の説明により明らかになるであろう。
【図面の簡単な説明】
【0012】
【
図1】第1の実施の形態の機械学習装置の例を説明する図である。
【
図2】第2の実施の形態の機械学習装置のハードウェア例を示す図である。
【
図6】訓練データとして使用する文書の例を示す図である。
【
図7】一般ドメインと専門ドメインの関係例を示す図である。
【
図8】固有表現抽出モデルの学習の流れの例を示す図である。
【
図9】一般ドメインと専門ドメインの辞書の例を示す図である。
【
図10】機械学習装置の機能例を示すブロック図である。
【
図11】機械学習の第1の手順例を示すフローチャートである。
【
図12】機械学習の第2の手順例を示すフローチャートである。
【発明を実施するための形態】
【0013】
以下、本実施の形態を、図面を参照して説明する。
[第1の実施の形態]
第1の実施の形態を説明する。
【0014】
図1は、第1の実施の形態の機械学習装置の例を説明する図である。
機械学習装置10は、自然言語処理に利用するモデルを機械学習によって生成する。機械学習装置10は、クライアント装置でもよいしサーバ装置でもよい。機械学習装置10を、コンピュータや情報処理装置と言うこともできる。
【0015】
機械学習装置10は、記憶部11および処理部12を有する。記憶部11は、RAM(Random Access Memory)などの揮発性半導体メモリでもよいし、HDD(Hard Disk Drive)やフラッシュメモリなどの不揮発性ストレージでもよい。処理部12は、例えば、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)、DSP(Digital Signal Processor)などのプロセッサである。ただし、処理部12は、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの特定用途の電子回路を含んでもよい。プロセッサは、RAMなどのメモリ(記憶部11でもよい)に記憶されたプログラムを実行する。複数のプロセッサの集合を「マルチプロセッサ」または単に「プロセッサ」と言うこともある。
【0016】
記憶部11は、ドメイン13に対応するモデル13aと、ドメイン14に対応するモデル14aとを記憶する。ドメイン13,14は、異なる文章の分野を示す。ドメイン13,14を、話題や文書カテゴリなどと言うこともできる。例えば、ドメイン13が、インターネットから広く収集されるWebテキストなど特定の専門分野に限定されない一般ドメインであり、ドメイン14が、政治経済やバイオテクノロジーなど特定の専門分野を示す専門ドメインである。また、例えば、ドメイン13が特定の専門分野を示す専門ドメインであり、ドメイン14がドメイン13と異なる専門分野を示す専門ドメインである。
【0017】
モデル13a,14aは、単語に対して特徴情報を割り当てる。モデル13aは、ドメイン13に属するテキストコーパスから、機械学習によって予め学習される。モデル14aは、ドメイン14に属するテキストコーパスから、機械学習によって予め学習される。特徴情報は、例えば、分散表現の単語ベクトルである。分散表現は、語義が近い単語には類似する単語ベクトルが割り当てられるという性質をもつ。単語ベクトルは、例えば、200次元や300次元など、数百次元から千次元程度の実数を列挙した実数ベクトルである。モデル13a,14aは、word2vecなど、同一の単語に対して固定の単語ベクトルを割り当てるものでもよいし、ELMo(Embeddings from Language Models)など、同一の単語に対して文脈によって異なる単語ベクトルを割り当てるものでもよい。
【0018】
単語の中には、ドメイン13,14に共通に出現する単語もあるし、ドメイン13には出現するがドメイン14に出現しない単語もあるし、ドメイン13には出現しないがドメイン14に出現する単語もある。例えば、単語w1は、ドメイン13とドメイン14に共通に出現する。単語w2は、ドメイン13には出現するがドメイン14に出現しない。単語w3は、ドメイン13には出現しないがドメイン14に出現する。ドメイン13,14に共通する単語に対して、モデル13a,14aが異なる特徴情報を割り当てることもある。同一単語でも、ドメインによって語義や文脈が変わる可能性があるためである。
【0019】
処理部12は、複数の単語を含む文書15の入力を受け付ける。文書15は、後述するモデル17の学習に利用される訓練データである。文書15のドメインは不明である。文書15のドメインは、ドメイン13,14の何れか一方であってもよいし、ドメイン13,14以外の新規ドメインでもよい。文書15のドメインについて、単語に特徴情報を割り当てるモデルが存在していなくてもよい。また、文書15の中に、ドメインの異なる複数のブロック(例えば、段落やセクション)が混在していてもよい。
【0020】
文書15に含まれる単語の少なくとも一部には、教師ラベルが付与されている。例えば、文書15は単語w1,w2,w3を含み、単語w1に対して教師ラベル15aが付与されている。教師ラベル15aは、モデル17の目的変数の正解(真値)を示す。モデル17が固有表現抽出モデルである場合、教師ラベル15aは、単語w1が固有表現であるか否かを示す。単語w1が固有表現である場合に、教師ラベル15aが、人名(PSN)、組織名(ORG)、地名(LOC)など、固有表現のカテゴリを示していてもよい。
【0021】
処理部12は、入力された文書15に含まれる単語に対して特徴情報を割り当て、その特徴情報と教師ラベルとの組を用いて、モデル17の学習を実行する。特徴情報がモデル17の説明変数に相当し、教師ラベルがモデル17の目的変数に相当する。モデル17は、固有表現抽出(NER:Named Entity Recognition)や機械翻訳など、自然言語処理アプリケーションに用いられるものである。モデル17は、ニューラルネットワークなどでもよい。モデル17に含まれるパラメータが機械学習によって決定される。
【0022】
文書15を用いたモデル17の学習は、ファインチューニング(Fine Tuning)であってもよい。その場合、処理部12は、モデル17に相当する既存モデルを入手し、文書15を用いて既存モデルのパラメータを微調整する。これは、一般ドメイン用または特定の専門ドメイン用のモデルを、文書15のドメイン用のモデル17に調整するものと言うこともでき、ドメイン適応(Domain Adaptation)と言うこともできる。ここで、文書15のドメインが不明であるため、文書15に含まれる単語に割り当てる特徴情報が問題となる。そこで、処理部12は、以下のようにして単語の特徴情報を算出する。
【0023】
処理部12は、文書15に含まれる単語のうち、ドメイン13,14の両方に出現する共通単語を判定する。例えば、処理部12は、文書15に含まれる単語w1を共通単語と判定する。処理部12は、文書15に含まれる単語のうち、着目する共通単語以外の2以上の他の単語に基づいて、ドメイン13,14の間の重み16を算出する。ここで参照する他の単語は、着目する共通単語から所定範囲内にある単語でもよい。例えば、他の単語は、同一文内の単語、同一段落内の単語、同一セクション内の単語などである。重み16は、段落単位やセクション単位などブロック単位で算出してもよい。これは、文書15においてブロックによってドメインが異なる可能性があるためである。
【0024】
重み16は、文書15のドメインとドメイン13との近さ(ドメイン14からの遠さ)を表していてもよく、ドメイン14との近さ(ドメイン13からの遠さ)を表していてもよい。重み16は、例えば、0以上1以下の実数であり、1に近いほど文書15がドメイン13に近いことを表し、0に近いほど文書15がドメイン14に近いことを表す。
【0025】
重み16の算出では、例えば、処理部12は、ドメイン13に出現しドメイン14に出現しない単語の個数と、ドメイン13に出現せずドメイン14に出現する単語の個数とを文書15からカウントする。このとき、同一単語を重複してカウントしないようにしてもよい。処理部12は、前者の個数と後者の個数の比から重み16を算出する。前者の個数が多いほど重み16が1に近付き、後者の個数が多いほど重み16が0に近付く。
【0026】
また、例えば、処理部12は、共通単語および2以上の他の単語を含む単語列について、ドメイン13での出現確率をドメイン13の統計的言語モデルを用いて推定し、ドメイン14での出現確率をドメイン14の統計的言語モデルを用いて推定する。ドメイン13,14の統計的言語モデルは、予め作成されているとする。統計的言語モデルは、1-gram,2-gram,3-gramなど文脈を考慮しないモデルでもよいし、文脈を考慮するモデルでもよい。モデル13a,14aが、ELMoなど統計的言語モデルに基づくものである場合、出現確率の推定にモデル13a,14aを利用してもよい。
【0027】
処理部12は、前者の出現確率と後者の出現確率の比から重み16を算出する。前者の出現確率が高いほど重み16が1に近付き、後者の出現確率が高いほど重み16が0に近付く。なお、ドメイン13に出現しドメイン14に出現しない単語は、ドメイン14の統計的言語モデルでは未知語として取り扱われることがあり、出現確率が0または十分に小さい確率になることがある。同様に、ドメイン13に出現せずドメイン14に出現する単語は、ドメイン13の統計的言語モデルでは未知語として取り扱われることがあり、出現確率が0または十分に小さい確率になることがある。
【0028】
処理部12は、文書15の共通単語に対して、モデル13aによって算出される特徴情報13bと、モデル14aによって算出される特徴情報14bとを取得する。特徴情報13bと特徴情報14bとは異なる可能性がある。処理部12は、特徴情報13b,14bと重み16とを用いて、文書15の共通単語に割り当てる特徴情報15bを算出する。特徴情報15bは、特徴情報13bと特徴情報14bを重み付けして結合(concatenate)したものでもよく、その次元数が特徴情報13b,14bの次元数の2倍でもよい。
【0029】
例えば、重み16を0以上1以下の実数αで表現する。処理部12は、特徴情報13bの各次元の数値をα倍し、特徴情報14bの各次元の数値を(1-α)倍する。処理部12は、特徴情報13bをα倍したベクトルの後ろに、特徴情報14bを(1-α)倍したベクトルを連結したものを、特徴情報15bである単語ベクトルと定義する。なお、文書15に含まれる単語のうち、ドメイン13に出現しドメイン14に出現しない単語に対しては、モデル14aの出力を零ベクトルとみなして特徴情報を生成してもよい。同様に、ドメイン13に出現せずドメイン14に出現する単語に対しては、モデル13aの出力を零ベクトルとみなして特徴情報を生成してもよい。
【0030】
第1の実施の形態の機械学習装置10によれば、文書15に含まれる単語のうちドメイン13,14の両方で使用される共通単語が判定され、共通単語以外の2以上の他の単語に基づいて重み16が算出される。そして、ドメイン13のモデル13aによって算出される特徴情報13bと、ドメイン14のモデル14aによって算出される特徴情報14bと、重み16とを用いて、共通単語に割り当てる特徴情報15bが決定される。
【0031】
これにより、文書15のドメインが不明であっても、ドメインの違いを反映した適切な特徴情報を文書15の単語に対して割り当てることができる。よって、単語の特徴情報を利用したモデル17の機械学習の精度を向上させることができる。また、単語の特徴情報の算出に、既知のドメイン13,14に対応する学習済みのモデル13a,14aを流用することができ、文書15のドメイン用のモデルを生成しなくてよい。よって、文書15のデータ量が少なくても単語の特徴情報を算出することができると共に、追加のデータ収集コストや計算コストなどの学習コストを抑制することができる。また、モデル13a,14aの学習に用いたデータを収集しなくてもよく、無用なデータ流通を抑制できる。
【0032】
[第2の実施の形態]
次に、第2の実施の形態を説明する。
第2の実施の形態の機械学習装置は、機械学習によって固有表現抽出モデルを生成する。固有表現抽出モデルは、入力された単語列の中から普通名詞でない固有表現を抽出し、抽出した固有表現が「人名」、「組織名」、「地名」などのカテゴリの何れに属するか判定する。機械学習装置は、クライアント装置でもよいしサーバ装置でもよい。機械学習装置を、コンピュータや情報処理装置などと言うこともできる。
【0033】
図2は、第2の実施の形態の機械学習装置のハードウェア例を示す図である。
機械学習装置100は、CPU101、RAM102、HDD103、画像インタフェース104、入力インタフェース105、媒体リーダ106および通信インタフェース107を有する。機械学習装置100が有するこれらのユニットは、バスに接続されている。機械学習装置100は、第1の実施の形態の機械学習装置10に対応する。CPU101は、第1の実施の形態の処理部12に対応する。RAM102またはHDD103は、第1の実施の形態の記憶部11に対応する。
【0034】
CPU101は、プログラムの命令を実行するプロセッサである。CPU101は、HDD103に記憶されたプログラムやデータの少なくとも一部をRAM102にロードし、プログラムを実行する。CPU101は複数のプロセッサコアを備えてもよく、機械学習装置100は複数のプロセッサを備えてもよい。複数のプロセッサの集合を「マルチプロセッサ」または単に「プロセッサ」と言うことがある。
【0035】
RAM102は、CPU101が実行するプログラムやCPU101が演算に使用するデータを一時的に記憶する揮発性半導体メモリである。機械学習装置100は、RAM以外の種類のメモリを備えてもよく、複数のメモリを備えてもよい。
【0036】
HDD103は、OS(Operating System)やミドルウェアやアプリケーションソフトウェアなどのソフトウェアのプログラム、および、データを記憶する不揮発性ストレージである。機械学習装置100は、フラッシュメモリやSSD(Solid State Drive)など他の種類のストレージを備えてもよく、複数のストレージを備えてもよい。
【0037】
画像インタフェース104は、CPU101からの命令に従って、機械学習装置100に接続された表示装置111に画像を出力する。表示装置111として、CRT(Cathode Ray Tube)ディスプレイ、液晶ディスプレイ(LCD:Liquid Crystal Display)、有機EL(OEL:Organic Electro-Luminescence)ディスプレイ、プロジェクタなど、任意の種類の表示装置を使用することができる。機械学習装置100に、プリンタなど表示装置111以外の出力デバイスが接続されてもよい。
【0038】
入力インタフェース105は、機械学習装置100に接続された入力デバイス112から入力信号を受け付ける。入力デバイス112として、マウス、タッチパネル、タッチパッド、キーボードなど、任意の種類の入力デバイスを使用することができる。機械学習装置100に複数種類の入力デバイスが接続されてもよい。
【0039】
媒体リーダ106は、記録媒体113に記録されたプログラムやデータを読み取る読み取り装置である。記録媒体113として、フレキシブルディスク(FD:Flexible Disk)やHDDなどの磁気ディスク、CD(Compact Disc)やDVD(Digital Versatile Disc)などの光ディスク、半導体メモリなど、任意の種類の記録媒体を使用することができる。媒体リーダ106は、例えば、記録媒体113から読み取ったプログラムやデータを、RAM102やHDD103などの他の記録媒体にコピーする。読み取られたプログラムは、例えば、CPU101によって実行される。なお、記録媒体113は可搬型記録媒体であってもよく、プログラムやデータの配布に用いられることがある。また、記録媒体113やHDD103を、コンピュータ読み取り可能な記録媒体と言うことがある。
【0040】
通信インタフェース107は、ネットワーク114に接続され、ネットワーク114を介して他の情報処理装置と通信する。通信インタフェース107は、スイッチやルータなどの有線通信装置に接続される有線通信インタフェースでもよいし、基地局やアクセスポイントなどの無線通信装置に接続される無線通信インタフェースでもよい。
【0041】
次に、固有表現抽出の流れについて説明する。
図3は、固有表現抽出の流れの例を示す図である。
機械学習装置100は、文書131を取得する。文書131は、英語や日本語などの所定の自然言語で記載された1以上の文を含む。1つの文は、2以上の単語を並べた単語列である。例えば、文書131は、単語w1,w2,w3,w4,w5を順に並べた単語列を含む。文書131は、各単語が固有表現か否かまだ判定されていないものである。
【0042】
機械学習装置100は、文書131に含まれる単語列を分散表現モデル132に入力して、単語ベクトルデータ133を生成する。分散表現モデル132は、単語列の入力を受け付け、各単語に対して分散表現の単語ベクトルを割り当てるモデルである。分散表現モデル132は、テキストコーパスを用いて機械学習により予め学習されている。分散表現は、語義が近い単語には類似する単語ベクトルが割り当てられるという性質をもつ。単語ベクトルは、200次元や300次元など、数百次元程度の実数を並べた実数ベクトルである。例えば、単語ベクトルデータ133は、単語w1,w2,w3,w4,w5それぞれに対して単語ベクトルを対応付けたデータである。
【0043】
第2の実施の形態では分散表現モデル132として、文脈を考慮するモデルであるELMoを使用する。よって、分散表現モデル132は、同一単語であっても、その前後に存在する周辺語に応じて異なる単語ベクトルを割り当てる。同一の単語が文脈によって異なる意味をもつことがあるためである。分散表現モデル132は、文単位で単語列の入力を受け付ける。分散表現モデル132は、新しい文に対して最初に内部状態を初期化し、文に含まれる単語を1つずつ処理しながら内部状態を更新することを繰り返す。ELMoの詳細は後述する。ただし、分散表現モデル132として、word2vecなど文脈を考慮しないモデルを使用することも可能である。文脈を考慮しないモデルは、同一の単語に対して、周辺語とは無関係に同一の単語ベクトルを割り当てる。
【0044】
機械学習装置100は、単語ベクトルデータ133を固有表現抽出モデル134に入力して、抽出結果135を生成する。固有表現抽出モデル134は、単語ベクトルで表現された単語列の入力を受け付け、各単語の種類を判定するモデルである。固有表現抽出モデル134は、テキストコーパスを用いて機械学習により予め学習されている。単語の種類には、非固有表現(O)、人名(PSN)、組織(ORG)、地名(LOC)などが含まれる。抽出結果135は、単語とその種類とを対応付けたデータである。例えば、抽出結果135は、単語w1が組織を示す固有表現であり、単語w2,w3,w5が非固有表現であり、単語w4が地名を示す固有表現であることを示す。
【0045】
第2の実施の形態では固有表現抽出モデル134として、文脈を考慮するモデルを使用する。固有表現抽出モデル134は、後述するように、ニューラルネットワークの一種である双方向LSTM(Long Short Term Memory)を含む。よって、固有表現抽出モデル134は、同一または類似の単語ベクトルであっても、その前後に存在する単語ベクトルに応じて異なる判定結果を出力する。固有表現抽出モデル134は、文単位で単語ベクトルの列の入力を受け付ける。固有表現抽出モデル134は、新しい文に対して最初に内部状態を初期化し、その文の単語ベクトルを1つずつ処理しながら内部状態を更新することを繰り返す。ただし、固有表現抽出モデル134として文脈を考慮しないモデルを使用することも可能である。文脈を考慮しないモデルは、同一または類似の単語ベクトルに対して、周辺の単語ベクトルとは無関係に同一の判定結果を出力する。
【0046】
図4は、分散表現モデルの例を示す図である。
前述のように、機械学習装置100は、分散表現モデル132としてELMoを使用する。分散表現モデル132は、LSTM141,142,143,144を含む。LSTM141,142,143,144は、内部状態を保持することができるニューラルネットワークである。LSTM141,142は第1層に属し、LSTM143,144は第2層に属する。LSTM141,143は、単語列を文頭から文末に向かって順方向に処理し、LSTM142,144は、単語列を文末から文頭に向かって逆方向に処理する。
【0047】
LSTM141は、ある単語に対応する入力ベクトルを受け付ける。この入力ベクトルは、その単語に対して仮に割り当てられるものである。例えば、word2vecなど文脈を考慮しない著名なモデルによって算出される単語ベクトルが使用される。word2vecは、ある単語からその前後に存在する周辺語を予測するように、大規模テキストコーパスを用いて機械学習により予め学習された多層ニューラルネットワークを使用する。エッジの重みが学習された多層ニューラルネットワークに対して1つの単語を入力したときに、多層ニューラルネットワークの中間層のノードで算出された数値を列挙したものが、その単語に対する分散表現の単語ベクトルとして使用される。
【0048】
LSTM141は、入力ベクトルと内部状態とから、中間ベクトルを算出して第2層のLSTM143に出力すると共に、LSTM141の内部状態を更新する。出力する中間ベクトルの次元数は、受け付けた入力ベクトルの次元数と同じである。LSTM141が保持する内部状態は、着目する単語より前方に出現する単語列に依存している。LSTM142は、LSTM141と同じ入力ベクトルを受け付ける。LSTM142は、入力ベクトルと内部状態とから、中間ベクトルを算出して第2層のLSTM144に出力すると共に、LSTM142の内部状態を更新する。LSTM142が保持する内部状態は、着目する単語より後方に出現する単語列に依存している。
【0049】
LSTM143は、LSTM141から中間ベクトルを受け付ける。LSTM143は、中間ベクトルと内部状態とから、別の中間ベクトルを算出して出力すると共に、LSTM143の内部状態を更新する。LSTM143が保持する内部状態は、着目する単語より前方に出現する単語列に依存している。LSTM144は、LSTM142から中間ベクトルを受け付ける。LSTM144は、中間ベクトルと内部状態とから、別の中間ベクトルを算出して出力すると共に、LSTM144の内部状態を更新する。LSTM144が保持する内部状態は、着目する単語より後方に出現する単語列に依存している。
【0050】
分散表現モデル132は、LSTM143が出力する中間ベクトルとLSTM144が出力する中間ベクトルとを用いて、単語列において入力された単語の次に現れる単語を予測する。次の単語の予測結果は、様々な単語についての出現確率を含む。分散表現モデル132は、双方向多層LSTMである。分散表現モデル132は、特定の単語列が出現する出現確率の推定に利用することができ、統計的言語モデルとみなすことができる。
【0051】
分散表現モデル132の学習では、ある単語の入力に対応して分散表現モデル132が出力する次の単語の予測結果と実際の次の単語(正解)との間の誤差が小さくなるように、LSTM141,142,143,144に含まれるパラメータを更新する。例えば、"Ono is good at dealing with antineoplastic"を訓練データとして使用するとする。この場合、"Ono"が入力された際に予測される"is"の出現確率が高くなり、それに続けて"is"が入力された際に予測される"good"の出現確率が高くなり、それに続けて"good"が入力された際に予測される"at"の出現確率が高くなるように、機械学習が行われる。
【0052】
例えば、LSTM141は、"Ono"を示す入力ベクトル145-1を受け付け、中間ベクトル146-1を生成する。LSTM143は、中間ベクトル146-1から中間ベクトル148-1を生成する。次に、LSTM141は、"Ono"に続いて"is"を示す入力ベクトル145-2を受け付け、中間ベクトル146-2を生成する。このとき、LSTM141は内部状態を引き継いでいる。LSTM143は、中間ベクトル146-2から中間ベクトル148-2を生成する。このとき、LSTM143は内部状態を引き継いでいる。次に、LSTM141は、"is"に続いて"good"を示す入力ベクトル145-3を受け付け、中間ベクトル146-3を生成する。このとき、LSTM141は内部状態を引き継いでいる。LSTM143は、中間ベクトル146-3から中間ベクトル148-3を生成する。このとき、LSTM143は内部状態を引き継いでいる。
【0053】
一方、LSTM142は、"good"を示す入力ベクトル145-3を受け付け、中間ベクトル147-3を生成する。LSTM144は、中間ベクトル147-3から中間ベクトル149-3を生成する。次に、LSTM142は、"good"に続いて"is"を示す入力ベクトル145-2を受け付け、中間ベクトル147-2を生成する。このとき、LSTM142は内部状態を引き継いでいる。LSTM144は、中間ベクトル147-2から中間ベクトル149-2を生成する。このとき、LSTM144は内部状態を引き継いでいる。次に、LSTM142は、"is"に続いて"Ono"を示す入力ベクトル145-1を受け付け、中間ベクトル147-1を生成する。このとき、LSTM142は内部状態を引き継いでいる。LSTM144は、中間ベクトル147-1から中間ベクトル149-1を生成する。このとき、LSTM144は内部状態を引き継いでいる。
【0054】
ここで、分散表現の単語ベクトルは次のように算出される。分散表現モデル132は、入力された単語に対して、入力ベクトル、第1層の順方向の中間ベクトル、第1層の逆方向の中間ベクトル、第2層の順方向の中間ベクトル、および、第2層の逆方向の中間ベクトルの5個のベクトルを収集する。分散表現モデル132は、これら5個のベクトルそれぞれに所定の重みを乗じて合算したものを、単語ベクトルとして当該単語に割り当てる。これら5個のベクトルそれぞれの次元数と単語ベクトルの次元数は同じである。よって、次元毎に、5個のベクトルの数値の重み付き和が単語ベクトルの数値となる。
【0055】
例えば、入力ベクトル145-1および中間ベクトル146-1,147-1,148-1,149-1の重み付き和が、単語"Ono"に割り当てる単語ベクトルとなる。また、入力ベクトル145-2および中間ベクトル146-2,147-2,148-2,149-2の重み付き和が、単語"is"に割り当てる単語ベクトルとなる。また、入力ベクトル145-3および中間ベクトル146-3,147-3,148-3,149-3の重み付き和が、単語"good"に割り当てる単語ベクトルとなる。なお、第2の実施の形態では双方向LSTMの層数を2層としたが、3層以上にすることも可能である。
【0056】
図5は、固有表現抽出モデルの例を示す図である。
前述のように、機械学習装置100は、固有表現抽出モデル134として双方向LSTMを使用する。固有表現抽出モデル134の基本的構造は、分散表現モデル132と同様である。ただし、双方向LSTMの層数は1層でもよい。また、第2の実施の形態では双方向LSTMを用いたが、固有表現抽出モデル134の構造を変えてもよい。
【0057】
例えば、固有表現抽出モデル134は、LSTM151,152を含む。LSTM151,152は、内部状態を保持することができるニューラルネットワークである。LSTM151は、単語列を文頭から文末に向かって順方向に処理し、LSTM152は、単語列を文末から文頭に向かって逆方向に処理する。
【0058】
LSTM151は、ある単語の単語ベクトルを受け付ける。この単語ベクトルは、分散表現モデル132によって算出されたものである。LSTM151は、単語ベクトルと内部状態とから、中間ベクトルを算出して出力すると共に、LSTM151の内部状態を更新する。LSTM151が保持する内部状態は、着目する単語より前方に出現する単語列に依存している。LSTM152は、LSTM151と同じ単語ベクトルを受け付ける。LSTM152は、単語ベクトルと内部状態とから、中間ベクトルを算出して出力すると共に、LSTM152の内部状態を更新する。LSTM152が保持する内部状態は、着目する単語より後方に出現する単語列に依存している。
【0059】
固有表現抽出モデル134は、LSTM151が出力する中間ベクトルとLSTM152が出力する中間ベクトルとを用いて、入力された単語の種類を判定する。判定結果は、入力された単語が固有表現か否かを示し、その単語が固有表現である場合には、「人名」、「組織名」、「地名」などの固有表現の種類を示す。
【0060】
固有表現抽出モデル134の学習では、ある単語の入力に対応して固有表現抽出モデル134が出力する判定結果と実際の単語の種類(正解)との間の誤差が小さくなるように、LSTM151,152に含まれるパラメータを更新する。例えば、"Ono"が組織名であり、"is"が非固有表現であり、"good"が非固有表現であることを示す教師ラベルを含む訓練データを使用するとする。この場合、"Ono"の入力に対応する判定結果が組織名であり、"is"の入力に対応する判定結果が非固有表現であり、"good"の入力に対応する判定結果が非固有表現となるように、機械学習が行われる。
【0061】
例えば、LSTM151は、"Ono"を示す単語ベクトル153-1を受け付け、中間ベクトル154-1を生成する。次に、LSTM151は、"Ono"に続いて"is"を示す単語ベクトル153-2を受け付け、中間ベクトル154-2を生成する。このとき、LSTM151は内部状態を引き継いでいる。次に、LSTM151は、"is"に続いて"good"を示す単語ベクトル153-3を受け付け、中間ベクトル154-3を生成する。このとき、LSTM151は内部状態を引き継いでいる。
【0062】
一方、LSTM152は、"good"を示す単語ベクトル153-3を受け付け、中間ベクトル155-3を生成する。次に、LSTM152は、"good"に続いて"is"を示す単語ベクトル153-2を受け付け、中間ベクトル155-2を生成する。このとき、LSTM152は内部状態を引き継いでいる。次に、LSTM152は、"is"に続いて"Ono"を示す単語ベクトル153-1を受け付け、中間ベクトル155-1を生成する。このとき、LSTM152は内部状態を引き継いでいる。
【0063】
次に、固有表現抽出モデルの学習に使用する文書のドメインについて説明する。
図6は、訓練データとして使用する文書の例を示す図である。
機械学習装置100は、異なるドメインの文書を保持することがある。ドメインは、文章の分野を示す。ドメインには、新聞記事データベースやインターネットから広く収集された大規模Webテキストなど特定の専門分野に限定されない一般ドメインと、政治経済や医療技術など特定の専門分野を示す専門ドメインとがある。
【0064】
同一の単語であっても、異なるドメインでは異なる語義をもつことがあり、異なる文脈で使用されることがある。そのため、ドメイン毎に分散表現モデルを生成し、入力された単語に対してドメインに応じた単語ベクトルを割り当てることが好ましい。第2の実施の形態では、機械学習装置100は、Webテキストを訓練データとして用いて学習された一般ドメイン用の分散表現モデルと、医療技術に関する論文などのテキストを訓練データとして用いて学習された専門ドメイン用の分散表現モデルとを保持する。ただし、機械学習装置100が、複数の専門ドメイン用の分散表現モデルを保持することも可能である。
【0065】
また、同一の単語であっても、異なるドメインでは固有表現か否かの判定が異なることがあり、固有表現の種類の判定(例えば、人名か組織名か)が異なることがある。そのため、ドメイン毎に固有表現抽出モデルを生成することが好ましい。ただし、完全に新規に各ドメイン用の固有表現抽出モデルを生成することは、データ収集コストや計算時間の点から難しいことがある。そこで、ドメイン適応によって固有表現抽出モデルを生成する。
【0066】
第2の実施の形態では、機械学習装置100は、一般ドメイン用の学習済みの固有表現抽出モデルに対して、追加の訓練データを与えることで、ファインチューニングにより固有表現抽出モデルのパラメータを微調整する。これにより、特定の専門ドメインの固有表現を判定することができる固有表現抽出モデルが学習される。追加の訓練データは、ターゲットの専門ドメインを考慮した分散表現の単語ベクトルと、その単語の固有表現の種類を示す教師ラベルとを対応付けたデータである。
【0067】
ただし、追加の訓練データとして取得する新たな文書の中には、ドメインが不明であるものがあり得る。新たな文書のドメインは、一般ドメインまたは既知の専門ドメインに十分近いこともあるし、新たな専門ドメインであることもある。また、新たな文書に複数の段落が含まれている場合、段落によってドメインが異なることもある。また、新たな文書のドメインが新たな専門ドメインである場合であっても、その文書のデータ量が少ないためにその専門ドメイン用の分散表現モデルを新規に生成するのが難しいことがある。
【0068】
そこで、機械学習装置100は、新たな文書が入力されると、一般ドメインと既存の専門ドメインとの間の重みを段落毎に算出する。機械学習装置100は、その段落内の単語に対して、一般ドメイン用の分散表現モデルから算出される単語ベクトルと、既存の専門ドメイン用の分散表現モデルから算出される単語ベクトルとを、重みに基づいて合成して新たな単語ベクトルを割り当てる。そして、機械学習装置100は、その単語ベクトルを訓練データとして用いて、固有表現抽出モデルのファインチューニングを行う。
【0069】
なお、ファインチューニングによるドメイン適応は、一般ドメインのモデルを特定の専門ドメインのモデルに変換することもあるし、特定の専門ドメインのモデルを他の専門ドメインのモデルに変換することもある。前者の例として、大規模Webテキストのドメインをバイオテクノロジーのドメインに変換することが挙げられる。後者の例として、政治のドメインを経済のドメインに変換することが挙げられる。
【0070】
ここで、固有表現抽出モデルを生成するための訓練データの例を説明する。機械学習装置100は、文書161,162,163を保持し得る。
文書161は、一般ドメインに属する文書である。例えば、文書161は、"Ono likes playing tennis"という文を含む。文書161の各単語には、固有表現であるか否かおよび固有表現の種類を示す教師ラベルが付与されている。例えば、上記の文において、"Ono"は人名であり、その他の単語は非固有表現である。機械学習装置100は、文書161を用いて学習された分散表現モデルを保持している。
【0071】
文書162は、医療技術の専門ドメインに属する文書である。例えば、文書162は、"Ono pharmaceutical Co., Ltd. is one of the largest pharmaceutical companies in Japan"という文を含む。文書162の各単語には、固有表現であるか否かおよび固有表現の種類を示す教師ラベルが付与されている。例えば、上記の文において、"Ono"は組織名であり、"Japan"は地名であり、その他の単語は非固有表現である。機械学習装置100は、文書162を用いて学習された分散表現モデルを保持している。
【0072】
文書163は、新たに入力されたドメイン不明の文書である。文書163は、段落163a,163b,163cを含む複数の段落を含む。段落163a,163b,163cはそれぞれ2以上の文を含む。同一の段落内では、話題が同一である可能性が高い。ただし、第2の実施の形態において、段落に代えてセクションなど2以上の文を含む他の文章単位を用いることも可能である。例えば、段落163bは、"Ono's mission, policy and structure regarding research and development are introduced"という文を含む。文書163の各単語には、固有表現であるか否かおよび固有表現の種類を示す教師ラベルが付与されている。例えば、上記の文において、"Ono"は組織名であり、その他の単語は非固有表現である。以降では、機械学習装置100が、文書163を用いて固有表現抽出モデルのファインチューニングを行うことを考える。
【0073】
図7は、一般ドメインと専門ドメインの関係例を示す図である。
一般ドメイン171には、文書161を含む一般用文書に出現する単語が属している。専門ドメイン172には、文書162を含む特定の専門用文書に出現する単語が属している。単語の中には、一般ドメイン171と専門ドメイン172の両方に出現する共通単語もあるし、一般ドメイン171のみに出現する単語もあるし、専門ドメイン172のみに出現する単語もある。例えば、"Ono"は一般ドメイン171と専門ドメイン172の両方に出現する。"tennis"は一般ドメイン171のみに出現する。"antineoplastic"(抗腫瘍薬)は専門ドメイン172のみに出現する。共通単語は、一般ドメイン171と専門ドメイン172とで語義が異なることがあり、固有表現の種類が異なることがある。
【0074】
次に、第2の実施の形態のドメイン適応について説明する。
図8は、固有表現抽出モデルの学習の流れの例を示す図である。
機械学習装置100は、一般ドメインに対応する分散表現モデル181と、専門ドメインに対応する分散表現モデル182を保持している。また、機械学習装置100は、ファインチューニング前の基本となる固有表現抽出モデル183を保持している。機械学習装置100は、文書185を取得する。文書185は、それぞれ2以上の文を含む複数の段落を含む。文書185の各単語には、固有表現に関する教師ラベルが付与されている。
【0075】
機械学習装置100は、文書185に含まれる単語列を文単位で分散表現モデル181に入力し、単語毎に単語ベクトル186を算出する。また、機械学習装置100は、文書185に含まれる単語列を文単位で分散表現モデル182に入力し、単語毎に単語ベクトル187を算出する。単語ベクトル186,187は、それぞれD次元(Dは2以上の整数)の実数ベクトルである。次元数Dは、例えば、200や300など数百程度である。
【0076】
また、機械学習装置100は、文書185に含まれる単語列を段落単位でドメイン判定器184に入力し、段落毎に重みαを算出する。ドメイン判定器184は、入力された段落のドメインと、既知の一般ドメインおよび専門ドメインとの間の関係を判定する。ドメイン判定器184は、入力された段落のドメインが、一般ドメインと専門ドメインの何れに近いかを判定しているとも言える。重みαは、一般ドメインと専門ドメインのうち一般ドメインとの近さを表す指標であり、0以上1以下の実数をとる。重みαが1に近いほど、入力された段落のドメインが一般ドメインに近いことを表し、重みαが0に近いほど、入力された段落のドメインが専門ドメインに近いことを表す。
【0077】
ドメイン判定器184は、段落に含まれる単語に基づいて重みαを算出する。段落に含まれる単語の傾向が一般ドメインに近いほど、重みαが1に近くなり、段落に含まれる単語の傾向が専門ドメインに近いほど、重みαが0に近くなる。重みαの算出に、分散表現モデル181,182を使用することがある。段落単位でドメインを判定するのは、文単位では単語が少ないため精度よくドメインを判定するのが難しく、文書単位では異なるドメインの文が混在していることがあるためである。
【0078】
機械学習装置100は、ある段落に対して重みαが算出されると、その段落に含まれる各単語に対して、単語ベクトル186,187を合成して単語ベクトル188を算出する。単語ベクトル188は、単語ベクトル186の後に単語ベクトル187を連結したものであり、その次元数は単語ベクトル186,187の2倍である2D次元になる。ただし、単語ベクトル186,187は、重みαに応じて重み付けされる。単語ベクトル186の各次元の数値がα倍され、単語ベクトル187の各次元の数値が(1-α)倍される。
【0079】
機械学習装置100は、文書185に含まれる単語列に対応する単語ベクトル188の列を文単位で固有表現抽出モデル183に入力し、単語毎に抽出結果189を生成する。抽出結果189は、固有表現の観点から単語の種類の予測を示す。すなわち、抽出結果189は、単語が固有表現であるか非固有表現であるかの予測を示し、固有表現である場合には人名や組織名や地名などの固有表現の種類の予測を示す。機械学習装置100は、文書185に付与されている教師ラベルと抽出結果189との間の誤差を算出し、誤差が小さくなるように固有表現抽出モデル183のパラメータを修正する。これにより、文書185に適合するように、固有表現抽出モデル183のファインチューニングが行われる。
【0080】
ファインチューニング後の固有表現抽出モデル183を利用した固有表現抽出は、学習時と同様の手順で実行することができる。教師ラベルが付与されていない新たな文書が入力されると、例えば、機械学習装置100は、分散表現モデル181,182を用いて単語ベクトルを算出し、ドメイン判定器184を用いて段落毎に重みαを算出する。機械学習装置100は、分散表現モデル181,182が出力する単語ベクトルを重みαで重み付けして連結した単語ベクトルを算出し、固有表現抽出モデル183に入力する。これにより、入力された新たな文書の中から固有表現を抽出することができる。
【0081】
固有表現抽出モデル183の学習時に、機械学習装置100は、学習された固有表現抽出モデルを表示装置111に表示してもよいし、HDD103などの記憶装置に保存してもよいし、他の情報処理装置に送信してもよい。また、固有表現抽出モデル183の利用時に、機械学習装置100は、抽出された固有表現を表示装置111に表示してもよいし、記憶装置に保存してもよいし、他の情報処理装置に送信してもよい。
【0082】
ここで、重みαの算出方法としては幾つかの方法が考えられる。
重みαを算出する第1の方法では、まずドメイン判定器184は、一般ドメインに出現し専門ドメインに出現しない単語を列挙した一般ドメイン用の辞書と、専門ドメインに出現し一般ドメインに出現しない単語を列挙した専門ドメイン用の辞書とを生成する。これら一般ドメイン用の辞書および専門ドメイン用の辞書からは、一般ドメインと専門ドメインとに共通に出現する共通単語が除外されている。
【0083】
一般ドメインに出現する単語は、分散表現モデル181に基づいて特定してもよく、専門ドメインに出現する単語は、分散表現モデル182に基づいて特定してもよい。分散表現モデル181に含まれるパラメータから、一般ドメインに出現し得ない単語を特定できることがあり、分散表現モデル182に含まれるパラメータから、専門ドメインに出現し得ない単語を特定できることがある。また、分散表現モデル181に、一般ドメインで出現し得る単語の情報が含まれていてもよく、分散表現モデル182に、専門ドメインで出現し得る単語の情報が含まれていてもよい。
【0084】
次に、ドメイン判定器184は、一般ドメイン用の辞書に列挙された単語のうち、文書185の着目する段落において1回以上出現する単語の個数(一般単語数)をカウントする。また、ドメイン判定器184は、専門ドメイン用の辞書に列挙された単語のうち、文書185の着目する段落において1回以上出現する単語の個数(専門単語数)をカウントする。ドメイン判定器184は、一般単語数と専門単語数の比に基づいて重みαを算出する。重みα=一般単語数/(一般単語数+専門単語数)となる。例えば、一般単語数=3かつ専門単語数=5の場合、重みα=3/(3+5)=0.375となる。
【0085】
重みαを算出する第2の方法では、ドメイン判定器184は、予め学習された一般ドメイン用の統計的言語モデルと専門ドメイン用の統計的言語モデルとを利用する。一般ドメイン用の統計的言語モデルは、入力された単語列が一般ドメインにおいてどの程度出現しやすいかを評価し、専門ドメイン用の統計的言語モデルは、入力された単語列が専門ドメインにおいてどの程度出現しやすいかを評価する。
【0086】
分散表現モデル181,182が
図4に示したようなELMoである場合、分散表現モデル181,182を統計的言語モデルとして利用することができる。ELMoは、単語の順序が異なると異なる確率を算出する統計的言語モデルであり、文脈を考慮している。ただし、文脈を考慮しない統計的言語モデルを利用することもできる。例えば、1-gram,2-gram,3-gramなどの所定数の単語の列に対して、予め確率が算出されている。1-gramの確率は、ある1つの単語が出現する確率である。2-gramの確率は、1番目の単語に続いて2番目の単語が使用される条件付き確率である。3-gramの確率は、1番目および2番目の単語に続いて3番目の単語が使用される条件付き確率である。対象となる文を1-gram,2-gram,3-gramなどに分解し、それぞれに対応する確率を乗算することで、文の出現確率を推定できる。
【0087】
ドメイン判定器184は、文書185の着目する段落に含まれる単語列を、一般ドメイン用の統計的言語モデルに入力し、その単語列に対する確率(一般確率)を算出する。また、ドメイン判定器184は、文書185の着目する段落に含まれる単語列を、専門ドメイン用の統計的言語モデルに入力し、その単語列に対する確率(専門確率)を算出する。例えば、ドメイン判定器184は、着目する段落に含まれる単語列を文単位で統計的言語モデルに入力する。段落に複数の文が含まれる場合、文毎に算出される確率の和や平均や積などを一般確率および専門確率として定義するようにしてもよい。
【0088】
また、例えば、ドメイン判定器184は、着目する段落の中から、一般ドメインと専門ドメインとに共通に出現する共通単語を検出する。ドメイン判定器184は、共通単語を含む文を統計的言語モデルに入力して、一般確率および専門確率を算出する。ここで、1つの共通単語に着目し、一般確率および専門確率を、共通単語以外の単語の列の直前または直後に共通単語が出現する確率と定義してもよい。例えば、"Ono's mission, policy and structure regarding research and development are introduced"について、共通単語"Ono"に着目する。一般確率および専門確率を、"'s mission, policy and structure regarding research and development are introduced"の直前に"Ono"が出現する条件付き確率と定義することもできる。ある単語列の直前または直後に特定の単語が出現する確率は、ELMoなどの文脈を考慮する統計的言語モデルによって算出することができる。
【0089】
ドメイン判定器184は、一般確率と専門確率の比に基づいて重みαを算出する。重みα=一般確率/(一般確率+専門確率)となる。例えば、"'s mission, policy and structure regarding research and development are introduced"の直前に"Ono"が出現する条件付き確率が、一般ドメインでは0.008、専門ドメインでは0.05であるとする。この場合、重みα=0.008/(0.008+0.05)=0.138となる。
【0090】
図9は、一般ドメインと専門ドメインの辞書の例を示す図である。
辞書191,192は、重みαを算出する第1の方法で生成される。辞書191は、一般ドメイン用の辞書であり、辞書192は、専門ドメイン用の辞書である。辞書191には、"tennis"や"football"など、分散表現モデルの学習時に訓練データとして使用した一般ドメインの文書に出現し、訓練データとして使用した専門ドメインの文書に出現しない単語が列挙される。辞書192には、"pharmaceutical"や"antineoplastic"など、専門ドメインの文書に出現し一般ドメインの文書に出現しない単語が列挙される。
【0091】
次に、機械学習装置100の機能および処理手順について説明する。
図10は、機械学習装置の機能例を示すブロック図である。
機械学習装置100は、文書記憶部121、分散表現モデル記憶部122および固有表現抽出モデル記憶部123を有する。これらの記憶部は、例えば、RAM102またはHDD103の記憶領域を用いて実現される。また、機械学習装置100は、単語ベクトル生成部124、ドメイン判定部125、単語ベクトル合成部126およびモデル学習部127を有する。これらの処理部は、例えば、プログラムを用いて実現される。
【0092】
文書記憶部121は、前述の文書163など、固有表現抽出モデルのファインチューニングに使用する訓練データとしての文書を記憶する。文書に含まれる単語に対しては、固有表現か否かおよび固有表現の種類を示す教師ラベルが付与されている。文書のドメインは不明であり、文書にはドメインの異なる複数の段落が含まれていることがある。
【0093】
分散表現モデル記憶部122は、前述の分散表現モデル181,182など、ドメインの異なる複数の学習済みの分散表現モデルを記憶する。分散表現モデル記憶部122は、少なくとも、一般ドメインの分散表現モデルと専門ドメインの分散表現モデルとを記憶する。分散表現モデルは、単語の入力を受け付け、単語に対して分散表現の単語ベクトルを割り当てる。ELMoなど文脈を考慮する分散表現モデルであることが好ましい。
【0094】
固有表現抽出モデル記憶部123は、前述の固有表現抽出モデル183など、ファインチューニング前の固有表現抽出モデルを記憶する。ファインチューニング前の固有表現抽出モデルは、例えば、一般ドメイン用の固有表現抽出モデルである。固有表現抽出モデルは、分散表現の単語ベクトルの入力を受け付け、固有表現か否かおよび固有表現の種類を示す判定結果を出力する。双方向LSTMを使用するものなど、文脈を考慮する固有表現抽出モデルであることが好ましい。また、固有表現抽出モデル記憶部123は、ファインチューニング後の固有表現抽出モデルを記憶する。
【0095】
単語ベクトル生成部124は、文書記憶部121に記憶された文書に含まれる各単語に対して、分散表現モデル記憶部122に記憶された分散表現モデルを用いて分散表現の単語ベクトルを算出する。単語ベクトル生成部124は、一般ドメイン用の分散表現モデルを用いて一般ドメインを仮定した単語ベクトルを算出し、専門ドメイン用の分散表現モデルを用いて専門ドメインを仮定した単語ベクトルを算出する。
【0096】
ドメイン判定部125は、文書記憶部121に記憶された文書を段落単位に分割し、段落単位でドメインを判定する。ドメイン判定部125は、段落に含まれる単語の傾向に基づいて、着目する段落が既知の一般ドメインと専門ドメインの何れに近いか判定し、一般ドメインとの相対的な近さを示す重みαを算出する。
【0097】
単語ベクトル合成部126は、文書に含まれる単語毎に、単語ベクトル生成部124が生成した一般ドメインの単語ベクトルと専門ドメインの単語ベクトルとを結合し、新たな単語ベクトルを生成する。このとき、単語ベクトル合成部126は、ドメイン判定部125が算出した重みαに基づいて2つの単語ベクトルを重み付けする。単語ベクトル合成部126は、一般ドメインの単語ベクトルの各次元の数値をα倍し、専門ドメインの単語ベクトルの各次元の数値を(1-α)倍する。
【0098】
モデル学習部127は、固有表現抽出モデル記憶部123に記憶された基本の固有表現抽出モデルに対してファインチューニングを行い、文書記憶部121に記憶された文書に適応させる。例えば、モデル学習部127は、単語ベクトル合成部126が生成した単語ベクトルを固有表現抽出モデルに入力して固有表現の判定結果を生成し、判定結果と教師ラベルとの間の誤差を算出し、誤差が小さくなるように固有表現抽出モデルのパラメータを修正する。パラメータの修正には、例えば、ニューラルネットワークの誤差逆伝播法を用いる。モデル学習部127は、ファインチューニング後の固有表現抽出モデルを固有表現抽出モデル記憶部123に保存する。
【0099】
なお、機械学習装置100は、学習された固有表現抽出モデルを表示装置111に表示してもよく、他の情報処理装置に送信してもよい。また、機械学習装置100は、学習された固有表現抽出モデルを使用して新たな文書から固有表現を抽出してもよく、他の情報処理装置に固有表現抽出モデルを使用させてもよい。機械学習装置100は、固有表現の抽出結果を表示装置111に表示してもよく、他の情報処理装置に送信してもよい。
【0100】
図11は、機械学習の第1の手順例を示すフローチャートである。
機械学習の第1の手順例は、前述の重みαを算出する第1の方法に対応する。
(S10)機械学習装置100は、教師ラベル付きの新規文書を取得する。
【0101】
(S11)機械学習装置100は、ドメインA,Bの分散表現モデルを取得する。例えば、ドメインAは一般ドメインであり、ドメインBは特定の専門ドメインである。
(S12)ドメイン判定部125は、ドメインA,Bに共通に出現する共通単語を判定する。ドメイン判定部125は、ドメインA,Bに出現し得る単語を、分散表現モデルに含まれるパラメータに基づいて特定してもよいし、分散表現モデルに付加されている単語情報に基づいて特定してもよいし、その他の外部情報を参照してもよい。
【0102】
(S13)ドメイン判定部125は、ドメインAに出現し得る単語からステップS12で判定した共通単語を除外し、残った単語を列挙したドメインA用の辞書を生成する。また、ドメイン判定部125は、ドメインBに出現し得る単語から共通単語を除外し、残った単語を列挙したドメインB用の辞書を生成する。例えば、ドメイン判定部125は、一般ドメイン用の辞書191と専門ドメイン用の辞書192を生成する。
【0103】
(S14)ドメイン判定部125は、新規文書から段落を1つ選択する。
(S15)ドメイン判定部125は、ステップS13で生成したドメインA用の辞書の中から、ステップS14で選択した段落に1回以上出現する単語をカウントする。また、ドメイン判定部125は、ステップS13で生成したドメインB用の辞書の中から、ステップS14で選択した段落に1回以上出現する単語をカウントする。
【0104】
(S16)ドメイン判定部125は、ステップS15でカウントしたドメインAの単語数とドメインBの単語数の比から、重みαを算出する。例えば、ドメインAの単語数とドメインBの単語数の和に対するドメインAの単語数の割合を、重みαとする。
【0105】
(S17)単語ベクトル生成部124は、ドメインA用の分散表現モデルを用いて、選択した段落に含まれる各単語に対して分散表現の単語ベクトルを算出する。また、単語ベクトル生成部124は、ドメインB用の分散表現モデルを用いて、選択した段落に含まれる各単語に対して分散表現の単語ベクトルを算出する。
【0106】
(S18)単語ベクトル合成部126は、ステップS17で算出された2つの単語ベクトルを、ステップS16で算出された重みαに応じて重み付けして結合する。例えば、単語ベクトル合成部126は、ドメインAの単語ベクトルにαを乗じ、ドメインBの単語ベクトルに(1-α)を乗じ、前者の後に後者を結合する。
【0107】
(S19)ドメイン判定部125は、新規文書に含まれる全ての段落を選択したか判断する。新規文書に含まれる全ての段落を選択した場合はステップS20に進み、新規文書に未選択の段落がある場合はステップS14に戻る。
【0108】
(S20)機械学習装置100は、基本の固有表現抽出モデルを取得する。
(S21)モデル学習部127は、ステップS18で生成された単語ベクトルを説明変数とし、新規文書に付与された教師ラベルを目的変数として、単語ベクトルと教師ラベルの組から固有表現抽出モデルを生成する。ここでは、モデル学習部127は、単語ベクトルと教師ラベルの組を訓練データとして用いて、ステップS20の基本の固有表現抽出モデルのパラメータを修正(微調整)するファインチューニングを行う。モデル学習部127は、学習した固有表現抽出モデルを固有表現抽出モデル記憶部123に保存する。
【0109】
図12は、機械学習の第2の手順例を示すフローチャートである。
機械学習の第2の手順例は、前述の重みαを算出する第2の方法に対応する。
(S30)機械学習装置100は、教師ラベル付きの新規文書を取得する。
【0110】
(S31)機械学習装置100は、ドメインA,Bの分散表現モデルを取得する。例えば、ドメインAは一般ドメインであり、ドメインBは特定の専門ドメインである。
(S32)ドメイン判定部125は、ドメインA,Bに共通に出現する共通単語を判定する。ドメイン判定部125は、ドメインA,Bに出現し得る単語を、分散表現モデルに含まれるパラメータに基づいて特定してもよいし、分散表現モデルに付加されている単語情報に基づいて特定してもよいし、その他の外部情報を参照してもよい。
【0111】
(S33)ドメイン判定部125は、新規文書から段落を1つ選択する。
(S34)ドメイン判定部125は、ステップS33で選択した段落から、ステップS32で判定された何れかの共通単語を含む文を抽出する。
【0112】
(S35)ドメイン判定部125は、ドメインA用の統計的言語モデルを用いて、ステップS34で抽出した文の確率を算出する。また、ドメイン判定部125は、ドメインB用の統計的言語モデルを用いて、ステップS34で抽出した文の確率を算出する。統計的言語モデルとして、分散表現モデルを利用してもよい。共通単語を含む文の確率は、周辺の単語列と組み合わせて共通単語が出現する条件付き確率でもよい。
【0113】
(S36)ドメイン判定部125は、ステップS35で算出したドメインAの確率とドメインBの確率の比から、重みαを算出する。例えば、ドメインAの確率とドメインBの確率の和に対するドメインAの確率の割合を、重みαとする。
【0114】
(S37)単語ベクトル生成部124は、ドメインA用の分散表現モデルを用いて、選択した段落に含まれる各単語に対して分散表現の単語ベクトルを算出する。また、単語ベクトル生成部124は、ドメインB用の分散表現モデルを用いて、選択した段落に含まれる各単語に対して分散表現の単語ベクトルを算出する。
【0115】
(S38)単語ベクトル合成部126は、ステップS37で算出された2つの単語ベクトルを、ステップS36で算出された重みαに応じて重み付けして結合する。例えば、単語ベクトル合成部126は、ドメインAの単語ベクトルにαを乗じ、ドメインBの単語ベクトルに(1-α)を乗じ、前者の後に後者を結合する。
【0116】
(S39)ドメイン判定部125は、新規文書に含まれる全ての段落を選択したか判断する。新規文書に含まれる全ての段落を選択した場合はステップS40に進み、新規文書に未選択の段落がある場合はステップS33に戻る。
【0117】
(S40)機械学習装置100は、基本の固有表現抽出モデルを取得する。
(S41)モデル学習部127は、ステップS38で生成された単語ベクトルを説明変数とし、新規文書に付与された教師ラベルを目的変数として、単語ベクトルと教師ラベルの組から固有表現抽出モデルの学習を実行する。ここでは、モデル学習部127は、単語ベクトルと教師ラベルの組を訓練データとして用いて、ステップS40の基本の固有表現抽出モデルのパラメータを修正(微調整)するファインチューニングを行う。モデル学習部127は、学習した固有表現抽出モデルを固有表現抽出モデル記憶部123に保存する。
【0118】
第2の実施の形態の機械学習装置100によれば、ドメイン適応により、新しい文書を利用して既存の固有表現抽出モデルをチューニングすることができ、新しいドメインの文書から固有表現を抽出することが可能となる。また、文書のドメインに応じて、固有表現抽出モデルに入力される分散表現の単語ベクトルが変化する。よって、固有表現抽出モデルの抽出精度を向上させることができる。例えば、同一単語が異なるドメインで異なる語義として使用されている場合でも、精度よく固有表現を判定することができる。
【0119】
また、固有表現抽出モデルに入力する分散表現の単語ベクトルは、既知の幾つかのドメインの分散表現モデルが出力する単語ベクトルから合成される。よって、既存の分散表現モデルを流用することができ、新規の分散表現モデルを生成しなくてよい。このため、追加の文書のデータ量が少なくても、ドメインの違いを反映した適切な単語ベクトルを算出することができる。また、データ収集コストや計算コストなどの機械学習コストを抑制することができる。また、既存の分散表現モデルの学習に使用した訓練データを入手しなくてもよく、訓練データの無用な流通を抑制することができる。例えば、データ保護の観点から訓練データを入手することが難しい場合であっても、学習結果である分散表現モデルを入手することができれば、ドメイン適応に利用することが可能となる。
【0120】
上記については単に本発明の原理を示すものである。更に、多数の変形や変更が当業者にとって可能であり、本発明は上記に示し、説明した正確な構成および応用例に限定されるものではなく、対応する全ての変形例および均等物は、添付の請求項およびその均等物による本発明の範囲とみなされる。
【符号の説明】
【0121】
10 機械学習装置
11 記憶部
12 処理部
13,14 ドメイン
13a,14a,17 モデル
13b,14b,15b 特徴情報
15 文書
15a 教師ラベル
16 重み