ILUの技術を支える「大規模言語データベース(LLD)」とは
はじめに
こんにちは。言語理解研究所(以下、ILU)開発本部 知識辞書開発部の吉田です。
今回は、私たち知識辞書開発部が開発している「大規模言語データベース(Large Language Database:LLD)」についてお伝えします。
「ChatGPT」などに代表される対話型生成AIは、大量の文章データから規則性や特徴を自動で学習する「大規模言語モデル(LLM)」という技術を用いて、自然言語処理を行います。
一方ILUは、人間が精査した知識を「大規模言語データベース(LLD)」に蓄積し、それを用いた自然言語処理を行っています。
ILUの自然言語処理に欠かせない「大規模言語データベース(LLD)」とはどのようなものでしょうか。
「大規模言語データベース(LLD)」の概要
私たちが日常生活で話したり、書いたりした文や言葉を『自然文』といいます。
自然文をコンピュータが理解するにはまず、『形態素解析』で文を単語まで分割し、文の構造を明らかにする『構文解析』を行った後に、文の意味を理解する『意味解析』を行う必要があります。
しかし日本語は、単語と単語の間に空白が入る英語と違い、文字列の切れ目が分かりにくい言語です。そのためコンピュータは、私たちが使う国語辞書のような『辞書』を手がかりに、文字列を単語まで分割します。
この『辞書』の元となる単語情報を管理しているのが、『単語概念知識データベース』です。データベース上には、形態素解析・構文解析を行うための単語情報が登録されています。
次の意味解析を行うには、自然文に含まれる意図や感情を特定するための知識が必要となります。この知識を管理しているのが『意味共起知識データベース』です。
この2つのデータベースを中心に、ILUの『大規模言語データベース(LLD)』は構成されています。
社内では『単語概念知識データベース』を『GAIA』、「意味共起知識データベース』を『URANOS』というギリシャ神話を由来とする名前で呼んでいます。その由来のように『意味共起知識データベース(URANOS)』は『単語概念知識データベース(GAIA)』なくして存在できません。
その理由は、後述するデータベースの概要説明でお伝えします。
そして「大規模」と呼ばれる由縁は、保有する言語知識量の多さにあります。1300万語・663億パターンという一見途方もない登録単語数や表現パターン数は、当社の歴史そのものです。
創業者である青江(現・徳島大学名誉教授)は、長年、徳島大学で自然言語処理の研究を行っており、2002年に徳島大学発ベンチャーとしてILUを創業しました。研究室時代を含め、約40年にわたり蓄積してきた知識は、ILUの高度な言語処理を支える土台となっています。
では、LLDに収録されている言語知識を見てみましょう。
「単語概念知識データベース(GAIA)」とは?
日常的な会話文や、ビジネス上の文言、技術的な用語を含む専門的な文章など、世の中の自然文は多岐にわたります。
そのためILUでは、どのような自然文にも対応できるように、あらゆる単語を収集し、構造化した知識データとして『単語概念知識データベース』に格納しています。
『単語概念知識データベース』に登録する知識は、2種類あります。
1つ目は、「犬」や「言語理解研究所」のような『単語』の知識です。
2つ目は、単語を抽象化して認識するためのラベル『概念』の知識です。
『単語』知識
登録する単語には、まず基本的な情報(表記、読み、品詞、単語パーツ構成)に加え、自然文での出現率を数値化した情報を設定します。
これは形態素解析、構文解析を行うために必須となるデータです。
例えば、単語「言語理解研究所」には下記のような情報を設定しています。
『固有企業名』という品詞は、ILU独自の品詞です。ILUでは、高精度の形態素解析を行うために、920種類の品詞を用いて単語を分類しています。
単語によっては、特別な情報を設定する場合もあります。
企業名「言語理解研究所」なら、企業に付帯する情報を設定します。
その他、送り仮名を含む単語には『送り仮名情報』を、特定ジャンルを想起させる単語には『分野情報』を、差別や暴力を想起させる単語やわいせつ表現には『不適切表現情報』を、あえて登録する間違い表記(「キヤノン」の誤表記「キャノン」など)には『正誤情報』などを設定します。
さらに意味的関係に従って、単語と単語の関係づけを行います。
関係づける項目には、意味が同じ単語を関係づける『同義語』や、正式名称と略称を関係づける『正規語』、名称の変遷を関係づける『名称変更』などがあります。
関係づけられた単語は、ひとつの単語グループにまとめられ、単語の正規化処理に用いられます。
●『概念』知識
もしも「犬」という単語を説明してくださいと言われたら、みなさんはどんな風に説明しますか。
人によって表現は違うと思いますが、「動物です」、「ペットとしてよく飼われている生き物です」など、誰もが理解できる共通の認識を用いて説明するのではないでしょうか。
ILUでは、このような『対象の認識をラベル化した知識』を『概念』と呼んでいます。
もちろん別々の対象が同じ認識になる場合もあります。
「犬」や「猫」、「金魚」、「くらげ」などはまったく違う生物ですが、「ペット」という認識は同じなので、同じ概念が設定されます。
同じ概念を設定した単語は、『類義語』としてグループ化されます。
ひとつの単語に、複数の概念を設定することもあります。
例えば、作家として活躍する医師の名前には<作家名>と<医師>の両方の概念を設定しますし、小説原作の作品がアニメ化・邦画化された場合は<小説名>、<漫画・アニメ名>、<邦画名>という概念を設定します。
『概念』は単語の本質を表す情報で、この後説明する『自然言語理解』を行うために必要な知識です。
「意味共起知識データベース(URANOS)」とは?
みなさん、国語のテストで「この文章から作者が伝えたいことは何でしょうか」という課題を解いたことがあると思います。この問題に回答するには、文章に直接表れない意図や感情を理解することが必要となります。
『意味共起知識データベース』に登録されている知識は、簡単に言うと、この『文章に直接表れない意図や感情』です。
例えば、「料理が冷えている」と「ビールが冷えている」という例文を見てみましょう。
どちらも「冷えている」という述部を持つ自然文です。
しかし「料理が冷えている」からは不味そうなイメージが、「ビールが冷えている」からは美味しそうなイメージが沸いてくると思います。
次にこちらの例文ではどうでしょう。
「キリン」は複数の意味を持つ単語ですが、文中に同時に現れる単語によって意味を特定することができます。
動詞「見る」の対象としての「キリン」なら動物の意味である可能性が高く、動詞「飲む」の対象としての「キリン」なら飲料メーカー名の可能性が高いと思われます。
このように、表層的な「何がどんなだ」、「何をどうする」という情報だけでなく、文中に直接現れない、暗に伝えたいことを取得する技術を、自然言語処理では『自然言語理解(NLU)』といいます。
そして「ビール・冷えている」、「キリン・飲む」のように、文中に同時に出現する意味的なつながりの強い単語同士の関係を『共起』といいます。
ILUはこの『共起』を、コンピュータ上で扱えるように構造化したデータ『ルール』として『意味共起知識データベース(URANOS)』に登録することで、自然文の意図や意味を理解する『自然言語理解』を実現しています。
ちなみに、共起ルールの記述には単語知識が必要ですが、単語は『単語概念知識データベース(GAIA)』に登録されています。
そのためURANOSを使う際には、必ずGAIAとの連携が必要となります。これがGAIA無くしてURANOSが存在できない理由です。
また、伝えたい意図や感情が同じでも別の表現になることがあります。
先ほどの例文「ビールが冷えている」なら「麦酒が冷えている」と表現する場合があるかもしれません。
このとき「ビール・冷えている」、「麦酒・冷えている」をそれぞれルール化する方法もありますが、手間と時間がかかります。
そこで、このような場合はGAIAに登録したもうひとつの知識『概念』を用います。
GAIAでは同じ認識をもつ単語には、同じ概念が設定され、グループ化されています。例に挙げた「ビール」、「麦酒」なら下記のような状態です。
この概念<ビール>を「冷えている」と組み合わせて、図のようなルールを記述します。
そのルールを、所属単語「ビール」と「麦酒」ごとに展開すると、「ビール・冷えている」、「麦酒・冷えている」をそれぞれルール記述したのと同じ状態になります。
つまり『概念』を使って共起ルールを記述すれば、少ない労力でより多くの単語の組み合わせに対応でき、表現のパターンを増やせるのです。
おわりに
私たち知識辞書開発部は、日々新しく生まれる単語や表現を収集し、『大規模言語データベース(LLD)』に登録し続けています。
イメージ的には、国語辞書を作る過程に似ているかもしれません。地道で、終わりのない仕事です。
しかし、私たちが登録した言語知識を使うことで、コンピュータがこれまで理解できなかった文を完璧に理解する様を見ると、これこそがLLDを構築する醍醐味だと思えます。
実は今回の記事では、説明しきれなかった項目がたくさんあります。
国内最大規模と自負する言語知識は、どんな内容でどう活用されているのか。今後の記事で、詳しくお伝えする予定です。
本記事を読んで、ILUの製品を支えるLLDについて興味をお持ちいただいた場合は、アカウントフォローをお願いします。