Overview

Open Source Recommendeation Engine

Concept

R4tings RecommenderはJavaとApache Sparkベースのオープンソース型レコメンデーションエンジンです。推薦システム実装のためのコアコードと活用例コードが含まれたワークブックを一緒に提供します。

  • コアコード : 伝統的な統計や機械学習ベースの推薦技法と手順を実装したコアコードはオープンソースで提供され、誰でもプロジェクトのソースコードを自由に拡張し、改善することができます。
  • ワークブックとサンプルコード : 推薦システムを学習し理解するのに役立ち、プロトタイプを開発したり、新しい技法を試験するための基礎を提供します。 また、商用レベルの推薦システムを実装したい場合の出発点として使用することができ、コミュニティの参加と貢献を誘導します。

Introduction

オープンソースの推薦システムは様々な目的に合わせて使用することができますが、実際の適用領域で発生する可能性があるモデルの制限性、ブラックボックスモデル、拡張性と大容量データ処理の面でいくつかの欠点が存在することがあります。

  • 大容量データ処理 : 実装された言語や方式によって大規模データを扱うことに限界があり、大容量データセットでは性能問題が発生する可能性があります。
  • 限られた修正可能性:多くのオープンソース推薦システムは、独自のモデルに基づいて動作し、特定の数式のアルゴリズム実装に焦点を当てています。 このため、商用化や適用領域に応じて式を修正したり、モデルを拡張することが難しい場合があります。
  • ブラックボックスモデルの制限 : いくつかの推薦システムは、モデル内部の動作をブラックボックスとして扱い、ユーザーがモデルの動作を理解し、修正や拡張を困難にします。

R4tings Recommender プロジェクトは、オープンソースの推薦エンジンを開発し、コミュニティによって維持及び発展できるオープンソースエコシステム構築を目的としています。

  • オープンソース推薦エンジンパッケージ
    • 推薦システムのための大規模データの並列処理が可能。
    • 推薦処理過程を段階別に分解し、内部の流れを簡単に理解できるようにコンポーネントとして提供。
    • 推薦モデルをより柔軟に拡張できるように、内部アルゴリズムは高次関数で提供します。
  • オープンソースエコシステム
    • 推薦システムに対する学習と理解を助けるためのワークブック提供
    • 様々な背景と関心を持ったユーザーが参加して、推薦システムに対する新しいアイデアを試すことができます。
    • 新しいアイデアの試験結果である推薦技法や修正されたり拡張された機能をプラグイン(Plugin)形式でプロジェクトに共有

このプロジェクトの目標は以下の通りです。

  • 伝統的な統計や機械学習ベースの推薦モデルの実装とワークブック提供を通じた推薦システムの学習と理解
  • シミュレータやプロトタイピングを通じた学術研究目的での理論及び性能検証。
  • 商用レベルの推薦システムの実装可能性の検討

Components

R4tings Recommenderは推薦のための評価点数化や類似度計算、そしてコラボレーションフィルタリングやコンテンツベースフィルタリングのような代表的な評価予測とアイテム推薦手法の実装体を提供します。

Components

Rating normalization

正規化は、データセットで異なる範囲や尺度を持つ値を一定の範囲に変換するプロセスです。 レーティングデータの場合、レーティングが異なる尺度または範囲を持つため、レーティングの正規化により、ユーザーごとに異なるレーティング基準とアイテムに対する好みによるレーティングの差を調整します。

Components

Similarity calculations

類似度計算は、多次元空間でデータポイント間の類似度を測定する方法です。 ユーザーがアイテムに付けた評価データに基づいて、ユーザーやアイテム間の類似性または距離を測定し、データ間の関連性を把握するために使用されます。

Components

Rating Predictions and Item Recommendations

近隣ベースの協調フィルタリング推薦

従来の協調フィルタリングアルゴリズムの一つであるk-近傍近傍を使用するメモリベースの協調フィルタリング推薦モデルです。 ユーザー間またはアイテム間の類似性に基づいてアイテムを推薦します。

特異値分解基盤の協業フィルタリング推薦

行列分解アルゴリズムの一つである特異値分解アプローチを使用するモデルベースの協業フィルタリング推薦モデルです。 評価データのベースライン推定による残差の切断された特異値分解に基づいてアイテムを推薦します。

TF-IDF コンテンツベースのフィルタリングレコメンデーション

コンテンツベースのフィルタリング推薦は、ユーザーが好むアイテムの特徴、つまりコンテンツが類似したアイテムを推薦するメモリベースの推薦モデルです。 アイテムのTF-IDFベクトルを求め、ユーザーのTF-IDFベクトル間の余弦類似度を計算してアイテムを推薦します。

関連ルールベースの推薦

関連ルール推薦は、あるアイテムと一緒に登場するアイテムに対するルールであるアイテム間の関連性を分析してアイテムを推薦するメモリベースの推薦モデルです。 興味度尺度である関連規則の支持度と信頼度を計算してアイテムを推薦します。

MISCELLANEOUS

MISCELLANEOUS

Technology Stack

  • プログラミング言語 : Java 100% (JDK 8 / 11互換)
  • 開発環境
    • ビルドツール:Gradle 8.3
    • IDE: IntelliJ IDEA Community Edition
  • ライブラリ及びフレームワーク
    • Apache Spark 3.5.0 (Scala 2.12)
    • Junit
    • Logback
    • Project Lombok
    • Zip4j
  • ソフトウェア形状管理: Git / GitHub
  • データセット
    • 例(r4tings)データセット - 評価数 30件
    • Book-Crossingデータセット - 評価数 1,149,780件
    • MovieLensデータセット - 評価数 27,753,444 件

MISCELLANEOUS

Additional Resources

MISCELLANEOUS

Feedback and Contributions

  • 機能エラーや改善点がある場合は、ISSUESに登録するか、DISCUSSIONSを通じてフィードバックしてください。
  • プロジェクトの参加や貢献もいつでも歓迎します。詳しい情報はCONTRIBUTORSで確認することができます。

MISCELLANEOUS

License

MISCELLANEOUS

References

MISCELLANEOUS

Contact

プロジェクトに関する質問や提案、その他連絡が必要な場合は、dongsup.kim@r4tings.comまでご連絡ください。

News & Updates

[2023-12-01] 第17回公開SW開発者大会銀賞(韓国情報科学会会長賞)。公開SWフェスティバル2023。科学技術情報通信部(2023)

R4tings Recommender - Java言語とApache Sparkライブラリで実装されたオープンソース推薦エンジン。