レコメンデーションシステムの概要 - 「レコメンデーションシステムの原則と実践」の注意事項を読む

仮想問題バンクの開発プロセスから始めて、レコメンドシステムの共通モデル、基本的な方法、および共通の問題を理解します。

全文構造

  1. 序文
    1. 学習問題
  2. 文章
    1. 体系的な開発プロセス
    2. レコメンデーション モデルの概要
    3. よくある問題
  3. 参考

序文

以前のバージョンの経験、問題バンクの問題を磨くための小さなプログラム (要件完了、保留中) と「Microsoft Vanke Practice Camp」のトレーニング経験を組み合わせて、今後の会社のビジネスは間違いなく推奨システムを使用すると思います。 、特に「質問バンク」。したがって、関連する知識を学ぶためにこの本を選んでください。しばらく研究した結果、ここで共有するのが待ちきれません. レコメンデーション システムについて学ぶためのリファレンスを提供するだけでなく、バ​​ージョンの品質と開発効率を数学を通じて改善する方法についてのアイデアを提供できることを願っています.開発プロセス。

この本の一部が読まれました (概要、近隣協調フィルタリング、後続の章を閲覧するための断片的な読書)。私の個人的な感覚では、数学が苦手な学生は、推奨されるアルゴリズムの分類、使用方法と最適化方法、達成可能な効果など、関連する概念を読んで理解することを選択できます。大学で一定の数学的基礎を持っている学生は、最初に読むことができます.コードはなく、テキストの説明と少量の数式の導出のみです.大学が一定の数学的基礎を持っている限り、アイデアに従ってください.本書を読んで簡単なものから複雑なものまで、関連する公式を導き出すと、理解できます。しかし、学部レベルで十分に学習されていない、または触れられていない数学の知識が存在することは依然として避けられません. 私の大学の先生と連絡を取った後、興味のある学生は他の本を一緒に読むことをお勧めします—高等数学、確率論、線形代数、行列解析、確率解析。

この本にはコード関連の内容は一切含まれていないため、R&D 以外の学生でもある程度の数学的基礎を持っていれば読むことができます。そして個人的には、以下の図に示すように、さまざまなレコメンデーション アルゴリズム (レコメンデーション モデル) を導入するという考え方は、私が大学時代に数理モデリングを行っていたプロセスと非常に似ていると感じています。問題の単純化と抽象化 - 実際のニーズに応じて、オブジェクトの特性の数学的表現を抽象化します; モデル構築 - コアの問題から最も基本的なモデルを構築します; 反復モデル - 継続的に新しい問題(仮説)を提起し、それらを1つずつ解決します(調整モデル) 、テスト; 最終的なモデルを取得し、それを練習に適用します。

学習問題

公式に共有する前に、学習プロセス中に遭遇して解決したいくつかの問題を提起したいと思います.

この本は難解すぎて、数学が得意でない学部生の私には理解できないと思います。

この本を読む前に、私はこの疑問を持っていました。第 3 章を読み、それ以降の章に目を通すと、この疑念は根拠のないものであることがわかりました。この本の素晴らしい点は、レコメンダー システムの知識を深く詳細に説明しているにもかかわらず、段階的に説明されていることです。大学数学を落第した人でも、少なくとも最初の章の最初の数節とその後の各章は理解できると思います。そして、数学が得意な人は、それを見ると、より心のこもった気持ちになるでしょう. なぜなら、それは、ほとんど最も単純な数学的モデルから始まり、徐々に新しい質問をし、より複雑な式を与えていく.繰り返し改善 - このプロセスは数学的モデリングに非常に似ています。

そこには数学的原理があり、用語が理解できないのですが、どうすればよいですか?

学習の過程で、多くの問題にも遭遇しました。幸いなことに、今でも連絡を取り合っている大学の先生がいます。彼はもともとコミュニケーションのバックグラウンドを持っており、数学を深く理解しています。彼の提案は、確率論と行列解析勉強しなければならないということです. この本で遭遇する問題の多くは、実際にはこれら2つのコースの内容です. 優先順位があるため、これら 2 つのコースの学習を個人的に手配したわけではありません。そのため、さらに学習することに関心のある学生の参考になるように、ここに置いておきます。

文章

体系的な開発プロセス

次のプロセスはすべて仮定であり、まだ実装されていません. 目的は、レコメンデーション システムのいくつかの基本モデルを理解するのに役立つことだけです.

多数の問題を集めた問題バンクがあります。今後は、学生がクイズできるクイズ製品を作りたいと考えています。この時、最初の問題が発生しました。

知識ベースのレコメンデーション モデル

さまざまな歴史的理由により、現在のシステムの履歴データは不十分ですが、推薦システムが学生に効果的な推薦を行えるようになることが望まれます。このタイプの問題は、コールドスタート問題と呼ばれます。この時点で、学生は自分が取得したい問題をシステム (問題の種類、主題、テスト問題のソース、キーワード タグなど) に明確に記述し、学生が必要とするトピックを検索して、学生に推奨することができます。学生。

現在、このシステムはナレッジベースのレコメンデーション システムと呼ばれています。知識ベースのレコメンデーション システムの主な機能は、ユーザーから与えられた明確なニーズに基づいてレコメンデーションを行うことです。つまり、レコメンデーション結果 = 学生の要件 + トピックの特徴 + ナレッジ ベース (事前定義されたルール; 類似関数)。

さらなる抽象化、つまり、推奨結果 = ユーザー要件 + アイテム属性 + ドメイン知識.

項目ベースの近傍協調フィルタリング モデル

現在、質問をブラッシングするために小さなプログラムを使用している人もいますが、かなり長い間使用しています。使っている生徒は少ないかもしれませんが、一人一人の生徒が非常に粘着性があり、非常に頻繁に使用しているため、回答記録、検索記録、質問コメントなどの行動記録がたくさんあります。現時点では、学生は異なる時期に異なる質問のニーズを持っている可能性があることを理解しています. したがって、現時点では、私たちは得ることができます 最近の期間に、彼は特定の特徴を持つトピックに注意を払った可能性があります-キーワード、主題、情報源試験問題(模擬試験?高校入試?合同テスト?)、問題種類など・・・プラスまた、質問をスキップする操作、このとき、特定の特徴を持つ質問は不要であることがわかり、これがマイナス

特定のトピックに関するユーザーの肯定的および否定的なコメントを取得した後、ユーザーが特定の特性 (属性) を持つトピックを最近より必要としていると分析し、システムがトピックを好みに近づけるようにして、ユーザーが期待するトピックを取得できるようにします。より効率的に。

この時点でのレコメンド結果=ユーザー評価+アイテム属性となります

ユーザーベースの近隣協調フィルタリング モデル

現在、質問を磨くためのミニプログラムの基本機能は完成しつつあり、いくつかの運用活動を経て、多数のユーザーが蓄積されています。このとき、トピックに対する多くのユーザーの評価があるだけでなく、各ユーザーはシステム内で自分に似たユーザーを見つけることができます (たとえば、トピックの嗜好ラベルが非常に類似している、または同じであるなど)。このとき、特定のユーザーに似た他のユーザーを簡単に見つけることができます。

トピック t を行った生徒 A と、トピック t を行っていない生徒 B がいるとします。生徒 B は生徒 A に似ているため、生徒 B もトピック t に興味があると考えて、トピック t を生徒 B にプッシュします。このモデルは、ユーザー ベースの協調フィルタリング レコメンデーション モデルと呼ばれ、現時点では、レコメンデーションの結果 = ユーザーの評価 + コミュニティの評価 となります

  1. 念のため、分類とクラスタリングは異なることに注意してください。「分類」は、データを特定のルールに従って既知のタイプに分割します.「クラスタリング」は、データセット内で互いに類似しているデータをクラスター化します.このとき、各クラスター内のデータは互いに類似しています(類似性に焦点を当てます). .
  2. ここでは、コンテンツ ベースのレコメンデーション システムを提案しませんでしたが、アイテム ベースの協調フィルタリング モデルは、コンテンツ ベースのモデルに似ています。前者は異なる項目の属性タグ(問題の種類、難易度など)の類似性に着目し、後者は異なる項目の内容(質問の語幹や解答など)の類似性に着目する、というのが個人的な理解です。つまり、後者の基本は、特徴抽出とクラスタリング アルゴリズムに基づいて類似アイテムをクラスタ化することです。
  3. 実際、レコメンデーション システムは複数のモデルで構成されていることが多く、ハイブリッド統合レコメンデーション システムと呼ばれています。

レコメンデーション モデルの概要

継続的な学習と改善。
写真

よくある問題

各問題の具体的な解決策は複雑であり、本では特​​別に紹介されていますが、ここで言及されているのは、今後の研究と実践においてこれらの問題の存在にできるだけ注意を払うことができるように、すべての人の参考になるようにするためです。 .

コールドスタート

システム運用開始当初はデータが不足し、有効なレコメンド結果が得られないことがあり、これをコールドスタート問題と呼んでいます。したがって、システム操作の開始時に、コールド スタートの問題の影響を受けにくいモデルを選択すると、効果的な推奨事項を迅速に提供できます (知識ベースの推奨モデルなど)。

サプライズ

特定のモデルと特定の戦略を通じて、学生 A が力学の問題を行うのが好きであると判断され、フォローアップの推奨結果がすべて力学の問題である場合、システムの精度 (Precision) は高くなりますが、P が高すぎる場合があります。値は良いことではないかもしれません。この時点で、N 個の光学的質問を含む M 個の結果に間違ったレコメンデーションがあった場合、ユーザーはこれらの質問をスキップせずに回答を続け、さらには収集操作 (肯定的な評価) を生成します。次に、このシステムにはある程度の驚き (N/M) があると考えてください。

アンチアタック

レコメンダー システムが遭遇する可能性のある攻撃動作の 1 つは、大量の無用なレビューをシステムに挿入することです. たとえば、タオバオでは、マーチャントが別のマーチャントの製品に多数の否定的なレビューを挿入したり、多数の肯定的なレビューをシステムに挿入したりします.自社製品。上記の近隣モデルでは、この攻撃がレコメンド結果の妥当性と正当なユーザーのエクスペリエンスの品質に直接影響を与えると考えられます。もちろん、攻撃に抵抗したり、モデルの堅牢性を向上させたりするための戦略もありますが、これらはより複雑であり、本にも記載されています。

プライベートな問題

セクションの紹介 近隣ベースの協調フィルタリング モデルでは、ユーザーの行動が記録され、アイテムに対するユーザーの肯定的または否定的な評価として見なされることがわかります。実際、近隣の協調フィルタリング モデルだけでなく、他のモデルでも同様です。レコメンドシステムでは、ユーザーの行動を可能な限り記録する必要があり、分析結果にはユーザーの個人的な好みや意見など、機密性の高い情報が含まれる場合があります。

モデルに関係する可能性のあるプライバシーとセキュリティの問題については、技術的なアーキテクチャ、ポリシー、および規制の観点から解決できるだけでなく、プライバシーを保護するために特別に使用されるいくつかのアルゴリズムも解決できます。たとえば、データが収集されると、分散プロトコル摂動技術によってデータ漏洩のリスクを軽減できます。データが解放されると、 k-匿名性、凝縮、および t-近接モデルなどの方法を使用してデータ記録に干渉できます。 、攻撃者がデータレコードを他の公開データと組み合わせることができないようにします。

参考

  1. Charu C.Aggarwal Li Lingli 他による翻訳. Recommender System: Principles and Practice[M]. 北京: Machinery Industry Press, 発行年: 開始ページ番号と終了ページ番号.
  2. Zhihu - 「入門から入門までのレコメンドシステム」

おすすめ

転載: blog.csdn.net/qq_23937195/article/details/103804716