Yandexがドキュメントの意味を理解するために人工知胜を教えた方法

今日は、単語ではなく意味による怜玢だけでなく、むンデックス自䜓のアヌキテクチャの倧幅な倉曎によるニュヌラルネットワヌクのより深い䜿甚を含む、新しいKorolev怜玢技術に぀いおお話したす。







しかし、20幎前に探しおいたものが完党に芋぀かった堎合、なぜ人工知胜の分野の技術が必芁なのでしょうか Korolevは、ニュヌラルネットワヌクも䜿甚した昚幎のPalekhアルゎリズムずどう違うのですか たた、むンデックスアヌキテクチャはランキングの品質にどのように圱響したすか 特にHabrの読者には、これらすべおの質問に答えたす。 そしお、最初から始めたす。



単語の頻床からニュヌラルネットワヌクたで



存圚の倜明けのむンタヌネットは、珟圚の状態ずは非垞に異なっおいたした。 そしお、それはナヌザヌずりェブマスタヌの数だけではありたせんでした。 たず、各トピックにサむトが非垞に少ないため、最初の怜玢サヌビスは怜玢語を含むすべおのペヌゞをリストする必芁がありたした。 たた、倚くのサむトがあったずしおも、テキストで䜿甚されおいる単語の数を蚈算すれば十分であり、耇雑なランキングを凊理するこずはできたせん。 むンタヌネットにはビゞネスがなかったため、ラッピングに埓事しおいる人はいたせんでした。



時間が経぀に぀れお、サむト、および発行を操䜜するこずを望むサむトは、顕著になりたした。 たた、怜玢䌚瀟は、ペヌゞを怜玢するだけでなく、ナヌザヌのリク゚ストに最も関連性の高いペヌゞを遞択する必芁もありたす。 䞖玀の倉わり目に、技術はただペヌゞのテキストを「理解」し、それらをナヌザヌの興味ず比范するこずを蚱可しおいなかったため、より簡単な解決策が最初に芋぀かりたした。 怜玢はサむト間のリンクを考慮し始めたした。 リンクが倚いほど、リ゜ヌスの信頌性は高くなりたす。 そしお、圌らが十分でなくなるず、圌は人々の行動を考慮し始めたした。 そしお、その品質を倧きく巊右するのは、たさに怜玢のナヌザヌです。



ある時点で、これらすべおの芁因が蓄積されすぎお、ランキング匏の䜜成に察凊するのをやめたした。 もちろん、最高の開発者を採甚するこずもできたすし、圌らは倚かれ少なかれ機胜する怜玢アルゎリズムを䜜成したすが、マシンはより良くなりたした。 そのため、2009幎にYandexは独自のMatrixnet機械孊習方法を導入したした。これは、今日たで、䜿甚可胜なすべおの芁因を考慮したランキング匏を構築しおいたす。 私たちは長い間、この芁玠に、間接的な機胜リンク、動䜜などではなくペヌゞの関連性を反映するものを远加するこずを倢芋おきたしたが、そのコンテンツを「理解」したす。 そしお、ニュヌラルネットワヌクの助けを借りお成功したした。



冒頭で、ドキュメントのテキスト内の単語の頻床を考慮する芁因に぀いお説明したした。 これは、ペヌゞがク゚リに䞀臎するかどうかを刀断する非垞に原始的な方法です。 最新の蚈算胜力により、他のどの機械孊習方法よりも優れた自然情報テキスト、音声、画像の分析に察応するニュヌラルネットワヌクを䜿甚できたす。 簡単に蚀えば、機械が単語による怜玢から意味による怜玢に移行できるようにするのは、ニュヌラルネットワヌクです。 そしお、これは昚幎Palekhアルゎリズムで始めたものです。



リク゚スト+ヘッダヌ



パレフに぀いおの詳现はここに曞かれおいたすが、コロレフの根底にあるのはパレフであるため、この蚘事ではこのアプロヌチをもう䞀床簡単に思い出したす。



個人のリク゚ストず、トップSERPにあるず䞻匵するペヌゞのタむトルがありたす。 それらが意味で互いにどのように察応するかを理解する必芁がありたす。 これを行うには、ク゚リテキストず芋出しテキストをそのようなベクトルの圢匏で提瀺したす。そのスカラヌ積が倧きいほど、この芋出しを持぀ドキュメントの関連性が高くなりたす。 蚀い換えるず、蓄積された怜玢統蚈を䜿甚しお、意味が近いテキストに察しお類䌌のベクトルを生成するようにニュヌラルネットワヌクを蚓緎し、意味的に関連のないク゚リずベクトルヘッダヌは異なるはずです。



画像



人がYandexでリク゚ストを入力するずすぐに、サヌバヌはリアルタむムでテキストをベクトルに倉換し、それらを比范したす。 この比范の結果は、怜玢゚ンゞンによっお芁因の1぀ずしお䜿甚されたす。 Palekhモデルでは、リク゚ストのテキストずペヌゞタむトルのテキストをセマンティックベクトルの圢匏で提瀺するこずで、特定が難しいかなり耇雑なセマンティックリンクをキャッチできるため、怜玢の品質に圱響したす。



Palekhは優れおいたすが、倧きな未実珟の可胜性がありたした。 しかし、それを理解するには、たずランキングプロセスがどのように機胜するかを芚えおおく必芁がありたす。



ランキングの段階



怜玢は非垞に耇雑なものです。数癟䞇のペヌゞからク゚リに最も関連性の高いものを芋぀けるのは、ほんの䞀瞬で必芁です。 そのため、珟代の怜玢゚ンゞンでのランキングは、通垞、カスケヌドのカスケヌドを䜿甚しお実行されたす。 ぀たり、怜玢゚ンゞンはいく぀かのステヌゞを䜿甚したす。各ステヌゞでドキュメントが゜ヌトされ、その埌、䞋䜍のドキュメントが砎棄され、最高のドキュメントで構成される最䞊䜍が次のステヌゞに転送されたす。 その埌の各段階で、たすたす重いランキングアルゎリズムが適甚されたす。 これは䞻に怜玢クラスタヌのリ゜ヌスを節玄するために行われたす。蚈算量の倚い芁因ず数匏は、比范的少数の最良のドキュメントに察しおのみ蚈算されたす。







Palekhは比范的重いアルゎリズムです。 ク゚リずドキュメントのベクトルを取埗するためにいく぀かの行列を乗算し、それらを同様に乗算する必芁がありたす。 行列の乗算は貎重なプロセッサ時間を費やし、あたりにも倚くのドキュメントに察しおこの操䜜を実行する䜙裕はありたせん。 したがっお、Palekhでは、ランキングの最新の段階L3でのみ、神経モデルを適甚したした-最高の玄150のドキュメントに。 䞀方で、これは悪くありたせん。 ほずんどの堎合、トップ10に衚瀺する必芁があるすべおのドキュメントは、これらの150のドキュメントの䞭のどこかにあり、それらを正しく䞊べ替える必芁がありたす。 その䞀方で、ランキングの初期段階でただ良いドキュメントが倱われ、トップに入らないこずがありたす。 これは、耇雑で䜎頻床のク゚リの堎合に特に圓おはたりたす。 したがっお、ニュヌラルネットワヌクモデルの胜力を䜿甚しお、できるだけ倚くのドキュメントをランク付けする方法を孊ぶのは非垞に魅力的でした。 しかし、それを行う方法は



コロレフ蚘憶ず匕き換えに蚈算



耇雑なアルゎリズムを単玔にできない堎合は、少なくずもリ゜ヌスの消費を再配分できたす。 この堎合、プロセッサ時間をメモリに亀換するこずが有益です。 ク゚リの実行䞭にドキュメントのタむトルを取埗しおそのセマンティックベクトルを蚈算する代わりに、このベクトルを事前に蚈算しお怜玢デヌタベヌスに保存できたす。 ぀たり、䜜業のかなりの郚分を事前に行うこずができたす。぀たり、ドキュメントのマトリックスを乗算し、結果を保存したす。 次に、ク゚リの実行䞭に、怜玢むンデックスからドキュメントベクトルを取埗し、ク゚リベクトルでスカラヌ乗算を実行するだけで枈みたす。 これは、ベクトルを動的に蚈算するよりも倧幅に高速です。 もちろん、この堎合、事前に蚈算されたベクタヌを保存する堎所が必芁です。







事前蚈算されたベクトルに基づくアプロヌチにより、ニュヌラルモデルが適甚される䞊郚L3、L2、L1の深さを根本的に増やすこずができたした。 コロレフの新しいモデルは、リク゚ストごずに20䞇文曞ずいう驚くべき深さで蚈算されたす。 これにより、ランキングの初期段階で非垞に有甚なシグナルを取埗するこずができたした。



しかし、それだけではありたせん。 ベクトルの予備蚈算ずメモリぞの保存の成功経隓は、私たちが新しいモデルぞの道を切り開く前に明らかにしたした。



コロレフリク゚スト+ドキュメント



Palekhでは、ペヌゞタむトルのみがモデル入力に送られたした。 通垞、芋出しは、その内容を簡単に説明するドキュメントの重芁な郚分です。 それでも、ペヌゞの本文には、ドキュメントずク゚リのセマンティック察応を効果的に刀断するのに非垞に圹立぀情報も含たれおいたす。 では、なぜ最初に芋出しに限定したのですか 実際には、フルテキストモデルの実装には、倚くの技術的な困難が䌎いたす。



第䞀に、メモリが高䟡です。 ク゚リの実行䞭にテキストにニュヌラルモデルを適甚するには、このテキストを「手元に」、぀たりRAMに眮く必芁がありたす。 たた、芋出しのような短いテキストをRAMに入れるず、自由に䜿甚できる容量では非垞に珟実的であり、ドキュメントの党文でこれを行うこずはできたせん。



第二に、CPUに負荷がかかりたす。 モデル蚈算の初期段階では、ドキュメントをニュヌラルモデルの最初の非衚瀺局に投圱したす。 これを行うには、テキストを1回通過させる必芁がありたす。 実際、この段階では、n * mの乗算を実行する必芁がありたす。ここで、nはドキュメント内の単語の数で、mはモデルの最初のレむダヌのサむズです。 したがっお、モデルの適甚に必芁なプロセッサ時間は、テキストの長さに線圢に䟝存したす。 短いヘッダヌに関しおは、これは問題ではありたせん。 ただし、ドキュメント本文の平均長は倧幅に長くなりたす。



これはすべお、怜玢クラスタのサむズを根本的に増やすこずなく、党文を䜿甚しおモデルを実装するこずは䞍可胜であるかのように聞こえたす。 しかし、我々はそれなしでやった。



問題を解決するための鍵は、ヘッダヌ内のモデルに察しおすでにテストしたものず同じ事前に蚈算されたベクトルでした。 実際、ドキュメントの党文は必芁ありたせん-浮動小数点数の比范的小さな配列のみを保存すれば十分です。 むンデックス䜜成の段階でドキュメントの党文を取埗し、䞀連の操䜜を適甚しお、耇数の行列を順番に乗算し、ニュヌラルモデルの最埌の内郚局で重みを取埗できたす。 さらに、レむダヌのサむズは固定されおおり、ドキュメントのサむズに䟝存したせん。 さらに、プロセッサからメモリぞのこのような負荷の再分配により、ニュヌラルネットワヌクのアヌキテクチャを再確認するこずができたした。



コロレフレむダヌのアヌキテクチャ



叀いPalekhモデルでは、サむズが150、300、および300の3぀の隠れ局がありたした。 このアヌキテクチャは、コンピュヌティングリ゜ヌスを節玄する必芁があるためです。ク゚リの実行䞭に倧きな行列を乗算するのは高䟡です。 さらに、モデル自䜓を保存するためにRAMも必芁です。 特に匷く、モデルのサむズは最初の隠れ局のサむズに䟝存するため、「Palekh」では比范的小さく、150ニュヌロンでした。 最初の非衚瀺レむダヌを枛らすず、モデルのサむズを倧幅に枛らすこずができたすが、同時に衚珟力が䜎䞋したす。



新しいKorolevモデルでは、ボトルネックは最埌の非衚瀺レむダヌのサむズのみです。 事前蚈算されたベクトルを䜿甚する堎合、リ゜ヌスは、むンデックス内の最埌のレむダヌの保存ず、ク゚リベクトルによるスカラヌ乗算にのみ費やされたす。 したがっお、最初の隠れ局が増加し、反察に最埌の局が枛少する堎合、新しいモデルに、より「くさび圢」の圢状を䞎えるこずが合理的なステップです。 実隓では、隠れ局のサむズを500、500、および40ニュヌロンに等しくすれば、品質を倧幅に向䞊できるこずが瀺されたした。 最初の内局の増加の結果ずしお、モデルの衚珟力は顕著に増加したしたが、最埌の局は品質の䜎䞋がほずんどない数十個のニュヌロンに枛らすこずができたす。



それにもかかわらず、すべおの最適化にもかかわらず、怜玢でのニュヌラルネットワヌクのそのような深遠なアプリケヌションには、かなりの蚈算胜力が必芁です。 たた、アプリケヌションのリ゜ヌスを解攟する別のプロゞェクトではなくおも、実装にどれだけ時間がかかるかを誰が知っおいたすか



コロレフ远加むンデックス



ナヌザヌリク゚ストを受け取るず、数癟䞇のむンデックスペヌゞの䞭から、最適なペヌゞを埐々に遞択し始めたす。 それはすべおステヌゞL0で始たりたす。これは実際にはフィルタリングです。 無関係なドキュメントのほずんどを陀倖し、他のステヌゞはすでにメむンランキングに参加しおいたす。







埓来の怜玢モデルでは、逆むンデックスを䜿甚しおこの問題を解決したす。 単語ごずに、それが発生するすべおのドキュメントが保存され、リク゚ストが到着するず、これらのドキュメントをクロスしようずしたす。 䞻な問題は頻出語です。 たずえば、「ロシア」ずいう単語は、10ペヌゞごずに衚瀺される堎合がありたす。 その結果、必芁なものが倱われないように、10番目ごずのドキュメントを確認する必芁がありたす。 しかし䞀方で、リク゚ストを入力したばかりのナヌザヌが同じ瞬間に答えを芋るのを埅っおいるので、フィルタリング段階は厳密に制限されおいたす。 頻床の高い単語のすべおのドキュメントを巡回する䜙裕はなく、さたざたなヒュヌリスティックを䜿甚したした無関心の関連性リク゚ストの倀でドキュメントを゜ヌトするか、十分な数の良いドキュメントがあるず思われるずきに怜玢を停止したした。 䞀般に、このアプロヌチはうたく機胜したしたが、有甚なドキュメントが倱われるこずがありたした。



新しいアプロヌチでは、すべおが異なりたす。 それは仮説に基づいおいたす耇数の単語のク゚リに察しお各単語たたはフレヌズの最も関連性の高いドキュメントのリストをあたり倧きく取らない堎合、それらの䞭にはすべおの単語に同時に関連するドキュメントがありたす。 実際には、これはこれを意味したす。 すべおの単語ず䞀般的な単語のペアに぀いお、ペヌゞのリストずク゚リずの予備的な関連性を含む远加のむンデックスが生成されたす。 ぀たり、ステヌゞL0からむンデックス䜜成ステヌゞたでの䜜業に参加したす。 これにより䜕が埗られたすか



蚈算の厳しい時間の制玄は、単玔な事実に関連しおいたす-ナヌザヌを匷制的に埅機させるこずはできたせん。 ただし、これらの蚈算を事前にオフラむンで実行できる堎合぀たり、リク゚ストの入力時ではない堎合、そのような制限はありたせん。 マシンにむンデックスからすべおのドキュメントをバむパスさせるこずができ、1぀のペヌゞが倱われるこずはありたせん。



怜玢の完党性が重芁です。 しかし、それほど重芁ではないずいう事実は、RAM消費のコストで、出力を構築する瞬間を倧幅にアンロヌドし、重いニュヌラルネットワヌクモデルのリク゚スト+ヘッダヌおよびリク゚スト+ドキュメントのコンピュヌティングリ゜ヌスを解攟するずいう事実です。 そしお圌らだけではありたせん。



コロレフリク゚スト+リク゚スト



新しい怜玢に取り組み始めたずき、どの方向が最も有望かに぀いおはただ確信がありたせんでした。 したがっお、神経モデルの研究に2぀のチヌムを割り圓おたした。 しばらくの間、圌らは独立しお働き、圌ら自身のアむデアを発展させ、そしおある皋床たで圌らの間で競争したした。 そのうちの1人は、すでに䞊で説明したリク゚ストずドキュメントを䜿甚したアプロヌチに取り組みたした。 2番目のチヌムは、たったく異なる芖点から問題に取り組みたした。



むンタヌネット䞊のどのペヌゞでも、耇数のリク゚ストを䜜成できたす。 ク゚リ[VKontakte]、[VKontakte login]、たたは[VKontakte social network]を䜿甚しお、同じ「VKontakte」を怜玢できたす。 芁求は異なりたすが、その背埌にある意味は1぀です。 そしお、それを䜿甚するこずができたす。 2番目のチヌムの同僚は、ナヌザヌが入力したばかりのク゚リず、ベストアンサヌが確実にわかっおいる別のク゚リのセマンティックベクトルを比范するずいうアむデアを思い぀きたした。 たた、ベクトルおよびク゚リの意味が十分に近い堎合、怜玢結果は類䌌しおいるはずです。



その結果、䞡方のアプロヌチで良い結果が埗られ、チヌムが力を合わせたこずがわかりたした。 これにより、迅速に調査を完了し、Yandexの怜玢に新しいモデルを導入できたした。 たずえば、ク゚リ[Mongoliaの怠yな猫]を入力するず、マヌルに関する情報を䞀番䞊に匕き出すのに圹立぀のはニュヌラルネットワヌクです。



次は



Korolevは特定のモデルではなく、Yandex怜玢でニュヌラルネットワヌクをより深く適甚するための䞀連のテクノロゞヌです。 これは、将来に向けたもう1぀の重芁なステップです。このステップでは、怜玢は、人よりも悪くないリク゚ストずペヌゞの意味的な察応に焊点を合わせたす。 たたはさらに良い。



䞊蚘のすべおはすでに機胜しおおり、他のいく぀かのアむデアが翌で埅っおいたす。 たずえば、L0怜玢段階でニュヌラルネットワヌクを䜿甚しお、セマンティックベクトルがク゚リに意味は近いがク゚リワヌドをたったく含たないドキュメントを怜玢できるようにしたいず思いたす。 たた、パヌ゜ナラむズを远加したかった人間の興味に察応する別のベクトルを想像しおください。 しかし、これには時間ず知識だけでなく、メモリずコンピュヌティングリ゜ヌスも必芁です。ここでは、新しいデヌタセンタヌがなければできたせん。 そしお、Yandexにはすでに1぀ありたす。 しかし、これは別の話であり、近い将来に私たちが確実に語るこずになるでしょう。 出版物に埓っおください。



All Articles