>  기사  >  백엔드 개발  >  PHP를 사용하여 추천 시스템의 실시간 개인화 추천을 구현하는 방법

PHP를 사용하여 추천 시스템의 실시간 개인화 추천을 구현하는 방법

PHPz
PHPz원래의
2023-07-30 20:13:561472검색

PHP를 사용하여 추천 시스템의 실시간 개인화된 추천을 구현하는 방법

추천 시스템은 많은 웹사이트와 애플리케이션에서 중요한 부분이 되었습니다. 사용자의 관심사와 행동 습관을 기반으로 개인화된 추천 콘텐츠를 제공하여 사용자 경험과 웹사이트의 전반적인 효과를 향상시킬 수 있습니다. 이번 글에서는 PHP를 사용하여 간단한 추천 시스템을 구현하는 방법을 소개하고 실시간으로 개인화된 추천을 제공하는 방법을 보여드리겠습니다.

추천 시스템의 기본 원리는 사용자의 과거 행동과 다른 사용자의 행동을 기반으로 사용자가 관심을 가질 만한 콘텐츠를 예측하고 이러한 콘텐츠를 사용자에게 추천하는 것입니다. 개인화된 추천을 얻기 위해서는 사용자가 탐색하는 웹페이지, 클릭하는 버튼 등과 같은 사용자 행동 데이터를 수집해야 합니다. 이 데이터는 사용자 관심 모델을 구축하고 이 모델을 기반으로 추천하는 데 사용됩니다.

먼저 사용자 행동 데이터를 저장할 데이터베이스를 만들어야 합니다. MySQL을 데이터베이스 엔진으로 사용하고 사용자 행동 데이터를 저장하기 위해 "actions"라는 테이블을 생성하겠습니다. 테이블의 구조는 다음과 같습니다:

CREATE TABLE actions (
    id INT AUTO_INCREMENT PRIMARY KEY,
    user_id INT,
    action VARCHAR(255),
    item_id INT,
    timestamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

다음으로, 사용자의 행동을 캡처하여 데이터베이스에 저장하는 PHP 코드를 작성해야 합니다. 다음은 사용자의 클릭 동작을 캡처하여 데이터베이스에 저장하는 샘플 코드입니다.

<?php
// 连接数据库
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "database";

$conn = new mysqli($servername, $username, $password, $dbname);

// 捕获用户的点击行为
$action = "click";
$item_id = $_GET['item_id']; // 从GET请求中获取item_id
$user_id = $_SESSION['user_id']; // 从会话中获取user_id

// 将用户的行为存储到数据库中
$sql = "INSERT INTO actions (user_id, action, item_id) VALUES ('$user_id', '$action', '$item_id')";
$conn->query($sql);
$conn->close();
?>

위 코드에서는 먼저 mysqli 클래스를 통해 데이터베이스에 연결합니다. 그런 다음 GET 요청에서 사용자의 클릭 동작과 item_id를 가져오고 세션에서 사용자의 user_id를 가져옵니다. 마지막으로 사용자의 행동을 데이터베이스에 저장합니다.

다음으로, 사용자의 행동 데이터를 기반으로 사용자 관심 모델을 구축하고 이 모델을 기반으로 개인화된 추천을 제공해야 합니다. 다음은 사용자의 클릭 행동을 기반으로 추천을 제공하는 샘플 코드입니다.

<?php
// 连接数据库
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "database";

$conn = new mysqli($servername, $username, $password, $dbname);

// 获取用户的兴趣模型
$user_id = $_SESSION['user_id']; // 从会话中获取user_id
$sql = "SELECT item_id FROM actions WHERE user_id = '$user_id' AND action = 'click'";
$result = $conn->query($sql);
$interests = array();

if ($result->num_rows > 0) {
    while ($row = $result->fetch_assoc()) {
        $item_id = $row['item_id'];
        $interests[] = $item_id;
    }
}

// 根据用户的兴趣模型进行推荐
$sql = "SELECT item_id FROM actions WHERE user_id <> '$user_id' AND action = 'click' AND item_id NOT IN (" . implode(',', $interests) . ")";
$result = $conn->query($sql);
$recommendations = array();

if ($result->num_rows > 0) {
    while ($row = $result->fetch_assoc()) {
        $item_id = $row['item_id'];
        $recommendations[] = $item_id;
    }
}

$conn->close();
?>

위 코드에서는 먼저 세션에서 사용자의 user_id를 가져오고 이 user_id를 기반으로 데이터베이스에서 사용자의 클릭 행동을 가져옵니다. 그런 다음 사용자의 관심 모델을 나타내는 item_id를 $interests 배열에 저장합니다. 다음으로 데이터베이스에서 다른 사용자의 클릭 동작을 얻고 사용자가 클릭하지 않은 item_id를 필터링합니다. 마지막으로 권장 item_id를 $recommendations 배열에 저장합니다.

마지막으로 사용자에게 추천 결과를 표시해야 합니다. 다음은 추천 결과를 표시하는 간단한 샘플 코드입니다.

<?php
foreach ($recommendations as $item_id) {
    // 根据item_id从数据库中获取item的详细信息
    $sql = "SELECT * FROM items WHERE item_id = '$item_id'";
    $result = $conn->query($sql);

    if ($result->num_rows > 0) {
        while ($row = $result->fetch_assoc()) {
            // 显示item的标题、图片等信息
            echo $row['title'] . "<br>";
            echo "<img src='" . $row['image'] . "'><br>";
            // ...
        }
    }
}
?>

위 코드에서는 foreach 루프를 사용하여 $recommendations 배열을 순회하고 item_id를 기반으로 데이터베이스에서 항목 세부정보를 가져옵니다. 그런 다음 항목의 제목, 사진 및 기타 정보를 사용자에게 표시합니다.

요약하자면 PHP를 사용하여 추천 시스템의 실시간 개인화 추천을 구현하는 것은 복잡하지 않습니다. 사용자 행동 데이터를 수집하고, 사용자 관심 모델을 구축하고, 이를 기반으로 개인화된 추천을 제공함으로써 더 나은 사용자 경험과 웹 사이트 효과를 제공할 수 있습니다. 이 글이 추천 시스템의 구현 과정을 이해하는 데 도움이 되기를 바라며, 실제 적용에 대한 참고 자료도 제공되기를 바랍니다.

위 내용은 PHP를 사용하여 추천 시스템의 실시간 개인화 추천을 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.