最近、推薦制度についての紹介文を書いていたのですが、事例や資料はたくさん見つかりましたが、具体的で掘り下げたものではなく、基礎や普及科学として利用できるものは何もなかったと常々感じていました。 , ということで、自分で記事を書いてみることにしました。
定義: レコメンダー システムは、製品またはサービスに対するユーザーの「評価」または「好み」を予測することを目的とした情報フィルタリング システムのサブクラスです。
ここ数年、国内外の大手企業が推薦システムに多額の資金を投資してきました。2009 年、Netflix は、同社のレコメンデーション エンジンの精度を 10% 向上させたアルゴリズムの開発チームに 100 万ドルの報奨金を与えました。
レコメンダー システムには、主にパーソナライズされたシステムと非パーソナライズされた 2 つのタイプがあります。
1. パーソナライズされていないレコメンデーション
非パーソナライズされたレコメンデーション システム (人気ベースのレコメンダーなど) は、トップ 10 の映画、ベストセラーの書籍、最も頻繁に購入される製品など、最も人気のあるアイテムをユーザーに推奨します。
良いお勧めとは何ですか?
- パーソナライズされた (このユーザーに関連する)
- 多様(異なるユーザーの興味を含む)
- ユーザーに同じ商品を二度勧めない人
- 利用可能な製品の 1 つを推奨する
2. パーソナライズされた推奨事項
パーソナライズされた推奨システムは、ユーザー データ、購入、評価、他のユーザーとの関係をより詳細に分析します。このようにして、各ユーザーはカスタマイズされた推奨事項を取得します。
現在、パーソナライズされた推奨システムの最も一般的なタイプは、コンテンツベースのフィルタリングと協調フィルタリングです。
1. コンテンツベース
コンテンツベースのレコメンダー システムは、アイテムまたはユーザーのメタデータを使用して、特定のレコメンデーションを作成します。ユーザーの購入履歴を観察します。たとえば、ユーザーがその著者の本を読んだり、特定のブランドの商品を購入したりした場合、顧客はその著者またはブランドを好み、将来そのブランドの同様の商品を購入する可能性が高いと想定されます。 。Xiaohong は SF が好きで、彼女の好きな作家は Liu Cixin だとします。彼女が劉慈欣の本を読むなら、彼女が勧める本は同じく劉慈欣が書いた SF 本『Crazy Alien』です。
実際には、協調フィルタリングにより、コンテンツベースの方法よりも優れた推奨結果が得られます。おそらく、結果の多様性が協調フィルタリングほど優れていないためです。
コンテンツベースのレコメンデーションの短所:
- フォリクル現象: ユーザーが特定の政治イデオロギーに関する本を読んで、そのイデオロギーに関連する本が勧められた場合、ユーザーは「以前の興味のバブル」に入ります。
- 最適な推奨事項を作成するには、ユーザーとその好みに関する大量のデータを収集する必要がある
- 実際には、アイテムの 20% がユーザーの 70 ~ 80% の注目を集め、アイテムの 70 ~ 80% がユーザーの 20% の注目を集めます。レコメンデーションの目的は、他のユーザーが一見しただけでは分からないような商品を紹介することです。コンテンツベースの方法では、協調フィルタリングではこの目標は達成されません。
2. 協調フィルタリング
協調フィルタリングの考え方はシンプルです。ユーザー グループの動作を使用して他のユーザーに推奨します。推奨は他のユーザーの好みに基づいているため、コラボレーションと呼ばれます。
協調フィルタリングには、メモリベースとモデルベースの 2 つのタイプがあります。
2.1 メモリベース
メモリベースの技術は、前処理なしで生データに適用できます。これらは実装が簡単で、結果として得られる推奨事項の解釈も容易です。毎回、すべての推奨データについて予測が必要です。
ユーザーベースとアイテムベースの協調フィルタリングの 2 つのタイプがあります。
- ユーザーベース: 「あなたと似たユーザーも気に入っています...」 観察されたユーザーと似たユーザーによる購入/いいねに基づいて、製品がユーザーに推奨されます。ユーザーが似ていると言った場合、それは何を意味するのでしょうか? たとえば、シャオミンとシャオホンは SF 本が好きです。新しい SF 本が発売されると、シャオミンはその本を購入します。シャオホンも SF 本が好きなので、シャオミンが買った本をシャオホンに勧めることができます。
- アイテムに基づく: 「この製品を気に入ったユーザーは、次の製品も気に入っています...」 たとえば、Xiaoming、Xiaohong、Xiaohua が SF 本「A Brief History of Time」と「Time Machine」を高く評価し、5 つ星を付けた場合、 Xiaohong が「A Brief History of Time」を購入するとき、システムはユーザーの評価に基づいて類似の書籍を識別するため、「History」という書籍も彼に勧められます。
ユーザー間の類似性、およびアイテム間の類似性を計算するにはどうすればよいですか?
ユーザーやアイテムに関するメタデータを使用するコンテンツベースの方法とは異なり、協調フィルタリングベースの方法では、ユーザーが好きかどうか、アイテムが特定のユーザーによって好きか評価されているかなど、ユーザーの行動を観察して記憶します。
たとえば、新しい SF 小説をジョニーに勧めるというアイデアです。
ステップ:
-
ユーザー項目評価マトリックスの作成
-
ユーザー間の類似性マトリックスを作成します (以下は例です)。
- 2 人のユーザーごとにコサイン類似度を計算します (代替: 調整されたコサイン類似度、ピアソン類似度、スピアマン ランク相関)。これにより、ユーザーとユーザーのマトリックスが得られます。このマトリックスは、初期のユーザー アイテム評価マトリックスよりも小さいです。
- 似たようなユーザーを探す
- ユーザーとユーザーのマトリックスで、Xiao Ming に最も似ているユーザーを観察します。
- 候補者の世代
- ジョニーに最も似ているユーザーを見つけるときは、そのユーザーが読んだ本とその評価を調べます。
- 候補者のスコアリング
- 評価に基づいて、ユーザーは、お気に入りの本から最も嫌いな本まで、Xiao Ming に最も似ているとランク付けされます。
- 結果は正規化されます (0 から 1)。
- 候補のフィルタリング
- ボブがすでに書籍を購入したかどうかを確認しています。それらの本は彼がすでに読んだため削除されるべきです。
アイテムの類似性の計算は、ユーザー間の類似性と同じ方法で行われ、同じ手順になります。
ユーザーベースのアプローチとアイテムベースのアプローチの比較
アイテム間の類似性は、ユーザー間の類似性よりも安定しています。数学の本は常に数学の本ですが、ユーザーは気が変わる可能性があります。たとえば、先週気に入ったものが来週は気に入らない可能性があります。もう1つの利点は、ユーザーよりも製品の数が少ないことです。これにより、類似点を含むアイテム間行列はユーザー間行列よりも小さくなるという結論が得られます。新しいユーザーがサイトにアクセスする場合、ユーザーベースのアプローチが存在しますが、アイテムベースのアプローチもより良いアプローチです。
2.2 モデルベース
これらのモデルは、機械学習アルゴリズムを使用して開発されています。モデルを作成し、それに基づいて推奨候補を提供することで、システムの動作を高速化します。この方法の方がスケーラビリティが優れています。このアプローチでは次元削減がよく使用され、最も有名なスキームは行列分解です。
行列分解
ユーザーからのフィードバックがある場合、たとえば、ユーザーが特定の映画を観たり、特定の本を読んで評価を付けたりした場合、各行が特定のユーザーを表し、各列が特定のアイテムを表す行列の形式で表すことができます。 。ユーザーがすべての項目を評価することはほとんど不可能であるため、このマトリックスには未入力の値が多数含まれることになり、これをスパース性と呼びます。行列因数分解法は、一連の潜在的な要因を見つけ、これらの要因を使用してユーザーの好みを決定するために使用されます。潜在情報はユーザーの行動を分析することで評価でき、潜在要素は特徴とも呼ばれます。
なぜそれを壊すのでしょうか?
評価マトリックスは、アイテム特徴マトリックスとユーザー特徴マトリックスという 2 つの小さなマトリックスの積です。
行列分解の手順:
-
ランダムなユーザーとアイテムのマトリックスの初期化
-
評価行列は、転置された項目行列にユーザーを乗算して取得されます
-
行列因数分解の目標は、損失関数を最小限に抑えることです (予測行列と実際の行列の間の評価の差は最小限でなければなりません)。各評価は、ユーザー マトリックスの行とアイテム マトリックスの列のドット積として説明できます。
其中 K 是一组 (u,i) 对,r(u,i) 是用户 uItem项目 i 的评分,λ 是正则化项(用于避免过度拟合)。
- 損失関数を最小限に抑えるために、確率的勾配降下法 (SGD) または交互最小二乗法 (ALS) を適用できます。どちらの方法も、新しい評価が利用可能になったときにモデルを段階的に更新するために使用できます。SGD は ALS よりも高速かつ正確です。
3. 混合推奨
ハイブリッド推奨事項は、さまざまな推奨事項の組み合わせを表します。一般に、複数の異なるレコメンダーを組み合わせた方が、単一のアルゴリズムよりも優れた結果が得られます。実際、ほとんどの企業はハイブリッド レコメンデーションを使用しています。
4. 推奨されるシステムインジケーター
どの指標が使用されるかは、対処するビジネス指標によって異なります。最良の推奨事項を作成し、指標も良好であると考えているが、実際にはそれが理想から程遠い場合、その推奨事項は最適ではありません。最も重要なことは、ユーザーがレコメンド システムを信頼し、レコメンド システムの結果を利用することです。最初の 10 個の製品をユーザーに推奨し、関連する製品が 2 つか 3 つだけだった場合、ユーザーはレコメンダー システムが悪いと考えるでしょう。このため、必ずしも上位 10 項目を推奨するのではなく、一定の基準を超える項目を推奨するという考えです。
索引:
-
精度(MAE、RMSE)
-
上位 N 人の推奨者を測定します。
- ヒット率: まず、トレーニング データのユーザー履歴にあるすべてのアイテムを検索します。そのうちの 1 つを削除します (相互検証)。すべてのアイテムをレコメンダーとして使用し、最初の 10 個の推奨事項を見つけます。アイテムが最初の 10 個の推奨事項に表示される場合は、それは成功です。そうでない場合、それは理想的ではありません。
- 平均相互ヒット率 (ARHR) : ユーザーがランキングで上位にランクするアイテムは、ランクが低いアイテムよりも多く推奨されます。
- 累積ヒット率: 特定のしきい値を下回るスコアは拒否されます (例: 4 未満のスコア)
- 評価ヒット率- 各項目の評価を計算して、どの評価がより多くクリックされるかを決定します。上位 N リストの各評価のヒット数を加算し、上位 N リストの各評価のアイテムの総数で割ります。
-
オンライン A/B テスト: A/B テストは、オンラインでレコメンダー システムを評価する最良の方法です。
レコメンダシステムの実用化における課題
-
コールド スタートの問題: 新規ユーザーが出現しました。何を推奨しますか?
-
例: 売れ筋トップ 10 製品
-
販促品トップ 10
-
ユーザーにインタビューして自分の好みを知ることができる
-
-
新しいユーザーの出現により、新製品はユーザーにどのように認識されるのでしょうか?
-
コンテンツベースの属性を使用する
-
ユーザーの推奨事項に新しい製品をランダムに追加します
-
新製品の宣伝
-
-
行動的興奮
- ユーザーは時間の経過とともに行動を変えるため、推奨アイテムの上位 N リストを更新するには、レコメンダー システムにある程度のランダム化を含める必要があります。
-
いかなる形でもユーザーを差別しないように注意してください
-
強い言葉、宗教的、政治的な話題、薬物を含む商品の推奨は避けてください。