ホームページ >バックエンド開発 >PHPチュートリアル >Elasticsearchを使用してレコメンデーションシステムを実装する方法

Elasticsearchを使用してレコメンデーションシステムを実装する方法

王林
王林オリジナル
2023-07-07 19:37:411334ブラウズ

Elasticsearch を使用してレコメンデーション システムを実装する方法

今日の情報爆発の時代において、レコメンデーション システムは、ユーザーが必要な情報を迅速かつ正確に見つけるのに役立つ重要なツールとなっています。 Elasticsearch は、オープンソースの高性能検索エンジンとして、強力な全文検索機能とデータ分析機能を提供し、レコメンデーション システムの実装を強力にサポートします。この記事では、Elasticsearch を使用して簡単なレコメンデーション システムを構築する方法とコード例を紹介します。

  1. データの準備

まず、データを準備する必要があります。通常、レコメンデーション システムはユーザーの履歴行動に基づいてレコメンデーションを行うため、クリック記録や購入記録などのユーザー行動データを収集する必要があります。収集するデータには、ユーザー ID、製品 ID、動作タイプのフィールドが含まれていると仮定します。

Elasticsearch のドキュメント モデルを使用して、各行動記録をドキュメントとして保存できます。サンプルドキュメントの構造は次のとおりです:

{
"user_id": 123,
"item_id": 456,
"action": "click"
}

  1. インデックスの作成

次に、データを保存するためのインデックスを作成する必要があります。 Elasticsearch では、インデックスはドキュメント データを保存および整理するために使用されるデータベースと考えることができます。

インデックスは、Elasticsearch の REST API を使用して簡単に作成できます。インデックスを作成するサンプル コードは次のとおりです。

PUT /recommendations
{
"mappings": {

"properties": {
  "user_id": {
    "type": "integer"
  },
  "item_id": {
    "type": "integer"
  },
  "action": {
    "type": "text"
  }
}

}
}

  1. データ インポート

Elasticsearch の Bulk API を使用して、一度に大量のデータをインポートできます。サンプルコードは次のとおりです:

POST /recommendations/_bulk
{ "index": { "_index": "recommendations", "_id": "1" }}
{ "user_id" : 123、"item_id": 456、"action": "クリック" }
{ "index": { "_index": "推奨事項"、 "_id": "2" }}
{ "user_id" : 123, "item_id": 789, "action": "buy" }
...

データをインポートするとき、特定のビジネス ニーズに応じて異なる重みを設定できます。たとえば、推奨プロセスでより多くの重みが与えられるように、購入レコードに対してより高い重みを設定できます。

  1. クエリとレコメンデーション

レコメンデーション システムでは、クエリは重要なリンクです。 Elasticsearch のクエリ機能を使用して、ユーザーの過去の行動に基づいた推奨結果を取得できます。

ユーザー 123 に関連する製品の推奨を例にとると、Elasticsearch のクエリ API を使用してリアルタイムの推奨を行うことができます。サンプルコードは次のとおりです:

GET /recommendations/_search
{
"query": {

"bool": {
  "must": [
    { "term": { "user_id": 123 } }
  ]
}

},
"size": 10
}

上記のコードは、ユーザー 123 に関連する上位 10 件の推奨結果を返します。

  1. 結果の表示

最後に、結果をユーザーに表示します。特定のビジネスニーズに応じて、Webページやアプリなどを使用して推奨結果を表示できます。

以下は、Web ページに推奨結果を表示するためのサンプル コードです。

100db36a723c770d327fc0aef2ce13b1
93f0f5c25f18dab9d176bd4f6de5d30e

<title>推荐结果</title>

3c7b149cc556f883a18b3c490b028d4e
6c04bd5ca3fcae76e30b72ad730ca86d

<h1>推荐结果</h1>

<?php
  // 假设推荐结果存储在一个数组中
  $recommendations = [
    "商品1",
    "商品2",
    "商品3",
    ...
  ];

  foreach ($recommendations as $recommendation) {
    echo "<p>{$recommendation}</p>";
  }
?>

36cc49f0c466276486e50c850b7e4956
73a6ac4ed44ffec12cee46588e518a5e

概要

この記事では、Elasticsearch を使用して、シンプルなレコメンドシステム。ユーザーの履歴行動データを収集し、インデックスを作成し、データをインポートし、クエリと推奨を行って、その結果をユーザーに表示することで、Elasticsearch に基づく推奨システムを簡単に構築できます。この記事がお役に立てば幸いです!

以上がElasticsearchを使用してレコメンデーションシステムを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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