ホームページ  >  記事  >  データベース  >  Python と Redis を使用したリアルタイム レコメンデーション システムの構築: パーソナライズされたレコメンデーションを提供する方法

Python と Redis を使用したリアルタイム レコメンデーション システムの構築: パーソナライズされたレコメンデーションを提供する方法

WBOY
WBOYオリジナル
2023-07-30 09:37:091168ブラウズ

Python と Redis を使用したリアルタイム レコメンデーション システムの構築: パーソナライズされたレコメンデーションを提供する方法

はじめに:
現代の情報爆発の時代では、ユーザーは多くの場合、多数のオプションと選択肢に直面します。そのため、パーソナライズされた推奨システムがますます重要になります。この記事では、Python と Redis を使用してリアルタイムのパーソナライズされたレコメンデーション システムを構築する方法と、Redis の強力な機能を使用してパーソナライズされたレコメンデーションを提供する方法を紹介します。

1. パーソナライズされた推奨システムとは
パーソナライズされた推奨システムは、ユーザーの興味や行動に基づいて、アルゴリズムや機械学習テクノロジーと組み合わせて、ユーザーの興味やニーズに合ったコンテンツや製品を推奨します。 。パーソナライズされた推奨システムの中核は、ユーザーの行動と興味を分析して理解することで、ユーザーの好みとニーズを正確に予測し、対応する推奨コンテンツを提供することです。

2. Redis の概要
Redis は、効率的な読み取りおよび書き込み速度と豊富なデータ構造のサポートを備えたオープンソースのメモリ内データベースです。キャッシュ、メッセージ キュー、リアルタイム カウンターなどのさまざまなシナリオで使用できます。パーソナライズされたレコメンデーション システムでは、Redis をユーザーの行動や興味のストレージおよび分析ツールとして使用でき、レコメンデーション システムにリアルタイム データ サポートを提供します。

3. 基本的な環境構築
リアルタイムレコメンドシステムを構築する前に、Python と Redis 環境をインストールして設定する必要があります。

  1. #Python と対応する依存ライブラリをインストールする

    コマンド ラインに次のコマンドを入力して、Python と依存ライブラリをインストールします:

    $ sudo apt-get update
    $ sudo apt-get install python3 python3-pip
    $ pip3 install redis

  2. # #Redis のインストール
  3. コマンド ラインで次のコマンドを入力して Redis をインストールします:

    $ sudo apt-get install redis-server

  4. 4. リアルタイム レコメンデーション システムの設計
この記事では「映画レコメンデーション」について取り上げます。 System」を例として、Python の使用方法を示します。Redis を使用してリアルタイムのパーソナライズされたレコメンデーション システムを構築します。


データの前処理
    まず、映画の名前、分類、評価、その他の情報を含む映画データを準備する必要があります。これらのデータを Redis に保存すると、その後のデータのクエリと推奨が容易になります。

  1. import redis
    
    # 连接Redis
    r = redis.Redis(host='localhost', port=6379)
    
    # 存储电影数据
    movies = [
        {"id": 1, "title": "电影1", "category": "喜剧", "rating": 4.5},
        {"id": 2, "title": "电影2", "category": "动作", "rating": 3.8},
        {"id": 3, "title": "电影3", "category": "爱情", "rating": 4.2},
        # 添加更多电影数据...
    ]
    
    for movie in movies:
        r.hmset("movie:%s" % movie["id"], movie)
ユーザー行動分析
  1. 次に、ユーザーの評価または映画の視聴記録を収集し、後でパーソナライズされた推奨事項のためにそれらを Redis に保存する必要があります。
  2. # 添加用户行为数据
    user1 = {"id": 1, "ratings": {"1": 5, "2": 4, "3": 3}}
    user2 = {"id": 2, "ratings": {"1": 4, "2": 3, "3": 2}}
    user3 = {"id": 3, "ratings": {"2": 5, "3": 4}}
    # 添加更多用户数据...
    
    for user in [user1, user2, user3]:
        for movie_id, rating in user['ratings'].items():
            r.zadd("user:%s:ratings" % user["id"], {movie_id: rating})
    パーソナライズされた推奨事項
  1. 最後に、協調フィルタリング アルゴリズムに基づいたパーソナライズされた推奨アルゴリズムを使用して、ユーザーを推奨します。
  2. # 获取用户的观看记录
    def get_user_ratings(user_id):
        return r.zrange("user:%s:ratings" % user_id, 0, -1, withscores=True)
    
    # 获取电影的评分
    def get_movie_rating(movie_id):
        movie = r.hgetall("movie:%s" % movie_id)
        return float(movie[b"rating"])
    
    # 个性化推荐算法
    def personalized_recommendation(user_id, top_n=3):
        user_ratings = get_user_ratings(user_id)
        recommendations = []
    
        for movie_id, rating in user_ratings:
            related_movies = r.smembers("movie:%s:related_movies" % movie_id)
            for movie in related_movies:
                if r.zrank("user:%s:ratings" % user_id, movie) is None:
                    recommendations.append((movie, get_movie_rating(movie)))
    
        return sorted(recommendations, key=lambda x: x[1], reverse=True)[:top_n]
    
    # 输出个性化推荐结果
    user_id = 1
    recommendations = personalized_recommendation(user_id)
    for movie_id, rating in recommendations:
        movie = r.hgetall("movie:%s" % movie_id)
        print("电影:%s, 推荐评分:%s" % (movie[b"title"], rating))
5. 概要

この記事では、Python と Redis を使用してリアルタイムのパーソナライズされたレコメンデーション システムを構築する方法を紹介します。 Redis の強力な機能により、ユーザーの行動や興味を簡単に保存および分析し、パーソナライズされたレコメンデーション コンテンツをユーザーに提供できます。もちろん、これはパーソナライズされたレコメンデーション システムの基礎にすぎず、実際のニーズに応じて、より複雑なアルゴリズムやテクノロジーを適用して、レコメンド効果を向上させることができます。実際のアプリケーションでは、データのセキュリティやパフォーマンスなどの問題も考慮する必要がありますが、この記事では簡単な例を示しますので、読者の参考になれば幸いです。

以上がPython と Redis を使用したリアルタイム レコメンデーション システムの構築: パーソナライズされたレコメンデーションを提供する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。