현재 위치: > 최신 기사 목록> PHP 및 Redis를 사용하여 고성능 추천 엔진을 구축하는 방법

PHP 및 Redis를 사용하여 고성능 추천 엔진을 구축하는 방법

M66 2025-06-07

소개

인터넷 기술의 빠른 개발로 추천 엔진은 많은 웹 사이트 및 응용 프로그램의 필수 핵심 구성 요소가되었습니다. 사용자 관심사 및 행동에 따라 관련 컨텐츠 또는 제품을 지능적으로 추천 할 수 있습니다. 널리 사용되는 서버 측 언어로서 PHP는 고성능 Redis 데이터베이스로 추천 시스템의 구성을 효율적으로 구현할 수 있습니다. 이 기사는 PHP 및 Redis를 사용하여 고성능 권장 엔진을 구현하는 방법을 자세히 소개하며 빠른 액세스를 용이하게하기 위해 코드 예제가 장착되어 있습니다.

1 단계 : 데이터 모델을 설계하십시오

권장 엔진을 구축하는 첫 번째 단계는 합리적인 데이터 모델을 설계하는 것입니다. 전자 상거래 웹 사이트를 예로 들어 보면 사용자의 구매 기록을 기반으로 관련 제품을 추천해야합니다. Redis의 정렬 된 세트는 사용자와 제품 간의 관계를 저장하는 데 이상적입니다. 요소는 제품을 구매하고 점수는 타임 스탬프를 구매하여 적시성과 데이터 순서를 보장 할 수 있습니다.

2 단계 : 사용자 행동 데이터를 수집합니다

사용자 행동 데이터 수집 및 저장은 권장 엔진의 기초입니다. 예를 들어, 사용자가 제품을 구매할 때 Redis의 해당 사용자 세트에 레코드를 추가하여 후속 분석 및 권장 생성을 용이하게하십시오.
 // 샘플 코드
$user_id = 123; // 사용자ID
$product_id = 456; // 제품ID

// 주문한 컬렉션에 구매 레코드를 추가하십시오
$redis->zadd("user:$user_id:purchases", time(), $product_id);

3 단계 : 사용자 유사성을 계산합니다

개인화 된 권장 사항을 달성하려면 사용자 간의 유사성을 계산해야합니다. 일반적으로 사용되는 코사인 유사성 알고리즘을 사용하여 사용자 구매 동작의 유사성을 측정 할 수 있습니다. 모든 사용자 데이터를 반복하고 유사성을 계산하며 결과를 Redis에 저장하여 빠른 쿼리를 위해 저장합니다.
 // 샘플 코드
$user_id = 123; // 사용자ID

// 获取该사용자的购买记录
$purchases = $redis->zrange("user:$user_id:purchases", 0, -1);

// 遍历所有사용자
foreach ($redis->keys("user:*:purchases") as $key) {
    if ($key != "user:$user_id:purchases") {
        $other_user_id = substr($key, 5, -10);
        // 获取另一个사용자的购买记录
        $other_purchases = $redis->zrange($key, 0, -1);

        // 计算两个사용자之间的相似度
        $similarity = cosine_similarity($purchases, $other_purchases);

        // 유사성을 저장하십시오 Redis 가운데
        $redis->zadd("user:$user_id:similarities", $similarity, $other_user_id);
    }
}

4 단계 : 권장 결과를 생성합니다

사용자 유사성과 유사한 사용자의 구매 레코드를 결합하여 현재 사용자가 구매하지 않았지만 유사한 사용자가 구매 한 제품을 발견하고 권장 목록을 생성합니다. 권장 결과는 순서대로 Redis 세트에 저장되며 점수는 권장 중량을 나타냅니다.
 // 샘플 코드
$user_id = 123; // 사용자ID

// 获取与该사용자相似的사용자列表
$similar_users = $redis->zrevrange("user:$user_id:similarities", 0, -1);

// 遍历与该사용자相似的사용자
foreach ($similar_users as $similar_user_id) {
    // 获取相似사용자的购买记录
    $similar_purchases = $redis->zrange("user:$similar_user_id:purchases", 0, -1);

    // 计算相似사용자购买过但该사용자未购买的제품
    $recommendations = array_diff($similar_purchases, $purchases);

    // 권장 결과를 저장하십시오 Redis 가운데
    foreach ($recommendations as $product_id) {
        $redis->zadd("user:$user_id:recommendations", $similarity, $product_id);
    }
}

5 단계 : 권장 결과를 얻습니다

마지막으로, 생성 된 추천 결과는 중량으로 정렬되고 얻어지고 사용자에게 표시되며 개인화 된 권장 기능을 구현했습니다.
 // 샘플 코드
$user_id = 123; // 사용자ID

// 获取该사용자的推荐结果
$recommendations = $redis->zrevrange("user:$user_id:recommendations", 0, -1);

// 展示推荐结果给사용자
foreach ($recommendations as $product_id) {
    $product = get_product($product_id); // 获取제품信息
    echo $product['name'] . "<br>";
}

요약

이 기사에서는 PHP 및 Redis를 사용하여 고성능 추천 엔진을 구축하는 방법에 대해 설명합니다. 합리적으로 데이터 모델을 설계하고, 사용자 동작을 효과적으로 수집하고, 사용자 유사성을 계산하며, 유사성을 기반으로 개인화 된 추천 결과를 생성함으로써 실용적이고 우수한 성능 추천 시스템이 구축됩니다. 이 기사가 참조를 제공하고 지능적인 추천 기능을 만들 수 있기를 바랍니다.