推奨システムでよく使用される推奨アルゴリズム

推奨システムでよく使用される推奨アルゴリズム

[[172692]]
1. 推奨システムと共通評価指標の概要

1.1 推薦システムの特徴

私は Zhihu で推奨システムを検索しましたが、確かに結果は比較的少なく、ニッチなトピックのようでした。推奨システムに関する人々の一般的な意見は次のとおりです。

(1)重要性 UI>データ>アルゴリズム、つまり、推奨システムで盲目的に高度なアルゴリズムを追求するのは誤解です。通常、研究論文の推奨方法の中には、多くの仮定と制限があるものもありますが、エンジニアリング実装の問題をあまり考慮していないものもあります。推奨システムは、多くのデータの収集と変換を必要とします。同時に、企業のビジネス特性と既存システムとの統合を考慮して、推奨システムとビジネスの間に好循環を形成する必要もあります。

(2)レコメンデーションシステムはオフラインテストは良好だが、オンライン化後は厳密なテスト結果がなく感覚に頼るしかなく、実際の効果も不十分である。これは主にオフラインテストの方が理想的であるのに対し、オンラインABチャンピオンテストはフロントエンドとバックエンドの両方に非常に高い要件があり、強力な研究開発能力がなければ実現が難しいためだと考えられる。

(3)推薦システムは多くの外部干渉要因(季節、人気要因など)の影響を受け、システム全体を継続的に反復して更新する必要があります。一度きりの解決策というものは存在しません。

1.2 推薦システムの評価指標

推奨システムは比較的複雑なため、多くの評価指標が関係します。もちろん、ユーザー満足度は推奨システムの最終的な目標であるため、最も効果的ですが、リソースが限られており、コストが高すぎるため、推奨システムは他の客観的な評価指標にも依存します。

(1)推奨精度:このパラメータはオフラインで計算でき、比較的客観的であるため、主要な研究論文ではアルゴリズムの最も重要な参照指標となっている。

一般的に、推奨システムには「予測」と「推奨」という 2 つの主要なタスクがあるため、推奨システムの精度スコアには次のものが含まれます。

評価予測: ユーザーの評価モデルを学習することで、ユーザーがまだ触れていないものに対するユーザーの評価を予測します。実際には、これは回帰モデルと見なすことができ、一般的には二乗平均平方根誤差または絶対誤差によって測定されます。

TopN 推奨: ユーザーにパーソナライズされた推奨リストを提供します。これは通常、精度や再現率などの指標によって評価されます。 N も可変パラメータであり、異なる N に応じて対応するアルゴリズムの ROC 曲線を描き、推奨効果をさらに評価することができます。

(2)カバレッジ:マイニングアルゴリズムのロングテール製品を発見する能力を反映します。最も単純な定義は、ユーザーが推奨するすべての製品の和集合を取り、この和集合が製品の総数に占める割合を見ることです。この方法は比較的大まかです。マシュー効果は推奨システムで頻繁に発生するため、優れた推奨アルゴリズムでは、すべての製品が推奨される確率が同等で、適切なユーザーを見つけられるようにする必要があります。そのため、実際には情報エントロピーやジニ係数などの指標が考慮されます。

(3)多様性:この原則は、一つの木に命を懸けないこととして表現することができます。推奨システム全体には多くの要素が関係しているため、1 つのカテゴリの類似アイテムのみをユーザーに推奨すると、失敗するリスクが比較的高くなり、推奨全体の有効性を最大化することが困難になります。

(4)新規性:ユーザーがこれまで接触したり操作したことのない製品や、あまり知られていない製品は、ユーザーにとって比較的新しく、予期しない効果をもたらすことが多いという原則です。個人的にこの指標はちょっとおかしいと思うよ~~

(5)信頼:この指標は比較的主観的なものであり、推奨システムによる推奨が事実と理由に基づいていること、また推奨システムが内部的にどのように機能しているかをユーザーに信頼させることを目的としています。たとえば、Amazon の商品のおすすめにはおすすめの理由が示されますが、これはユーザーとしては非常に配慮のあることだと私は思います。そうでなければ、ユーザーは販売者が利益を優先していると感じ、抵抗感を抱くでしょう。

(6)堅牢性:例えば、関連する推奨アルゴリズムの場合、商人が商品の推奨頻度を高めるために悪意を持って注文したり、インターネット荒らしが悪意のあるコメントを投稿したりする可能性がある。

2. 静的データの推奨

基本的に、ほとんどのアルゴリズムは、ユーザーと製品のインタラクション データを使用して、パーソナライズされた推奨事項を動的に生成します。静的データとは、ユーザー インタラクション データが生成される前の期間を指します。これは、システムがコールド スタートされたときに特によく使用されます。よく使用される静的データには、次のものがあります。

(1)登録時のユーザーの性別、年齢、地域、教育水準、興味などの人口統計情報。

(2)認可されたソーシャルネットワークアカウントの友達情報

このタイプの推薦ベースの方法は簡単です。各タイプのユーザーにプッシュコンテンツを事前に設定したり、類似ユーザー間でコンテンツをプッシュしたりできます。ただし、この方法は、推薦の粒度が大きいという問題に直面しています。個人の好みや趣味に関連する高度にパーソナライズされた製品の場合、参照価値が限られています。同時に、人々のプライバシー意識が高まるにつれて、このタイプのデータは簡単に入手できなくなる可能性があります。2番目のタイプのソーシャルネットワークの友人情報は、より良い効果をもたらしますが、対応するプラットフォームの承認アクセスも必要です。

これにより、新規ユーザーと新製品にコールド スタートの問題が発生します。

新規ユーザー: 人気商品をプッシュします。粗粒度のプッシュに上記の人口統計情報を使用することを選択します。パートナーデータを取得できる場合は、その友人情報を取得し、UserCF 推奨用に親しい友人を選択します。ユーザーにいくつかの商品 (人気があり、代表的で特徴的で、多様な商品) を表示し、ユーザーからのフィードバックを得て、学習します (Nadav Golbandi アルゴリズム)。

新しく追加された製品: UserCF は、新しく追加されたアイテムのコールドスタートにはあまり敏感ではありません。ユーザーがこの新しい製品を発見する限り、新しい製品は徐々に広まっていくからです。 ItemCF の場合、問題はさらに深刻です。たとえば、コンテンツベースの推奨から始めて、一定量のデータが蓄積されたら協調フィルタリングの推奨に切り替えることを検討できます。

3. コンテンツベースの推奨

主にユーザーの過去の好みに基づいて類似アイテムを推奨します。このシステムは、ユーザー属性と製品属性の 2 つの側面から構成されています。前者には、ユーザーの固有の属性 (人口統計情報など) と、ユーザーの過去の製品インタラクション情報 (視聴した映画の評価、お気に入りの映画に関するユーザーの属性説明の取得など) が含まれます。後者は製品自体の属性の説明であり、単純なコサイン類似度によって推奨を実現できます。同時に、このアルゴリズムは、同様の説明ディメンションを持つ同じタイプのアイテムに対してはより効果的に機能すると思われますが、さまざまな電子商取引製品に対してはうまく機能しない可能性があります。

この方法が解決しようとしている中心的な問題は、推奨がスケーラブルであるかどうかです。ユーザーの過去の好みに基づいて類似の製品のみを推奨する場合、推奨システム全体の価値は非常に限られます。ただし、他の異なるカテゴリの製品を正確に推奨できれば素晴らしいでしょう。

Pandora の音楽推奨は、典型的なコンテンツベースの推奨システムです。さまざまな次元の属性を使用して音楽を説明し、ユーザーの過去の興味や趣味に基づいて、同様の属性とスタイルの音楽を推奨します。

4. 協調フィルタリングアルゴリズム

協調フィルタリング アルゴリズムは、推奨システムで最も古典的なアルゴリズムであり、ドメイン ベース アルゴリズムとも呼ばれます。協調フィルタリングには、ユーザーと製品間の相互作用、つまりユーザーの行動が関係します。一般的に、ユーザーは製品の動作に関して次のようなフィードバックを提供します。

明示的なフィードバック動作 - ユーザーが製品に対する好みを、ユーザー評価や製品に対するコメントなどによって明確に表現します。

暗黙的なフィードバック動作 - ページ閲覧動作など、製品に対するユーザーの好みを明確に表すことができない動作。このタイプのデータは比較的大きく、大量のノイズを伴うことが多く、実際に使用するには処理および変換する必要があります。

4.1 ユーザーベース協調フィルタリングアルゴリズム(UserCF)

これは、類似のアイテムを好むユーザーは、同じまたは類似の趣味や嗜好を持っている可能性が高いという仮定に基づいています。 UserCF を実装する手順は次のとおりです。

(1)ターゲットユーザーと興味が似ているユーザーグループを見つける

ユーザーuとvの肯定的なフィードバックの積集合がN(u)とN(v)であると仮定すると、彼らの興味の類似性は次のように記録できる。

(2)このコレクションの中で、ユーザーが気に入っているが対象ユーザーが聞いたことのない商品を見つけて推奨する。

UserCF が提供するパラメータ K は、対象ユーザーと興味が最も似ている人の数を表します。精度を確保しながらも、K が大きすぎると、推奨結果が人気商品になりがちになり、人気指数とカバレッジ指数が低下します。

4.2 コンテンツベースの協調フィルタリングアルゴリズム(ItemCF)

現在最も広く使用されている推奨アルゴリズムは、商品自体ではなく、商品に対するユーザーの行動を通じて商品間の類似性を計算します。ユーザーの興味を喚起できる商品は、以前に高く評価された商品と類似しているはずだと想定しています。 ItemCF の操作手順は次のとおりです。

(1)製品間の類似度を計算する。

アイテムの類似性は次のように表現できます(実際に以前のサポートと類似)

2 番目の式は、過熱した製品 j にペナルティを課すことができる点で、最初の式よりも優れています。

(2)商品の類似性とユーザーの過去の行動に基づいてユーザーへの推奨リストを生成する。

4.3 モデルベース協調フィルタリングアルゴリズム

ユーザー CF とアイテム CF は総称してメモリベース CF と呼ばれますが、モデルベース CF は一般的な機械学習手法を使用してサンプルのユーザー嗜好情報に基づいて推奨モデルをトレーニングし、その後、リアルタイムのユーザー嗜好情報に基づいて推奨を予測および計算します。

一般的に使用されるモデルには、LSI、ベイジアン ネットワークなどがあります。

4.4 UserCFとItemCFの比較

現実世界では、アイテムの数はユーザー数よりはるかに少ないことが多く、アイテムの数と類似度は比較的安定しています。最も作業負荷が大きい類似度計算ステップはオフラインで完了できるため、オンライン計算量が大幅に削減され、ユーザーベースのリアルタイムパフォーマンスが向上します。ただし、具体的な使用シナリオは、具体的なビジネス タイプに応じて区別する必要があります。User-CF は、少数のユーザーのホット スポットを反映することに重点を置いており、よりソーシャルですが、Item-CF は、次のようなユーザーの履歴的な関心を維持することを目的としています。

ニュースや読書のレコメンデーションは、ニュースや読書の情報がリアルタイムで更新されるため、この場合、ItemCF を継続的に更新する必要があります。ただし、ニュースに対するユーザーパーソナライズされたレコメンデーションは特に強力ではなく、ユーザーの新しい行動が類似ユーザーの劇的な動きにつながることはありません。

電子商取引の場合、ユーザーの消費コストが比較的高いため、パーソナライゼーションの精度も比較的高くなければなりません。ユーザーが新しい行動をとれば、推奨コンテンツもリアルタイムで変化します。

協調フィルタリングのアルゴリズムの欠点も明らかです。前述のコールドスタートに加えて、マーチャントはユーザーと製品の数が多いことが多いため、行列計算の量は非常に大きくなりますが、特定のユーザーは限られたものを購入することが多いため、データも非常にスパースです。

5. タグベースの推奨方法

タグベースの推奨アルゴリズムも、Douban や JD.com の製品レビューなど、非常に一般的です。タグ情報は、一般的に、専門家や学者が付与するタグと、一般ユーザーが商品に付与するタグ(UGC、ユーザー生成コンテンツ)の2つに分けられます。タグの内容は通常、名前、カテゴリ、産地など商品自体を説明するものか、安い、使いやすい、性能が良いなど商品に対するユーザーの意見や評価のいずれかです。トリプル(ユーザー、アイテム、タグ)は、タグを介してユーザーとアイテムを結び付けます。

タグベースの推奨の最も単純な例は、ユーザーの最もよく使用されるタグをカウントし、各アイテムの最もよく使用されるタグをカウントし、特定の関係に基づいて 2 つを推奨することです。もちろん、タグ クラウドを表示して、ユーザーが興味のあるタグをクリックできるようにし、これに基づいてパーソナライズされた推奨を行うこともできます。

JD.com、Taobao、Doubanなどの国内企業は、いずれもタグ情報を広範に使用しています。

ラベルに対するユーザーの評価は主観性が高いため、一方では、同じ意味であってもユーザーが異なる用語を使用することがあるため、標準化を検討することができます。ユーザーが評価する際に共通のラベルを提供し、ユーザーがクリックして入力の違いを減らすことができ、推奨ラベルにはアイテムをより説明するラベルとユーザーがよく使用するラベルが含まれます(ユーザーの一貫性)。ラベルを手動または自然言語処理技術で整理し、肯定的なユーザー評価と否定的なユーザー評価を区別します。ラベルにはロングテール分布効果もあるため、人気のあるラベルに加えて、差別化された有用なラベルをどのように抽出してより正確な推奨を行うかも検討すべきトピックです(カイ2乗分布/SVD)。

<<:  自然言語処理がヒラリーとトランプの「話し方」を分析

>>:  データ構造の8つの一般的なソートアルゴリズム

ブログ    

推薦する

FlashAttention v2 は標準の Attention より 5 ~ 9 倍高速です。大規模なモデルで使用されます。

最近、GPT-4(コンテキスト長32k)、MosaicMLのMPT(コンテキスト長65k)、Anth...

AdobeなどがAIを活用しアニメキャラクターのポーズ移行を実現する新タイプの「パペットアニメーション」を提案

人形アニメーションの制作は、クリエイターの手描きに頼るアニメーションと比べると、非常に手間のかかる作...

Stable Diffusion で 1 秒で写真を作成しましょう。清華大学マスターアクセラレーターはホットなトレンドで、いくつかの企業が参加している

AI画像生成は秒単位のスピードに達しました。描画を完了するには4ステップの推論しかかからず、最速では...

...

[ディープラーニングシリーズ] PaddlePaddle と Tensorflow を使用したクラシック CNN ネットワーク Vgg の実装

先週は、古典的な CNN ネットワーク AlexNet が画像分類に与える影響についてお話ししました...

人工知能やモノのインターネットから仮想現実やブロックチェーンまで、将来の技術進歩の大部分はクラウドで起こるだろう。

今では、ほとんどの企業リーダーがクラウド コンピューティングの価値を理解しています。すでに多くの人が...

AR/AIバーチャル試着室は社会的距離の確保対策への対応

COVID-19 は小売業界に大きな混乱をもたらしましたが、新しいテクノロジーはこれまで以上に重要な...

シンプルでスマートなアプローチ: Python による顔認識

この記事は、公開アカウント「Reading the Core」(ID: AI_Discovery)か...

...

...

機械学習の変革: 多分野にわたる問題に立ち向かい、新しい機械学習エコシステムを構築する

機械学習の手法は、生命、物理学、社会経済などの複雑なシステムにますます応用されています。特定のタスク...

[ディープラーニングシリーズ] PaddlePaddleとTensorflowでGoogLeNet InceptionV2/V3/V4を実装する

前回の記事では、GoogLeNet InceptionV1のネットワーク構造を紹介しました。この記事...

顔認識技術はスマート建設現場やスマートコミュニティにどのようなメリットをもたらすのでしょうか?

スマートシティ、スマートコミュニティ、スマート交通は絶えず推進され、普及しており、ユーザーの使用習慣...

分散システム設計のための負荷分散アルゴリズム

概要分散システムの設計では、通常、サービスはクラスターに展開されます。クラスター内の複数のノードが同...

機械学習の本質は数理統計学ですか?答えはそれほど単純ではないかもしれない

AI 初心者の多くは、次のような同様の疑問を抱いているかもしれません。機械学習と数理統計の本質的な違...