Meet Yambda: One of the world’s largest open datasets for RecSys. Recommenderアルゴリズムは、人々が正しい製品、映画、音楽などを発見するのを助けます。オンラインストアからストリーミングプラットフォームまで、サービスの基盤です。これらのアルゴリズムの進歩は直接研究に依存し、その結果、高品質で大規模なデータセットが必要です。 しかし、ほとんどのオープンソースのデータセットは小さく、または時代遅れであるため、テラバイトのデータを蓄積する企業は、プライバシー上の懸念のため、これらのデータを公開することは稀です。 このデータセットには、10か月のユーザーアクティビティからまとめられた、匿名化されたユーザーインタラクションの4億79億件が含まれています。 私たちは、ロシアで最大のサブスクリプションベースのストリーミングサービスであるため、月平均ユーザー数は2800万人であるため、ミュージックサービスを選択しました。 データセットの重要な部分には、合計した聞き取り、気に入り、嫌い、およびパーソナライズされた推薦システムから得られたトラック属性が含まれます。 すべてのユーザーおよびトラッキングデータは匿名化されます:データセットには数値識別子のみが含まれ、ユーザーのプライバシーを確保します。 私のVibe Yambdaのような大規模なオープンデータセットのリリースは、いくつかの問題を解決するのに役立ちます。高品質で大規模なデータへのアクセスは、科学的研究のための新しい道を開き、機械学習を現実の課題に適用したい若い研究者を巻き込む。 私はAlexander Ploshkinで、Yandexでカスタマイズ品質開発をリードしています。 この記事では、データセットが何で構成されているのか、どのように収集したのか、そしてどのようにして新しい推奨アルゴリズムを評価するために使用できるのかを説明します。 始めよう! なぜ大規模なオープンデータセットが重要なのか? Recommenderシステムは近年、真の復興を経験しています。 テクノロジー企業は、他の分野における大規模言語モデル(LLM)の成功からインスピレーションを得たトランスフォーマーベースのモデルをますます採用しています。 私たちがコンピュータビジョンと自然言語処理から学んだことは、データの量はこれらの方法がどれだけうまく機能するかにとって重要である:トランスフォーマーは小さなデータセットで非常に効果的ではないが、数十億のトークンに拡大するとほとんど不可欠になる。 本当に大規模なオープンデータセットは、推奨システムのドメインでは珍しいものです。 LFM-1B、LFM-2B、およびMusic Listening Histories Dataset (27B) などの有名なデータセットは、ライセンス制限のため、時間とともに利用できませんでした。 現在、ユーザーインタラクション数を記録しているのは、Criteoの広告データセットで、約40億件のイベントが発生しているため、ほとんどの研究者がウェブ規模のサービスにアクセスできず、現実世界の展開に似た条件でアルゴリズムをテストすることはできません。 MovieLens、Steam、またはNetflix Prizeのような人気のデータセットには、最高の数千万のインタラクションが含まれており、ランキングやレビューなどの明示的なフィードバックに焦点を当てています。 一方、生産推奨システムは、より多様で色々なシグナルで動作します:クリック、気に入り、完全な聴取、ビュー、購入など。 多くのデータセットは、トレーニングとテストセット間の正当な時間分割を許可しません、これは過去を説明するのではなく、未来を予測するためのアルゴリズムを評価するために重要です。 これらの課題に対処し、勧告システムにおける新しいアルゴリズムの開発を支援するために、我々はYambdaをリリースしている。 このデータセットは、現在、推奨ドメインにおけるユーザーインタラクションのための最大のオープンリソースです。 Yambdaの内部には何があるの? このデータセットには、ミュージックサービスから900万曲を超えるミュージック・トラックと100万人のユーザーのインタラクションが含まれており、合計で4億79億件のイベントが行われています。 まずは、すべてのイベントが匿名化されます。 このデータセットは、ユーザー、トラック、アルバム、アーティストのための数値識別子のみを使用します。 データセットには、主要な暗示的および明示的なユーザーアクションが含まれています。 聴く: ユーザが音楽トラックを聴いた。 Like: The user liked a track (“thumbs up”). 異なります: ユーザーが like を削除しました。 嫌い:ユーザーはトラックを嫌いました(「Thumbs Down」)。 Undislike: ユーザーがDislikeを削除しました。 データセットをよりアクセスしやすくするため、480万件と4800万件のイベントを含む小さなサンプルもリリースしました。 これらのサブセットの概要統計は、以下のテーブルで提供されています。 データは、Pandas や Polars などの Python データ分析ライブラリでネイティブにサポートされている Apache Parquet 形式で保存されます。 Flat: 各行は、ユーザーとトラック間の単一の相互作用を表します。 Sequential: 各行には、単一のユーザーの完全なインタラクション履歴が含まれています。 データセットの構造は次のとおりです。 Yambdaの主な特徴は、 この旗は、ユーザーが自然に起こったアクションと、勧告によって引き起こされたアクションを区別するのに役立ちます。 is_organic もし つまり、イベントは勧告によって引き起こされたということです。 is_organic = 0 たとえば、パーソナライズされた音楽ストリームまたは推奨再生リストで、その他のすべてのイベントは有機的なものとみなされ、ユーザーがコンテンツを独自に発見したことを意味します。 下記の表は、推奨に基づくイベントに関する統計を提供しています。 ユーザーのインタラクション履歴は、パーソナライズされた推薦を作成するための鍵です. It captures both long-term preferences and momentary interests that may shift with context. データ構造をよりよく理解するのに役立つために、以下はデータセットに関する簡単な統計です。 上記のグラフは、ユーザー履歴の長さが重い配布に従っていることを明らかにします。 これは、ほとんどのユーザーが比較的少ないインタラクションを持っているが、小さくても重要なグループは非常に長いインタラクション履歴を持っていることを意味する。 これは、推奨モデルを構築する際に特に考慮すべきであり、非常にアクティブなユーザーに過剰に適合することを避け、少なく関わったユーザーの「重い尾」の品質を維持するために重要です。 対照的に、トラック間の分布は非常に異なるストーリーを物語っています。 このグラフは、非常に人気のあるトラックと大きな量のニッチコンテンツの間の不均衡を明確に示しています:90%以上のトラックは、データ収集期間全体で100回未満のプレーを受けました。 それにもかかわらず、推薦システムは、個々のユーザーの好みとよく一致する低人気のトラックでさえ表面化するために、カタログ全体と関わらなければなりません。 Yambda を使用してアルゴリズムのパフォーマンスを評価する 推奨アルゴリズムの品質に関する学術的研究では、単一のユーザーアクションがテストのために保持され、残りはトレーニングに使用されるLeft-one-Out(LOO)スケジュールがよく使用されます。 しかし、この方法には2つの深刻な欠点があります: 時間不一致:テストイベントには、トレーニングセットのアクションの前に起こったアクションが含まれます。 ユーザーの均等な重量化:非アクティブなユーザーは、アクティブなユーザーと同様に評価メトリックに影響を及ぼし、結果を歪める可能性があります。 評価条件を現実世界の推奨システムシナリオに近づけるために、我々は代替案を提案する。 . global temporal split この簡単な方法では、トレーニングセットからすべての後のイベントを除外して、タイムポイント(T)を選択します。 これにより、モデルは過去のデータに基づいて動作し、将来のデータに対してテストされ、実際の生産環境を模します。 私たちの評価のために、我々は2つの主な理由で、ホルドアウトセットとして1日間のデータを予約しました。 1日あたりのデータの価値さえ、アルゴリズムのパフォーマンスを信頼できるように評価するのに十分な量を提供します。 現実世界の生産モデルには異なる特徴があります:いくつかは頻繁なステータスアップデート(例えば、人気ベースの推奨)を必要としますが、他のモデルは定期的に細かく調整またはトレーニングされます(ブースティング、マトリックスファクタリゼーション、ダブルタワーモデル)、そしていくつかは継続的に更新されているユーザーの相互作用履歴(繰り返しとトランスフォーマーベースのモデル)に依存します。 私たちの観点から、一日のウィンドウは、短期トレンドをキャプチャしながらモデルを静的に保つための最適な評価期間です。 このアプローチの欠点は、音楽を聴く行動の毎週の変化などの長期的なパターンを考慮しないことである。 バジル 私たちは、将来の研究と比較のためのベースラインを確立するために、Yambdaでいくつかの一般的な推奨アルゴリズムを評価しました。 私たちがテストしたアルゴリズムには、MostPop、DecayPop、ItemKNN、iALS、BPR、SANSA、SASRecがあります。 評価のために、以下のメトリックを使用しました。 NDCG@k (Normalized Discounted Cumulative Gain) は、推奨事項におけるランキングの質を測定します。 Recall@kは、アルゴリズムが総プールから関連する勧告を取得する能力を評価する。 Coverage@k は、推薦カタログがどの程度広く代表されているかを示します。 結果はテーブルで提供され、コードは . 抱きしめ顔 抱きしめ顔 結論 Yambdaは、大規模なデータに関する推奨アルゴリズムの研究に有益であり、パフォーマンスと行動ダイナミクスをモデリングする能力の両方が重要である。 データセットは、500億件のイベントを含む完全なセット、および500万件と5000万件のイベントを含む小さなサブセットの3つのバージョンで利用できます。 開発者および研究者は、プロジェクトおよびコンピュータリソースに最も適したバージョンを選択できます。 . 抱きしめ顔 抱きしめ顔 抱きしめ顔 このデータセットがあなたの実験や研究で役に立つことを願っています! 読んでくれてありがとう!