インターネットの開発により、コンテンツ推奨システムは、さまざまなアプリケーションでますます重要な役割を果たしています。ユーザーの関心と行動に基づいて最も関連性の高いコンテンツを推奨し、ユーザーの満足度と参加を改善できます。この記事では、PHPとRedisを使用してシンプルなコンテンツ推奨システムを構築する方法を紹介し、コードの例を提供します。
まず、サーバーにRedisをインストールして構成する必要があります。最新の安定したバージョンは、Redisの公式Webサイトからダウンロードし、ドキュメントの指示に従ってインストールおよび構成できます。
PHPでは、PECL拡張パッケージ「Redis」を使用して、Redisを接続および操作します。次のコマンドを使用して、Composerを使用してこの拡張機能パッケージをインストールできます。
composer require predis/predis
次に、Redis接続インスタンスを作成します。
<?php
require 'vendor/autoload.php';
use Predis\Client;
$redis = new Client([
'scheme' => 'tcp',
'host' => '127.0.0.1',
'port' => 6379,
]);
?>
次に、Redisで推奨するコンテンツを保存する必要があります。各コンテンツには一意のIDがあり、コンテンツの属性(タイトル、ラベルなど)に基づいてインデックスを作成できます。 Redisのハッシュデータ型を使用して、各コンテンツの詳細を保存できます。
<?php
// コンテンツを保存します
$redis->hmset('content:1', [
'title' => '記事1',
'tags' => 'PHP, Redis, 推奨システム',
'url' => 'https://example.com/content/1',
]);
?>
最も関連性の高いコンテンツを推奨するには、クリック、コレクションなどのユーザーの動作を記録する必要があります。Redisのソートされたセットデータ型を使用して、各ユーザーの動作を保存し、ユーザーIDと動作スコアに従ってソートできます。たとえば、ユーザーが何かをクリックすると、次のコードを使用して動作を記録できます。
<?php
// ユーザーを録音します[動作]をクリックします
$userId = 1;
$contentId = 1;
$redis->zincrby('user:' . $userId . ':clicks', 1, $contentId);
?>
ユーザーの動作とコンテンツのプロパティに基づいて、Redisのセットデータ型を使用して推奨コンテンツを取得できます。セットの交差操作を使用して、ユーザーに最も関連するコンテンツを取得できます。たとえば、次のコードは、1のユーザーIDを持つユーザーに最も関連性の高いコンテンツを取得します。
<?php
// 推奨コンテンツを取得します
$userId = 1;
// ユーザーがクリックしたコンテンツを取得しますID
$clicks = $redis->zrevrange('user:' . $userId . ':clicks', 0, -1);
// コンテンツのタグを取得します
$tags = [];
foreach ($clicks as $contentId) {
$tags[] = $redis->hget('content:' . $contentId, 'tags');
}
// ユーザーに最も関連性の高いコンテンツを取得します
$recommendation = $redis->sinter('tag:' . implode(':', $tags) . ':contents');
?>
PHPとRedisを使用してコンテンツ推奨システムを構築することにより、パーソナライズされたコンテンツ推奨機能を実装できます。この記事では、コンテンツデータを保存し、ユーザーの動作を記録し、Redisの複数のデータ型を使用して推奨コンテンツを抽出する方法を示しています。このシステムは比較的単純ですが、より複雑な推奨エンジンの基礎を築きます。