古代のLRから始まる初心者でもわかるレコメンデーションアルゴリズム入門

古代のLRから始まる初心者でもわかるレコメンデーションアルゴリズム入門

[[386397]]

みなさんこんにちは。私は、気づかないうちに長い間、推薦システムに取り組んできました。多くのクラスメートが私に推薦システムについて書いてほしいとプライベートメッセージを送ってきましたが、十分な経験を積むのに苦労しており、何も提供できるものがありません。最近、しばらくリフレッシュしてまとめをしており、いくつかの経験を積んできたので、皆さんと共有したいと思います。

推薦システムを紹介するので、まずは最もシンプルで簡単なモデルから始めましょう。推奨アルゴリズムの分野で最も単純なモデルといえば、当然LRです。

LR モデルは機械学習の分野における基本的なモデルです。この分野に触れたことのある学生なら、このモデルをよく知っていると思います。

LRを選ぶ理由

LR が何であるかは誰もがすでに知っていますが、まだ答えられていない質問が 1 つあります。では、なぜ LR モデルは初期のころから人気があったのでしょうか? 決定木、ランダムフォレスト、GBDT など、一見高度な他のモデルは使えないのでしょうか? XGBoost はさまざまなコンテストで非常に優れたパフォーマンスを発揮したと言われているのではないでしょうか? 業界ではなぜこれを推奨に使用しないのでしょうか?

この混乱は、Facebook が 2014 年に発表した GBDT+LR 論文を読んだときに特に顕著でした。

この論文は非常に古典的で、業界内で重要な地位を占めており、推奨分野における必読論文の一つとも言えるでしょう。ディープラーニングが台頭する以前から、多くの企業やメーカーがこのアプローチを採用してきました。論文で説明されているアプローチは難しくなく、革新的なアプローチだと言われています。本質的には、GBDT予測中にサンプルが入るノードをマルチホットエンコーディングとして使用し、エンコードされた01配列を新しい特徴と見なし、この変換された特徴を使用してLRをトレーニングするというものです。その本質は依然として LR をトレーニングすることであり、いわゆる GBDT はエンコーダーに過ぎないと言えます。

この論文を読んで、その意味は理解できましたが、一つ分からない疑問がありました。 GBDT が使われているので、他のモデルと組み合わせた方が良いのではないでしょうか。なぜ LR と組み合わせなければならないのでしょうか。

推奨分野の専門家の多くは、この質問に答えられないかもしれません。今のところは秘密にして、質問をここに書いて後で答えることにします。

推奨フィールドの特徴は何ですか?

アルゴリズムの分野では、効果、機能、モデルは表裏一体であり、切り離すことは困難です。優れたモデルには優れた機能サポートも必要であり、優れた機能を完全に表現するには優れたモデルが必要です。では、モデルの問題は一旦脇に置いて、機能について考えてみましょう。

レコメンデーション分野には、主な特徴が 3 つしかありません。電子商取引を例にとると、それはアイテム、ユーザー、コンテキストです。つまり、時間、場所、展示場所など、商品、ユーザー、環境に関する情報です。コンテキスト機能は比較的少なく、数も少ないため、ここでは脇に置いておきます。残るのはユーザーと製品です。ユーザーと製品の周りに形成される特徴は、主に 2 つの部分に分けられます。1 つは基本特徴、もう 1 つは統計的特徴です。

商品を例にとると、基本的な特徴はブランド、価格、カテゴリ、評価であり、統計的な特徴は最近のクリック率、最近の売上、最近のコンバージョン率などです。これらの特徴は、カテゴリに応じて 2 つのタイプに分けられます。1 つは浮動小数点連続特徴であり、もう 1 つは製品カテゴリ、ブランドなどのカテゴリ特徴です。ここまではすべて正常であり、理解するのが難しいことや信じられないことは何もありません。

モデルが予測しようとしているターゲット、つまりクリックスルー率に移りましょう。上記の特徴をモデル予測の目標と合わせて見てみましょう。最終結果と強い正の相関関係がある過去のクリックスルー率や過去のコンバージョン率などのいくつかの指標を除いて、他の浮動小数点の特徴には特に明らかな正または負の相関関係がないことがわかります。製品の価格とクリックスルー率は逆相関していると言えるのでしょうか? 実際のところ、そうではありません。製品が安いほど品質が悪くなり、クリックする人も少なくなります。ユーザーの購買力はどうでしょうか? お金持ちになればなるほど、より多くの商品を持っているのでしょうか? それも真実ではありません。

まさに上記の理由から、レコメンデーション分野では、うまく機能する浮動小数点特徴量は非常に少なく、そのほとんどはカテゴリ特徴量、つまり01特徴量です。

では、GBDT、ランダムフォレスト、XGboost などのモデルは効果的だと思いますか? これらのモデルの強みは、浮動小数点機能、つまり連続機能にあることが多いため、何とも言えません。これらのツリー モデルは、これらの連続した機能をセグメント化するためのルールを設計します。ほとんどの機能が 01 機能である場合、どのようにセグメント化できるでしょうか。

そこで、ここでは、ディープラーニング モデルが登場する前は、なぜ一見強力に見えるツリー モデルではなく、LR が推奨分野で一般的に使用されていたのかという疑問に答えました。

LRモデルの原理

LR モデルは純粋な線形モデルであり、複数の特徴の加重合計として簡単に理解できます。各特徴の重みは大きいか小さいかで、最終的に合計されて予測確率が得られます。これには何も問題はありませんし、それを研究した人なら誰でもそれを知っています。

しかし、もう 1 つレベルを下げてみましょう。推奨の分野でこれが何を意味するかについて考えたことはありますか?

これは、モデルが実際に各機能と最終結果の関係を「記憶」していることを意味します。モデルを擬人化してロボットと見なすと、次のようになります。ロボットはサンプルに特徴 A があることを確認してクリックするため、特徴 A の重みが少し増加します。サンプルには特徴 B がありますがクリックされていないため、特徴 B の重みが少し減少します。このモデルは、そのような戦略の中で最適なバランスを見つけることです。

つまり、覚えやすい機能の方がうまく機能する傾向があります。たとえば、男性は通常タバコを購入し、女性は通常口紅を購入するため、men_cigarettes と women_lipstick の組み合わせ機能を設計できます。モデルは、ほとんどの男性がタバコのボタンをクリックするのを見ると、この組み合わせが強力な特徴であると学習し、より高い重み付けを与えます。このように、これらの特徴の組み合わせを可能な限り見つけることができれば、モデルは良好な結果を達成できます。

したがって、LR モデルは基本的に「メモリ」に依存して推奨分野で役割を果たしていることが今では誰もが理解しています。これらのカテゴリ特徴とカテゴリ特徴の組み合わせを記憶できるため、一見するとより高度なツリー モデルよりも優れたパフォーマンスを発揮することがよくあります。これは、LR 時代の後期に、モデルが良い結果を達成することを期待して、カテゴリ機能の組み合わせを一日中探索することがアルゴリズム エンジニアの仕事であった理由でもあります。

LRモデルの長所と短所

ここまでで、推奨分野における LR モデルの応用についての説明はほぼ終わりです。まずはその利点から簡単にまとめてみましょう。

LR モデルの利点は、トレーニング速度が速いなど、教科書でよく取り上げられています。パラメータ空間が比較的小さいため、LR モデルは収束が速く、トレーニング速度はツリー モデルやそれに続くディープラーニング モデルよりもはるかに高速です。第二に、解釈性が非常に高いです。すべての機能の重みをチェックできるため、どの機能が役割を果たしているか、どの機能がパフォーマンスを妨げているかを簡単に説明できます。

しかし、LR には推奨の分野では大きな欠点もあります。それは、面倒で疲れる作業が大量に発生することです。

ほとんどすべての特徴の組み合わせは手動で抽出する必要があるため、多くの特徴の組み合わせを手動で走査し、最適な組み合わせを見つけるために 1 つずつ試す必要があります。このプロセスには多くの人手が必要であり、ほとんど純粋な手作業と言えます。そのため、LR時代のアルゴリズムエンジニアにとって、ネジになっている感覚は今以上に深刻になるかもしれません。基本的に、モデルの最適化を考える必要はありません。LRのような単純なモデルには最適化の余地はありません。残るは特徴量作成と実験を行うだけです。

諺にあるように、先人の欠点は若い世代が努力すべき方向です。では、LR モデルのこれらの欠点をどのように補ったり最適化したりできるでしょうか?

この記事はWeChatの公開アカウント「TechFlow」から転載したもので、以下のQRコードからフォローできます。この記事を転載する場合は、TechFlow公式アカウントまでご連絡ください。

<<:  Python が機械学習プロジェクトに最適な言語である理由は何ですか?

>>:  スタンフォード大学の人工知能レポート: 今からでも遅くはない

ブログ    
ブログ    

推薦する

...

そうだ!機械学習を使用してビリビリの株価動向を予測する

[[418764]]この記事では、主にPythonを使用してビリビリの株価を分析する方法について説明...

...

初心者が機械学習をすぐに始められるように、Colabリソースの完全なリストはこちらです。

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...

2015年9月のプログラミング言語ランキング: 新しいインデックスアルゴリズムにより急上昇が解消

9月に、TIOBE Indexは改良されたアルゴリズムを使用してプログラミング言語の人気度を計算しま...

2024 年の CIO の 14 の優先事項とトレンド

GenAI は 2024 年の最大のテクノロジー トレンドとなり、新しいツールのレビュー、インフラス...

...

大規模機械学習のためのプログラミング手法、計算モデル、Xgboost および MXNet の事例

[[191977]]現在、機械学習のトレンドは、従来の方法のシンプルなモデル + 少量データ (手動...

巨大企業間の今後の AI 戦争: マイクロソフトは左に進んで 2B、グーグルは右に進んで 2C

AI時代の到来非常にドラマチックなのは、Microsoft Build 開発者会議と Google...

深層強化学習とは:次世代のAIと深層学習

[51CTO.com クイック翻訳] 強化学習は自律的な意思決定を実現するのに非常に適しています。対...

1つのGPUで数千の環境と800万ステップのシミュレーションをわずか3秒で実行。スタンフォード大学が強力なゲームエンジンを開発

この段階では、AI エージェントは万能であるように見え、ゲームをプレイしたり、人間を模倣してさまざま...

深度はディープニューラルネットワークに具体的に何をもたらすのでしょうか?

[[186161]]起源近年、人工知能は爆発的な成長を遂げており、ディープラーニングはその主な原動...

...

...

科学データ研究のための人工知能アシスタントMATAが特許を取得

サザンメソジスト大学(SMU)とNASAの研究者らは、科学的データに関する質問に答えることができる人...