BERTはどのようにしてGoogle検索の言語理解を手助けしているのか?

[レベル: 上級]

検索で利用している 4 つの主要な AI について Google は先日公式ブログで紹介しました。
4 つに含まれている 1 つに BERT があります。

この BERT が、Google 検索の言語理解をどのようにして手助けしているのかを簡潔に解説する短編動画を、今度は YouTube で Google は公開しました。


人間と同じようにコトバを理解する AI

文脈や口調、意図などから人間にとって意味を理解できるコトバを、同じようにコンピュータが理解するのは簡単ではありません。

たとえば、パンケーキのレシピに次のように書かれていたとします。

Mix the batter with the banana

意味としては「ミキシングスプーンなどの調理器具を使って、生地をバナナと混ぜる」ですが、「バナナで生地をかき回す」とコンピュータは文字どおりに理解してしまうかもしれません。
僕たち人間にとっては当然のことでもコンピュータにとってはそうではないのです。

単語の意味を単に理解するのではなく、単語が特定の順番に組み合わさって句や文を構成したときにどんな意味を持つかを AI は理解します。
次の 3 つは同じ “flies (fly)” でもまったく意味が異なります。

  • how to remove fruit flies
  • which airline flies to Hawaii
  • what flies as cocktail attire

1 つ目の fly は「ミバエ」(果物にたかる蝿の一種)を意味します。
全体では、ミバエの取り除き方という意味です。

2 つ目の fly は学校で真っ先に習う「飛ぶ」の意味です。
どの航空会社がハワイに飛んでいるか、という意味になります。

3 つ目の fly は、「格好いい」という意味の俗語です。
カクテルパーティの衣装には何がイカしてる、といったような意味になります。

些細にみえても重要な単語を無視しない BERT

BERT が真価を発揮するのは、今までであれば検索対象からは除外してしまうであろう単語を、状況によってはきちんと考慮に入れる点です。
通常であれば、検索の対象としては無視しても問題ない単語であっても文脈によっては無視してしまうとまったく意味が異なってしまうことがあります。
BERT は、そういった一見すると些細な単語でも、文脈上、重要な場合には無視しません。

次のようなクエリで誰かが検索した状況を例に挙げています。

can you get medicine for someone pharmacy

多くの場合は、“for” を取り除いて検索しても適切な結果が返ってきます。
一般的に言って、for がなくても意味が成り立つ場合が多いからです。

ところが、この質問では for は非常に重要です。
もし無視すると意味がガラリと変わってしまいます。

日本語に訳すと「だれかの代わりに薬局で薬をもらえるか」という意味になります。
処方箋を出してもらった本人以外の人でも薬局で薬を受け取れるかという質問です。

for を考慮しないと、薬局で薬をもらえるかどうかという単純な質問になってしまいそうです。
従来であれば、Google は薬局での薬の受け取りに関連するページを返していたでしょう。

[can you get medicine for someone pharmacy] をで今 Google で検索すると、家族や友だちなど他の人に薬を取ってきてもらえるかどうかを解説するコンテンツが表示されます。

    can you get medicine for someone pharmacy の検索結果

BERT を訓練する

BERT のトレーニング方法についても Google は動画で触れています。

文の 20% を隠して、どんな単語を当てはめると意味が通じる文になるかを訓練させます。

Fly fishers ○○ different ○○ depending on the ○○.

📝「フライフィッシングする釣り人は○○に応じて異なる○○を○○する」

○○ にさまざまな単語を当てはめていきます。

Fly fishers swat different bugs depending on the location.

📝「フライフィッシングする釣り人は場所に応じて異なる虫をピシャリと叩く」

文としては正しいですが、意味不明ですね。

Fly fishers use different bait depending on the season.

📝「フライフィッシングする釣り人は季節に応じて異なるベイト(毛ばり)を使う」

こちらは、とても自然です。

このようなトレーニングを繰り返していくと、前後にある単語に応じて異なる単語が異なる意味持つことを BERT は次第に理解していきます。
加えて、文の中で単語が現れる場所がとても重要なことも理解していきます。

最終的には、非常に複雑なクエリに対しても適切な検索結果を返せるようになります。

ユーザーは、普段話している言葉でますます検索するようになっています。
いわゆる自然言語を使ったクエリでの検索に対する検索結果を BERT は飛躍的に改善しました。

Google の言語理解能力が向上することは、僕たちにとっても利点です。
ユーザーにわかりやすいコンテンツを作れば、それはすなわち Google にとってもわかりやすいコンテンツになります。
よくあるような “SEO に強いライティング” などを気にしなくてよくなるでしょう。