LAC WATCH

セキュリティとITの最新情報

RSS

株式会社ラック

メールマガジン

サイバーセキュリティや
ラックに関する情報をお届けします。

サービス・製品 | 

言語AIを使った開発チャレンジ、3,000万編を超える論文の中から未知の検索結果を導く

こんにちは。エンタープライズ事業部 新規事業推進部の清水 朗です。

ある物質と別の物質の相互作用を阻害する物質について書かれている論文を探し出したい

ある日、お客様からこんな相談を受けました。
一見簡単そうな依頼に見えますが、詳しくお聞きするとなかなか一筋縄ではいかないということが見えてきました。

なんでも、お客様はある研究のために、公開されている論文の中から役に立ちそうなものを探し出したいとのことでした。しかし、論文が集積された検索サイトには累計3,000万編以上の論文が掲載されています。加えて毎年50万編もの論文が新たにアップロードされるとのこと。

そして最も大きな問題は、この論文サイトに用意されている検索機能では思うような絞り込みができないということでした。お客様の相談のポイントは、この絞り込みを効率的に行うにはどうしたらいいか?というところでした。

知っているキーワードで検索して得られる結果には、目的に合わない論文がたくさん含まれていました。その結果、目的に合う論文の最終的な絞り込みは、実際に論文の中身を読んで行わざるを得ず、とても大変な作業になってしまいます。

人工知能を使った課題解決

つまり、知っているキーワードだけでなく、さらなる絞り込みに有効だと考えられる未知のキーワード、文言、文章の候補を利用者に提示してくれる機能が必要だと考えられました。この要望に応えるためには、人工知能を使った課題解決が適切ではないかと判断をしました。

2種類の「探す」とは?

検索のプロセスをより詳細に考えていくと、2種類の「探す」があることがわかります。それは「知っていることを探す」検索と「知らないことを探す」ことです。

「知っていることを探す」

「知っていることを探す」とは、例えば「△駅の時刻表を探す」というような場面です。この場合、私たちは自分が何を探しているかハッキリと自覚していています。もしかすると時刻表のフォーマットさえも想像していて、そこに書いてある数字(時刻)を知るために検索をしているかも知れません。このような場面では「□線」、「△駅」、「時刻表」といった具体的なキーワードで容易に目標にたどり着けることでしょう。

「知らないことを探す」

一方「知らないことを探す」とはどういったことでしょうか?これは言い換えれば、「自分が知ろうとしていることを言葉で表現する方法を勉強しながら目的に近づいていく探し方」とも言えます。

例えば新型コロナウイルスについて知りたいことがあった時に、まず初めに「新型コロナウイルス」で検索すると思います。その結果、「COVID-19」、「感染症」、「東京都の動向」、「ワクチン」など様々な関連する語句を目にすることになります。

その語句の中から、自分の知りたいことは「ワクチン」というワードの先にありそうだと感じたとします。おそらく次は「新型コロナウイルス」+「ワクチン」といったキーワードで検索することになります。つまり少しずつキーワードを追加してまたは変えて目的に近づいていくのです。

このような場合は「意味検索」といわれる検索が向いていると言われています。この意味検索はキーワードではなく文章を入力として、意味の近いものを探しに行くもので、人工知能を用いることで急速に研究が進んでいる分野です。そして私たちは、この2種類の「探す」について、今回の相談と検証を通してその違いをハッキリと認識することとなりました。

「言語を扱うAI」を使って実証実験へ

あるアンケートによると人工知能と聞いて連想するものの上位には、有名なSF映画「2001年宇宙の旅」にでてくる架空のコンピュータHAL9000が必ず出てくるそうです。HAL9000は宇宙船を制御するだけでなく、乗組員と会話をし、カメラ画像を解析し、状況を判断してあたかも意思を持ったような行動にも出ます。人間と同等、あるいは人間よりもすぐれた"知能"を持つ存在として描かれていました。

しかし、現在の人工知能は、このレベルには達していません。現在のAI技術は画像、音声、言語そして予測を扱うAIがそれぞれ得意とする分野で実用化に向けた研究がなされている状況です。

画像をあつかうAI、音声をあつかうAI、予測をあつかうAI、言語をあつかうAI

今回の論文検索のような課題には、上の図の「言語をあつかうAI」を活用します。そして機械学習だけでなく自然言語処理と呼ばれる手法も使って検証に取り組むことにしました。

検証はどうやって進めたのか?

さて、本件に対しては、お客様より検証に使用できるデータとして、人によって読み込まれ判別された正例26編と負例77編の合計103編を提供いただきました。そこで私たちは、自然言語処理の手法と機械学習の手法を組み合わせて、正例と負例に振り分けることを方針としました。

正例と負例を仕分けする作業イメージ

103編の論文

103編の論文

正例26編、負例77編の論文を用意します。
は正例、×は負例)

103編の論文

103編の論文

正例26編、負例77編の論文を用意します。
は正例、×は負例)

↓ NLP数値化
数値化された論文

数値化された論文

各論文をNLPのアルゴリズムを使って数値に変換します。

数値化された論文

数値化された論文

各論文をNLPのアルゴリズムを使って数値に変換します。

↓ NLP距離計算
見える化

(見える化:実際の作業にこのフェーズはありませんが、論文の類似度を二次元で表現するとこんな感じでしょう。)

見える化

(見える化:実際の作業にこのフェーズはありませんが、論文の類似度を二次元で表現するとこんな感じでしょう。)

↓ クラス分け
正例・負例を分類

正例・負例を分類

機械学習などでモデルを作成してクラス分けを行います。

正例・負例を分類

正例・負例を分類

機械学習などでモデルを作成してクラス分けを行います。

※ NLP:自然言語処理。人間が日常的に使っている自然言語をコンピュータに処理させる一連の技術で、人工知能と言語学の一分野。
自然言語処理 出典:フリー百科事典『ウィキペディア(Wikipedia)』

例えば、103編それぞれの文章に対して「N-gram」や「TF-IDF」に代表される自然言語処理の技術を使って、特徴的に現れる単語をもとに、その文章を数値化し、この数値化された論文を「SVM」などの機械学習を利用して正例と負例のクラス分けを行うなど、いくつもの組み合わせを検証して、最も精度の高い組み合わせを探し出すことにチャレンジしました。

思うような結果がでない。その時どうした?

私たちは、数十通りの組み合わせを検証していきました。ところが、どの組み合わせも期待した精度を得ることができません。

期待していた分布の結果を得ることができない

正例はすべて研究テーマに則した内容の論文ですから正例同士は近寄った分布になることを想定していました。しかし、残念ながら想定した結果にまるで近づきません。つまり検証の結果は、「正例間に共通した特徴が見られない」ことになってしまいます。

ここで検証を止める訳にはいきません。「そもそも正例26編は、本当に多くの共通点を持つのだろうか?」私たちはもう一度"方針"を考え直すことにしました。

研究テーマは「ある物質と別の物質の相互作用を阻害する物質」です。具体的には「ある素材を構成する物質が、別の物質を腐食(相互作用)することを抑制(阻害)する物質」についてです。
ところが、物質間の相互作用を利用した研究しているのは、同種の研究だけではありません。また同種の研究に絞ったとしても、研究のアプローチは様々です。つまり私たちは「知らないことを探す検索」において、とっかかりのキーワードだけで絞り込みを完成させようとしていたことに気づいたのです。

この前提に立つと想定されるイメージが変わります。

正例は1か所ではなくいくつかのグループに分かれているのでは?と想定イメージを変える

正例は1か所に集まっているわけではなく、いくつかのグループとしてまとまっている。新たに考えた想定のもとに"方針"そのものを作り直すことにしました。

ついに結果が出た!芋づる式に探し出すデイジーチェーンサーチ

正例は、類似度の観点からいくつかのグループに分かれているのであれば、ある一つの正例論文を起点とした時に、この論文の近くにある論文はテーマに則った論文である可能性が高いはずです。

ある論文を起点に類似論文を探す

正例論文#1を起点として、この論文に近い3つの論文を取り出し、この中に正例が含まれる数によって精度を確かめる。これを正例論文#26まで繰り返し全体の精度を計算することを1セットとして、前回と同様に自然言語処理と機械学習の数十の組み合わせを検証してみました。

その結果、いくつかの組み合わせにおいて68%の正解率まで確認することができました。68%は一つの論文を起点に類似する論文を3つ選んだ時に、その中の2つは正解であるということを意味しています。またこの方法で26編の正例のうちの22編が探索(デイジーチェーンサーチ)されることも確認できました。

私たちが得た結論は「探したい言葉で絞り込む検索」と「類似する文意を探し出す検索」は、全く違うアプローチが必要ということでした。

さいごに

今回の検証を通して、人間の脳は「あいまいな情報から似たものを見つけ出す」という驚異の能力を備えているとあらためて認識しました。今の人工知能や機械学習は人間の脳には到底及んでいません。しかし、今の技術を応用し、徐々に人間の脳に近いアルゴリズムを実装できるかもしれません。

今回の検証は、現在も精度の向上を目指して継続しており、今回のエンジンを利用した検索システムの構築を始めたところです。そして、その後の成果についてもまた後日ご紹介したいと考えています。

ラックでは、このようなお客様のニーズに応じ、AIを活用したシステム開発にも積極に取り組んでいます。この記事を読んで似たような課題を抱えている方、AI活用に悩んでいる方がいらっしゃいましたら、ぜひお気軽に相談、お問い合わせください。

お問合せ

AI活用に関するお問い合わせ

この記事は役に立ちましたか?

はい いいえ