動的推奨システム


14

A 推薦システムは彼に興味のある項目について、特定のユーザーのために、異なるユーザーの評価及び降伏勧告との相関関係を測定します。

ただし、好みは時間とともに変化するため、古い評価現在の好みを反映していない可能性があります。かつて「嫌ではない」などと評価する本に「優秀」を付けたことがあるかもしれません。さらに、利益自体も変わります。

推奨システムは変化する環境でどのように機能する必要がありますか?

  1. 1つのオプションは、「古い」評価を切り捨てることです。これは、「古い」を正しく定義していればうまく機能する場合があります(評価が期限切れにならず、問題が存在しないふりをすることさえできます)。しかし、それは最良の選択肢ではありません。もちろん味は進化し、通常の生活の流れであり、かつて正しい過去の評価の余分な知識を使用できない理由はありません。
  2. 別のオプションは、何らかの方法でこの追加の知識に対応することです。したがって、現在の興味に合った「インスタントマッチ」を見つけることはできませんでしたが、次に好む可能性のあるもの(好む可能性のあるものとは対照的に)を提案します。

これを十分に説明しているかどうかはわかりません。基本的に2番目のアプローチに賛成し、味の軌跡の相関を測定し、それに対応する推奨事項を生成する推奨システムについて話します。まあ、それを個人的な成長と呼びましょう-彼らは「テイストの軌跡」(「テイストのスナップショット」だけでなく)はあなたのものに似ています。

ここで質問です。「オプション2」に似たものが既に存在するかどうか、もし存在する場合、どのように機能するのか疑問に思います。そして、それが存在しない場合は、どのように機能するかを議論することを歓迎します!:)

回答:


8

Yehuda Koren(Netflix Contest!)による「時間的ダイナミクスを使用した共同フィルタリング」という論文をお勧めします。この問題について詳しく説明します。

著者に同意します。最初のオプション(「カットオフ」)は進むべき道ではありません。確かに、古い設定はそのように無視されますが、a)一部の設定は変更されないため、常緑樹を識別するためにデータを削除し、b)未来の設定を理解するには過去の設定が必要です(たとえば、シーズン1を購入する->シーズン2を購入する可能性があります。

ただし、Korenはそのような軌道を明示的に特定しようとはしていません(つまり、ユーザーの将来の変化行動を予測できるようにするため)。これは非常に難しい作業です。軌道に沿った好みの「ステーション」は時間に拘束されるのではなく、ユーザーの個人的な発達に依存し、他の軌道に割り込まれたり交差したり、単に異なる方法で表現されたりすることを念頭に置いてこれを想像できます。たとえば、ハードアクション映画からアクション映画に移行する場合、明確な「エントリーソフトアクション映画」などのようなものはありません。ユーザーはいつでも(時間とアイテムスペースで)このエリアに入ることができます。この問題とデータの疎さにより、ここで実行可能なモデルを作成することはほとんど不可能になります。

代わりに、Korenは評価予測の有効性を高めるために、過去のデータを長期パターン信号と毎日のノイズに分離しようとします。彼はこのアプローチをSVDと単純な共同neigborboodモデルの両方に適用します。残念ながら、私はまだ数学を終えていないので、これに関する詳細を提供することはできません。

軌跡の明示的なモデリングに関する追加の注意

シーケンスマイニングの領域は、実行する方法を提供しますが、重要な点は、アイテムの適切な抽象表現を見つけることです(アイテム自体を使用すると、スパースのため機能しないため)。たとえば、タグへのクラスタリング。ただし、このアプローチは一部のユーザーの動作に関するいくつかの洞察を提供しますが(データマイニング!)、すべての顧客(つまり、大衆)に対するアプリケーションに関しては関連しない場合があるため、Korenが示唆する暗黙のモデリングは最後に良い。


イェフダの論文は私が話していたものに非常に近いが、実際、彼は「味の軌跡」については話していない。おそらくあなたは正しいですし、「味の変化率」は誰に対しても固定されていません。.リンクをありがとう!
アンドレイスター

ええ、これは私が最初に考えたものです。
スタンピージョーピート

2

私は動作しているシステムを知りませんが、Amazon、NetFlix、または誰かがそのようなシステムを持っているとしても驚かないでしょう。Google検索エンジンでさえ、同様のタイプのシステムを持つ場合があります。

私はこれについて、前学期の博士博士のコースを受講中に考えました。私が最初に最適だと思ったアプローチは、年齢に基づいて重み係数を追加することです。データが最新であるほど、重みが大きくなります。このアプローチは、比較的単純であり、実装するのに計算コストがかかりません。

しかし、このアプローチをより慎重に考えた後、多くのアプリケーションに重大な欠陥があると思います。個人的には、しばらくの間、ジャンルやショーをたどり、疲れて、他の何かに移りますが、後で元のジャンルに戻ります。この燃え尽き、再燃のサイクルは、社会にも見られます。

したがって、私は少し複雑なシステムに傾倒しています。データは2つのセットに分割する必要があります。現在のデータ-しきい値は、アプリケーションと個人の対話の長さに応じて変化する必要があります-より重く重み付けされ、「履歴」データは、時間の経過とともに値が緩やかに低下して低く評価されます。第二に、大きな関心や関与が突然消える「ターンオフ」を検出しようとする要因が含まれます。同様に分類される「現在の」データは、あたかも歴史的であるかのように再分類されます。

このアプローチには厳密性や検証はありませんが、仮説のいくつかの試験を構築する価値があると思います。


古いデータの重みを低くするという考えは、実際には「オプション1」に似ています。代わりに、味の変化の軌跡全体が重要であると言っています。つまり、昨日はジャンルAが好きで、今日はジャンルBが好きなら、システムは同じ「AB- ??」を持つ他の人を見るでしょう。味が移動し、明日はジャンルCを希望することを示唆します
。– andreister

1

私が見るように、協調フィルタリングの修正バージョンが機能します。ただし、各ランキングのタイムスタンプを保持し、古いランクの重みを計算するときにペナルティを課す必要があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.