ベイジアンパーソナライズランキングアルゴリズムを1つの記事で理解する

ベイジアンパーソナライズランキングアルゴリズムを1つの記事で理解する

[[260485]]

[51CTO.com からのオリジナル記事] 哲学にさまざまな流派があるように、推奨システムのアルゴリズム設計の考え方もさまざまな流派に分けられます。ランキング学習は、こうした考え方の 1 つにすぎません。 RecSys などの国際的な推奨システム会議に精通している実務家は、2010 年以降、ランキング学習に基づく推奨システム アルゴリズムが多数登場していることに気付くかもしれません。ベイジアン・パーソナライズド・ランキング (BPR) からそれに続く Collaborative Less is More Filtering (CLiMF)、そして GapFM や XCLiMF などの他のアルゴリズムに至るまで、推奨システムの分野では百花繚乱の状況が続いています。

ランキング学習と協調フィルタリング、行列分解とそれに続くディープラーニングの設計思想の主な違いは、ランキング学習では推奨システムをランキングの問題として捉えている点です。つまり、ユーザーに商品をどのように推奨するかという問題は、ユーザーが好む可能性のある商品セット内で商品をどのように並べ替えるかという問題になります。このプロセスでは、アルゴリズムはユーザーが好むアイテムの評価を正確に予測することに重点を置くのではなく、アイテム間の連続的な関係を最適化の目標とします。

ランキング学習の英語名は Learning to Rank です。最適化の目的の違いにより、ポイントワイズランキング学習、ペアワイズランキング学習、リストワイズランキング学習の 3 つのカテゴリに分類されます。ポイントベースのランキング学習は、本質的には従来の分類アルゴリズムです。たとえば、SVM とロジスティック回帰はすべてポイントベースのランキング学習です。このタイプのランキング学習は、通常、ランキング学習の退化した形式であると考えられています。関係ペアベースのランキング学習は、アイテム セット内のアイテム間の関係を重視します。この章で説明するベイジアン パーソナライズ ランキング アルゴリズムは、このタイプのアルゴリズムに属します。リストベースのランキング学習は、アイテム セット内のアイテム リストの全体的なランキング関係を重視します。以降の章で説明するコラボレーティブ Less is More フィルタリング アルゴリズムは、このカテゴリに属します。このタイプのアルゴリズムは、アイテム セット内のアイテム スコアの全体的なランキング関係を最終的な最適化目標とします。

ベイジアン パーソナライズ ランキングの全体的な考え方は次のとおりです。現在、N 本のビデオがあり、それぞれのビデオには、ユーザーがクリックする、ユーザーがクリックしないという 2 つのユーザー ビヘイビアがあるとします。ここで、アイテムに対するユーザーによる評価を次のように設定します。ユーザーがクリックした動画のスコアは +1 となり、一部の動画はユーザーがクリックしていない動画からサンプリングされます。これらの動画はユーザーが好まない動画とみなされ、スコアは -1 となります。

ベイジアン パーソナライズ ランキングでは、まず、ユーザーによるアイテムの評価の背後にあるモデルが、行列分解モデルなどの一般的なモデルであると想定します。つまり、ユーザーによるアイテムの評価は R = U' * V となり、U はユーザー ベクトル、V はアイテム ベクトルとなります。アルゴリズムでは、スコアが +1 のすべての項目とスコアが -1 のすべての項目について、スコア マトリックス R を使用して項目を再スコアリングすると、元々スコアが +1 だった項目の新しいスコアは、元々スコアが -1 だった項目の新しいスコアよりも高くなると想定しています。

アルゴリズムの本質は、元の +1 項目スコアが -1 項目スコアよりも可能な限り高くなるという条件下で、R スコア分解後に U ベクトルと V ベクトルを推測することです。 ***U と V の積を計算することで、アイテムに対するユーザーの完全な評価マトリックスを取得し、アルゴリズムのプロセス全体を完了します。アルゴリズムについて詳しく説明しましょう。

まず、順序関係を定義します。ユーザーがアイテム I1 を気に入っているが、アイテム I2 を気に入っていない場合、順序関係 I1 >u I2 が存在します。評価マトリックスをパラメーター theta として定義し、最適化する必要があるベイズ モデルを構築します。 u が順序付きペア (I1、I2) を表し、尤度関数を解く式を次のように確立します。ここで、はシグモイド関数です。ここで定義されるベイズモデルは一般的なフレームワークであり、具体的なアルゴリズムモデルの実装は計算方法に依存します。

ベイジアン パーソナライズ ランキングによって最適化されるメトリックは AUC 関数です。ベイジアンパーソナライズドランキング問題では、AUC 関数は次の形式に簡略化されます。

確率的勾配降下法を使用してパラメータを解くと、次のようになります。

これは、アイテム i とアイテム j に対するユーザー u のスコアの差であることがわかります。確率的勾配降下法のプロセスにおけるパラメータ計算方法を取得しました。実際のアプリケーションでは、協調フィルタリングや行列分解などの特定のモデルに置き換えるだけで済みます。これらをそれぞれBPR-CF、BPR-MFなどのコード名で表します。

ここで、行列分解モデルによって計算されると仮定します。つまり = U'V = であり、確率的勾配降下法の式は次のようになります。

同様に、協調フィルタリングに基づく BPR の勾配降下法の式を取得できます。

BPR は 2 つの順序付きペアの関係を計算するため、実際の計算プロセスに含まれるデータの量は非常に大きくなる可能性があります。さらに、評価予測を行う際には膨大な行列演算が必要になります。通常、実際の計算プロセスでは、すべてのデータを使用して計算するのではなく、サンプリングなどの方法を採用して計算量を削減します。

BPR は、推奨システムにおけるペアベースのランキング学習において比較的重要な方法であり、推奨システムのさまざまな実践で広く使用されています。

[[260502]]

ブロックチェーン企業の科学者である王昊氏は、ユタ大学で学士号/修士号を取得し、国際経済貿易大学で実務MBAを取得しています。百度、新浪、網易、豆板などの企業で8年以上の技術研究開発の経験があり、恒昌立通のビッグデータ部門のディレクターを務めてきました。機械学習、データマイニング、コンピューターグラフィックス、科学的視覚化の専門家。 TVCGやASONAMなどの国際会議やジャーナルに10本の論文を発表している。私の学部論文は 2008 IEEE SMI *** 論文賞を受賞しました。

[51CTO オリジナル記事、パートナーサイトに転載する場合は、元の著者とソースを 51CTO.com として明記してください]

<<:  負けても落ち込まないで! Google、ロボット工学プロジェクトを再開

>>:  機械学習における不均衡なクラスに対処するための 5 つの戦略

ブログ    

推薦する

AI戦略に関するCIOの4つの優先事項

テクノロジーリーダーにとって、今は刺激的でもあり、不安でもある時代です。急速に進化するデジタルテクノ...

...

5G時代の人工知能のホットスポットとなる業界はどこでしょうか?

このプロセスでは、多くのアプリケーションが継続的に追加されています。たとえば、コンピュータと通信の統...

5 分で年配の方に機械学習について説明しましょう。説明するのはとても簡単です!

機械学習とは何でしょうか? 機械学習について何も知らない年配の人からこの質問をされたら、どのように答...

...

AI: いつも HD ビデオが欲しいなら、ここにあります

Magnific の画像超解像度および強化ツールはまだテスト中ですが、その強力な画像アップスケーリン...

...

GPT-4 脳を解読する 0 コード!海外のネットユーザーがLLMのガードレールを突破し、AIに段階的に爆弾を作らせる

ネットユーザーが何か新しいものを思いつきました! OpenAI は大規模言語モデルの安全ガードレール...

...

現代の分散ストレージシステムをサポートするアルゴリズム

アプリケーションによって処理されるデータの量が増え続けるにつれて、ストレージの拡張はますます困難にな...

...

農業生産性を最適化するスマート農業監視ソリューション

すべての IoT ソリューションの中で、スマート農業システムは間違いなく際立つでしょう。世界経済の中...

英国の反トラスト規制当局は、低性能のAIシステムの拡散を防ぐためのAI規制原則を策定した。

海外メディアの報道によると、9月19日、英国競争・市場庁(競争・市場庁)は、人工知能の規制当局や同技...

人工知能がファッションデザインと生産を変革

人工知能とロボット工学がファッション業界に変化をもたらしています。市場分析からカスタムデザイン、無駄...

CPUのみを使用して1000FPSで実行できます。これはオープンソースのC++クロスプラットフォーム顔検出プロジェクトです。

さまざまな依存環境によって常に荒廃していますか?コンピューターと携帯電話の両方で実行できる、C++ ...