すべてのプロダクト
Search
ドキュメントセンター

Artificial Intelligence Recommendation:レコメンデーション結果の取得

最終更新日:Jan 11, 2025

概要

このトピックでは、人工知能レコメンデーション(AIRec)サービスからレコメンデーション結果を取得する方法について説明します。 APIオペレーションを呼び出してレコメンデーション結果を取得する場合、データはJSON形式で返されます。

このトピックの内容は、業界オペレーション版とアルゴリズム設定版のAIRecインスタンスに適用されます。

パラメーター

パラメーター

タイプ

説明

必須

備考

userId

string

レコメンデーションサービスを必要とするユーザーのID。

このパラメーターとimeiパラメーターを同時に空にすることはできません。

ユーザーテーブルにユーザーIDが存在しない場合、パーソナライズされたレコメンデーションを提供できません。

imei

string

ユーザーデバイスのID。このIDは、Androidデバイスの国際モバイル機器識別子(IMEI)値、またはiOSデバイスの広告主識別子(IDFA)値です。

このパラメーターとuserIdパラメーターを同時に空にすることはできません。このパラメーターは、未登録ユーザーに必要です。

値は32ビットのメッセージダイジェストアルゴリズム 5(MD5)値である必要があります。

returnCount

Integer

1つのリクエストに対して返されるレコメンデーションエントリの数。

はい

このパラメーターを 20 に設定することをお勧めします。

sceneId

string

アイテムをレコメンドするシナリオのID。

はい

デフォルト値:1。このパラメーターを、アップロードされたデータに含まれるシナリオIDに設定します。

items

string

レコメンデーションサービスタイプが関連レコメンデーションに設定されているシナリオのベンチマークアイテム。

このパラメーターは、シナリオのレコメンデーションサービスタイプが関連レコメンデーションに設定されている場合にのみ必要です。

値はitemId:itemType,itemId:itemTypeの形式である必要があります。

ip

string

最後のログオンに使用されたIPアドレス。

いいえ

-

rankOpen

boolean

フィルタリングおよびランキングフェーズでユーザーIDに基づいてパーソナライズランキングを実行するかどうかを指定します。

いいえ

デフォルト値:true。

recType

string

レコメンデーションサービスのタイプ。

いいえ

値 hot は人気のあるレコメンデーションを示し、値 rr は関連レコメンデーションを示し、値 gul はユーザーが好む可能性のあるレコメンデーションを示します。 recTypeパラメーターを rr または gul に設定すると、パーソナライズレコメンデーション機能が有効になります。パーソナライズレコメンデーション機能は無効になります。 rankOpenパラメーターをfalseに、recTypeパラメーターをhotに設定した場合のみ。

filter

string

レコメンデーションのフィルター条件。

いいえ

レコメンデーションフィルタリング機能の使用方法の詳細については、「レコメンデーションフィルタリング機能を使用してフィードストリームのフィルタリングをカスタマイズする」をご参照ください。

strategy

string

アイテムを先頭に固定し、固定位置でアイテムをレコメンドする機能を有効にするかどうかを指定します。

いいえ

ページにアクセスするための初期リクエストで strategy パラメーターの値が fixedSlot に設定されている場合、先頭に固定され、固定位置でレコメンドされたアイテムのレコメンデーション結果が返されます。デフォルトでは、レコメンデーションにはデフォルトのアルゴリズムが使用されます。

clearExposure

string

表示されたアイテムに関するレコードをクリアするかどうかを指定します。

いいえ

clearExposureパラメーターの値をtrueに設定すると、現在のユーザーの表示されたアイテムに関するレコードがクリアされます。ユーザーは表示されたアイテムを表示することができ、AIRecは表示されたアイテムの記録を再び開始します。表示されたアイテムに関するレコードをクリアする必要がない場合は、このパラメーターを空のままにします。

サーバー SDK を使用してレコメンデーション結果を取得する場合に発生する可能性のある一般的なエラー

レコメンデーション結果が空になる原因:

1. 特定のリクエストパラメーターの値が無効です。 scene_id パラメーターに指定した値がアップロードされたデータに含まれていることを確認してください。

user_id パラメーターに指定した値がユーザーテーブルに含まれていることを確認してください。 user_id パラメーターに指定した値がユーザーテーブルに存在しない場合は、新しいユーザーが作成されます。

レコメンドされたアイテムの数が、指定されたシナリオでレコメンドできるアイテムの数よりも少ないことを確認してください。

注:サーバー SDK を使用してレコメンデーション結果を取得する場合、最大 50 個のレコメンドアイテムを返すことができます。レコメンデーションサービスタイプが関連レコメンデーションに設定されているシナリオでは、次の図に示すように、既存のアイテムを item_id:item_type の形式で指定する必要があります。相关推荐请求参数2. レコメンデーション条件を満たすことができるアイテムの数が少ない。その結果、露出ブロック機能が有効になった後、ユーザーにレコメンドできるアイテムがなくなり、レコメンデーション結果が空になります。

サンプルコード

package com.aliyun.airec;

import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.airec.model.v20181012.RecommendRequest;
import com.aliyuncs.airec.model.v20181012.RecommendResponse;
import com.aliyuncs.http.FormatType;
import com.aliyuncs.profile.DefaultProfile;
import com.aliyuncs.profile.IClientProfile;

public class Recommend {

    public static void main(String args[]) {
        // Alibaba CloudアカウントのAccessKeyペアには、すべてのAPI操作に対する権限があります。セキュリティリスクを回避するために、RAMユーザーを使用してAPI操作を呼び出したり、日常のO&Mを実行することをお勧めします。
        // AccessKey IDとAccessKeyシークレットをプロジェクトコードに保存しないことをお勧めします。そうしないと、AccessKeyペアが漏洩し、アカウント内のすべてのリソースのセキュリティが侵害される可能性があります。

        // この例では、ID検証を実装するために、AccessKey IDとAccessKeyシークレットが環境変数に格納されています。
        IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou", System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"), System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
        DefaultProfile.addEndpoint("cn-hangzhou", "Airec", "airec.cn-hangzhou.aliyuncs.com");

        DefaultAcsClient client = new DefaultAcsClient(profile);

        RecommendRequest request = new RecommendRequest();

        // 以下のパラメーターを設定する必要があります。
        request.setInstanceId("airec-xxx");
        request.setReturnCount(10);
        request.setSceneId("シナリオID");

        // 以下のパラメーターの少なくとも1つを報告する必要があります。
        request.setUserId("0");
        request.setImei("0");

        // シナリオのレコメンデーションサービスタイプが関連レコメンデーションに設定されている場合、このパラメーターはオプションです。
        //request.setItems("88:article,33:image");

        // パーソナライズレコメンデーション機能を無効にする必要がある場合は、rankOpenパラメーターをfalseに、recTypeパラメーターをhotに設定します。
        //request.setRankOpen(false);
        //request.setRecType("hot");

        request.setAcceptFormat(FormatType.JSON);

        try {
            RecommendResponse response = client.getAcsResponse(request);

            for (RecommendResponse.ResultItem item : response.getResult()) {
                System.out.println(item.getItemId());
                System.out.println(item.getItemType());
                System.out.println(item.getTraceId());
                System.out.println(item.getTraceInfo());
                System.out.println(item.getMatchInfo());
                System.out.println(item.getWeight());
                System.out.println(item.getPosition());
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

データのプッシュとレコメンデーション結果の取得のデモ

詳細については、「airec-demo」をご参照ください。