古代の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 が機械学習プロジェクトに最適な言語である理由は何ですか?

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

ブログ    
ブログ    

推薦する

...

AIチップがまだ普及していないのはなぜでしょうか?

2019年、国内外の業界関係者が共同でAIチップの開発を推進しました。 7nmチップはまだ完全に展...

「紫禁城の戦い」 - ディープラーニング フレームワーク: Keras VS PyTorch

TensorFlow は、多くの科学者、エンジニア、開発者にとって主要なディープラーニング フレー...

倪光南:AI開発は教訓を学ぶべき、コア技術は購入したり置き換えたりすることはできない

「ここ数年、情報技術分野で私たちが学んだ最大の教訓の一つは、主要な中核技術は私たち自身の独立したイノ...

Google が「同時通訳」システム Translatotron を発表: テキスト変換なしの音声翻訳

Google AI の公式ブログ *** では、音声をテキストを挟まずに直接音声に翻訳できる実験的な...

ラマ事件じゃないよ!李開復の大型モデルが貝殻論争に巻き込まれ、チームの2度目の反応がここに!

ノアとシャオウが編集制作:51CTO テクノロジースタック(WeChat ID:blog)昨日、テク...

RadOcc: レンダリング支援蒸留によるクロスモーダル占有知識の学習

原題: Radocc: レンダリング支援蒸留によるクロスモダリティ占有知識の学習論文リンク: htt...

Python 暗号化および復号化モジュール hashlib の 7 つの暗号化アルゴリズムの一覧

[[393258]]序文プログラムでは、MD5 sha1 など、多くの暗号化アルゴリズムをよく見かけ...

あなたはキング・オブ・グローリーをプレイしていますが、誰かがiPhoneを使ってニューラルネットワークをトレーニングしています

知っていましたか? LeNet 畳み込みニューラル ネットワークは iOS デバイス上で直接トレーニ...

AIで製造業を解放する: 企業がアプリケーションシナリオを発見し、課題に対処する方法

まとめ現在、さまざまな業界がデジタルビジネスシナリオを実装または強化するために機械学習機能を構築して...

ディープニューラルネットワークを使用してNER固有表現抽出の問題を解決する

この記事は次のように構成されています。固有表現抽出 (NER) とはどのように識別しますか? cs2...

NvidiaはAIでの成功を量子コンピューティングに応用しようとしている

この記事はLeiphone.comから転載したものです。転載する場合は、Leiphone.com公式...

Daguan Data が自社開発の OCR と NLP 技術を統合し、インテリジェント RPA をリリース<

2019年7月26日、人工知能企業Daguan Dataは北京で「大道知建」をテーマにした製品発表...

機密コンピューティングが生成型AIの導入を確実にする方法

生成 AI は、新しい製品、ビジネス、業界、さらには新しい経済に情報を提供することができます。しかし...