LTR のエントリーレベルのモデルは線形モデルです。この記事では線形モデルを例に、検索とランキングのシナリオにおける一般的な方法で機械学習の基本的な考え方と実装手順を紹介します。 LTRシリーズの第3回目となるこの記事では、LTRを簡単に始められると思います。 多くの検索専門家は、「機械学習を通じて最適な重みを取得し」、それを検索クエリに使用したいという欲求を持っています。これは検索におけるモグラ叩きのようなもので、よく言われるように、「タイトル一致またはコンテンツ一致のどちらかを最適化することを選択できれば、間違いなくもっとうまくいくだろう」ということになります。 クエリにどのような重みを適用するかを学習するというこの本能は、最も単純なランク付け学習 (LTR) モデルである線形モデルの基本原理です。はい、伝説の線形回帰です!線形回帰は非常にシンプルで使いやすいです。機械学習のようにはまったく感じません。高校生向けの統計学のようなものです。モデルとその原理を理解するのも非常に簡単です。 このシリーズの記事では、まず線形回帰から始めて、徐々に勾配ブースティング(さまざまな種類のブースティング アルゴリズムを組み合わせたもの)、RankSVM、ランダム フォレストなどのアルゴリズムに移行しながら、LTR の実装を成功に導いた主要なアルゴリズムを紹介したいと思います。 LTRは何よりもまず回帰問題である このシリーズの記事では、前回の記事とドキュメントで学んだように、LTR をより一般的な問題である回帰にマッピングしたいと思います。回帰問題では、一連の数値特徴を予測値にマッピングするモデルをトレーニングする必要があります。 たとえば、会社の利益を予測するにはどのようなデータが必要ですか? 従業員数、株価、収益、キャッシュフローなど、過去の公開財務データが手元にあるかもしれません。いくつかの企業のデータが既知であると仮定すると、モデルはこれらの変数(またはそのサブセット)の関数として利益を予測するようにトレーニングされます。新興企業の場合、この機能を使用して企業の利益を予測できます。 LTR も回帰問題です。クエリに対するドキュメントの関連性を測定する一連の評価があります。関連性スケールは A から F までで、通常は 0 (まったく関連性がない) から 4 (非常に関連性がある) までです。まず、次に示すようなキーワード検索クエリを考えてみましょう。
時間信号の順序付けの関数としてランクを予測するモデルを構築する場合、LTR は回帰問題になります。 関連性検索におけるリコール、つまりシグナルと呼ばれるものは、クエリとドキュメントの関係を測る尺度です。より一般的な名前は機能ですが、私は個人的には長期シグナルと呼ぶことを好みます。理由の 1 つは、シグナルが通常クエリから独立していることです。つまり、結果はキーワード (またはクエリの一部) がドキュメントにどの程度関連しているかを測定することによって取得されます。一部の方法では、それらの関連性を測定します。したがって、記事の公開日やクエリから抽出されたエンティティ (「会社名」など) など、クエリ固有またはドキュメント固有の他のシグナルを導入できます。 上の映画の例を見てみましょう。関連性を予測するのに役立つクエリ依存のシグナルが 2 つあると思われるかもしれません。 タイトル属性に検索キーワードが何回出現するか サマリー属性に検索キーワードが何回出現するか 上記の評価を拡張すると、次の CSV ファイルに示すように、特定のシグナル値をレベルにマッピングした回帰トレーニング セットを取得できます。
線形回帰と同じように回帰プロセスを適用して、他の列を使用して最初の列を予測できます。 Solr や Elasticsearch などの既存の検索エンジン上にこのようなシステムを構築することも可能です。 私は複雑な問題を回避しました。それは、これらの評価をどのように取得するか、ドキュメントがクエリに対して良いか悪いかをどのように判断するか、ユーザー分析を理解するか、専門家による人間による分析か、という問題です。これは解決するのが最も難しいことが多く、非常にドメイン固有です。モデルを構築するために仮説的なデータを用意するのは良いことですが、時間の無駄です。 線形回帰LTR 統計学を勉強したことがあるなら、線形回帰についてはすでにご存知でしょう。線形回帰は、回帰問題を単純な線形関数として定義します。たとえば、LTR では、上記の最初のシグナル (検索キーワードがタイトル属性に出現する回数) を t と呼び、2 番目のシグナル (検索キーワードがサマリー属性に出現する回数) を o と呼びます。モデルは、次のように関連性をスコアリングする関数 s を生成できます。
最適な係数 c0、c1、c2 などを推定し、最小二乗法を使用してトレーニング データを予測できます。ここでは詳細には触れませんが、ポイントは、実際のグレード g と予測値 s(t, o) の間の誤差を最小限に抑えるために c0、c1、c2 などを見つけることができるということです。線形代数を復習すると、これは単純な行列計算のように見えます。 線形回帰を使用すると、決定が実際に別のランキング シグナル (t*o として定義) であることを含め、より満足できるようになります。または、別の信号 t2 (実際には通常 t^2 または log(t) として定義されます)、または相関予測に最適と思われるその他の式。ここで、これらの値を線形回帰の係数を学習するための追加列として使用する必要があります。 あらゆるモデルの設計、テスト、評価は、より奥の深い技術です。さらに詳しく学びたい場合は、『統計学習入門』を強くお勧めします。 sklearn を使用した線形回帰 LTR の実装 より直感的なエクスペリエンスを得るには、Python の sklearn ライブラリを使用して回帰を実装するのが便利です。上記のデータを使用して線形回帰による単純な LTR トレーニング セットを試したい場合は、予測しようとしている関連性スコアを S として表すことができ、表示される信号はそのスコアを X として予測します。 映画の関連性データを使って、興味深いことを試してみます。こちらは、検索キーワード「Rocky」の関連性評価のデータセットです。上記の判断表を思い出して、それをトレーニング セットに変換します。実際のトレーニング セットを体験してみましょう (注釈は特定のプロセスを理解するのに役立ちます)。タイトルTFを含む3つのソートシグナルを検証します。 IDFスコア、TFプロファイル IDFスコアと映画ファンからの評価。 それでは、早速コードを見てみましょう。次のコードは、CSV ファイルからデータを numpy 配列に読み込みます。配列は 2 次元で、最初の次元が行、2 番目の次元が列です。以下のコメントで、非常に現代的な配列スライスがどのように行われるかがわかります。 素晴らしい!単純な線形回帰を実行する準備ができました。ここでは、古典的な判断方法を使用します。つまり、未知数よりも方程式の数が多いのです。したがって、通常の最小二乗法を使用して、特徴 rockySignals とグレード rockyGrades の関係を推定する必要があります。簡単に言えば、NumPy 線形回帰は次のことを行います。 素晴らしい! 関連性が解決されました! (本当ですか?) これを使用してランキング機能を構築できます。タイトル属性と説明属性にそれぞれどの程度の重みを与えるべきかを学びました。 これまで私が見落としていたことの 1 つは、モデルとデータの適合性を評価する方法を考慮する必要があるということです。この記事の最後では、これらのモデルが一般的にどのように機能するかを確認したいと思います。しかし、モデルがトレーニング セット データに適合していると単純に想定するのではなく、必ず何らかのデータに対してモデルをテストすることをお勧めします。次のブログ投稿では、これらのトピックを個別に紹介します。 モデルを使用してクエリにスコアを付ける これらの係数を使用して、独自のソート関数を構築できます。これは説明目的に過ぎません。sk-learn の線形回帰には、入力を与えられたモデルを評価する予測メソッドが付属していますが、独自のメソッドを構築する方が楽しいです。 この関数を使用すると、「Rambo」を検索したときに、次の 2 つの候補映画の関連性スコアを取得できます。 では、Rambo と First Blood にスコアを付けて、どちらがクエリ「Rambo」との関連性が高いかを調べてみましょう。 結果スコアはランボーが3.670、ランボー・ファースト・ブラッドが3.671でした。 非常に僅差です!『ファースト・ブラッド』が『ランボー』をわずかに上回り勝利しました。理由はこうです - ランボーは完全に一致しており、ランボー映画の前編はファースト・ブラッドです!したがって、モデルをそれほど信憑性のあるものにするべきではありません。そのレベルに達する例はそれほど多くありません。さらに興味深いのは、紹介スコアの係数がタイトルスコアの係数よりも大きいことです。したがって、少なくともこの例では、モデルは、プロフィールに記載されているキーワードが多いほど、最終的な関連性が高くなる傾向があることを示しています。これまで、ユーザーの視点から見た関連性の問題を解決するための優れた戦略を学びました。 このモデルを追加すると、理解しやすく、妥当な結果が得られるため、さらに興味深いものになります。ただし、適用された相関関係のため、通常、特徴の直接的な線形結合は期待を満たしません。 Flax 氏の同僚が指摘しているように、そのような正当性が欠如しているため、直接加重ブースティングも期待に応えられません。 なぜでしょうか? 細部が成功と失敗を決定します。 上記の例から、関連性の高い映画の中には確かに TF*IDF 関連性スコアが高いものがあることがわかりますが、モデルは要約フィールドをより関連性が高いものとして優先する傾向があります。タイトルが実際に一致するタイミングと概要が一致するタイミングは、他の要因によっても異なります。 多くの問題では、関連性の評価はタイトル属性と概要属性のスコアとの単純な線形関係ではなく、コンテキストに依存します。タイトルを直接検索したいだけなら、タイトルの方が間違いなくマッチしますが、タイトル、カテゴリ、映画の俳優、あるいはその他の属性を検索するかどうかがわからない場合は、対処が難しくなります。 言い換えれば、関連性の問題は純粋な最適化問題ではないようです。 実際の関連性はより複雑です。魔法のような最適解は存在しませんが、他の多くの要因に依存する多くの局所最適解が存在します。なぜでしょうか? 言い換えると、相関関係は次のようになります。 これらのグラフ (Andrew Ng の機械学習コースから) は、「関連性エラー」、つまり学習しているスコアからどれだけ離れているかを示すために使用されると考えられます。 2 つの θ 変数のマッピングは、タイトルと概要の関連性スコアを表します。最初のグラフには、「関連性エラー」が最小となる単一の最適値、つまり両方のクエリに適用する理想的な重み設定があります。 2 つ目はもう少し実用的です。つまり、起伏のある、コンテキストに依存する局所最小値です。非常に高いタイトル ウェイト値に関連付けられる場合もあれば、非常に低いタイトル ウェイト値に関連付けられる場合もあります。 文脈とニュアンスについてはここまでです! この記事はここで終わります。以降の記事では、モデルの適用可能性を正確に定量化する方法に焦点を当てます。モデルの品質を評価するには、どのような指標を使用すべきでしょうか? これは、他の方法の方が微妙な違いをよりうまく捉えられるかどうかをテストするための重要なステップになります。 |
<<: AIをやりたいのですが、開発ツールはどのように選べばいいですか?この入門ガイドはあなたのためのものです
>>: 人工知能が他に何ができるか知りたいですか?明確な「ベイジアン意識」を持たなければならない
春から夏へと移り変わる季節は、世界のトップテクノロジー企業が毎年恒例のイベントを開催する季節です。 ...
この記事は、Heart of Autonomous Driving の公開アカウントから許可を得て転...
「ディープラーニングフレームワークは人工知能技術システムの真ん中にあり、下のチップと上のアプリケーシ...
[[313295]] 35歳前後というのはエンジニアにとって珍しい年齢です。技術者は、純粋に技術的な...
人工知能は歴史的に、やや相反する2つの陣営の間を揺れ動いてきました。一方では、ノーム・チョムスキー、...
この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...
事故の原因は特定されていないが(その後の報道では機械の故障だったとされている)、ドローンがハッカー攻...
先週、Github で最も人気のあるプロジェクトは、最近バージョン 2.0 に更新された自然言語処理...
AI 技術の継続的な革新と発展により、人工知能 (AI) は多くの分野で大きな進歩を遂げており、その...
外科用ロボット、人工知能心理学者、そして一連の「人工知能+」プロジェクト技術の統合が医療分野に急速に...
タスクの数が増えるにつれて、現在の計算方法を使用して汎用の日常的なロボットを構築するコストは法外なも...
9月15日、北京人工知能産業サミットおよび中関村科学城科学技術イノベーションコンテスト授賞式において...
財務省令第87号では、購入者または購入代理店は入札および入札評価プロセス全体を録画および記録しなけれ...