All Products
Search
Document Center

Artificial Intelligence Recommendation:Konfigurasikan filter

Last Updated:Oct 31, 2025

Mesin PAI-Rec menyediakan beberapa template filter bawaan, termasuk User2ItemExposureFilter, ItemStateFilter, dan AdjustCountFilter.

Konfigurasi filter

Anda dapat mengonfigurasi filter dengan menyesuaikan parameter FilterConfs dalam kode contoh berikut. Parameter FilterConfs adalah array objek yang mendefinisikan beberapa kebijakan filter.

Ikhtisar konfigurasi filter umum

Berikut ini menjelaskan konfigurasi umum yang digunakan oleh berbagai filter. Konfigurasi ini tidak diulang dalam deskripsi rinci setiap filter pada topik ini.

Contoh konfigurasi:

    "FilterConfs":[
        {
            "Name":"",
            "FilterType":"",
            "Dimension":"",
            "DaoConf":{},
            "AdjustCountConfs":[{}],
            "ItemStateDaoConf":{},
            "FilterParams":[{}],
            "DiversityDaoConf":{},
            "FilterVal":{}
        }
    ]

Parameter

Tipe

Diperlukan

Deskripsi

Name

string

Ya

Nama kustom dari filter. Anda dapat menggunakan nama tersebut saat mengonfigurasi parameter FilterNames.

FilterType

string

Ya

Tipe filter bawaan untuk mesin. Nilai yang valid:

  • User2ItemExposureFilter

  • User2ItemCustomFilter

  • AdjustCountFilter

  • PriorityAdjustCountFilter

  • ItemStateFilter

  • ItemCustomFilter

  • CompletelyFairFilter

  • GroupWeightCountFilter

  • DimensionFieldUniqueFilter

Dimension

string

Tidak

Dimensi item.

DaoConf

DaoConfig

Tidak

Informasi tentang tabel sumber.

AdjustCountConfs

Tidak

Konfigurasi filter PriorityAdjustCountFilter.

ItemStateDaoConf

Tidak

Konfigurasi filter ItemStateFilter.

FilterParams

Tidak

Konfigurasi kondisi kontekstual.

User2ItemExposureFilter

Pemblokiran eksposur diperlukan dalam banyak skenario bisnis untuk mencegah item direkomendasikan secara berulang. Dalam hal ini, eksposur merujuk pada pseudo-eksposur.

Karena latensi log waktu nyata, item yang terpapar tidak dapat segera diidentifikasi. Oleh karena itu, item yang dikembalikan oleh mesin rekomendasi dianggap sebagai item pseudo-terpapar.

Mesin PAI-Rec digunakan untuk membaca dan menulis data pseudo-eksposur. Data eksposur nyata diperoleh dari log waktu nyata pengguna dan ditulis ke database menggunakan mesin komputasi waktu nyata seperti Apache Flink. Kemudian, PAI-Rec dapat mengonsumsi data tersebut.

Tabel berikut menjelaskan konfigurasi parameter umum dari sumber data yang berbeda untuk User2ItemExposureFilter.

Parameter

Tipe

Diperlukan

Deskripsi

Name

string

Ya

Nama kustom dari filter.

FilterType

string

Ya

Tipe filter. Atur nilainya menjadi User2ItemExposureFilter.

MaxItems

int

Ya

Jumlah maksimum batch item terbaru. Parameter ini setara dengan limit ${MaxItems} dalam pernyataan SQL. MaxItems menentukan jumlah maksimum batch, bukan jumlah maksimum item. Satu batch item dikembalikan untuk permintaan rekomendasi.

TimeInterval

int

Ya

Periode waktu untuk mengambil item berdasarkan timestamp. Unit: detik.

WriteLog

bool

Ya

Menentukan apakah akan menulis log eksposur.

ClearLogIfNotEnoughScene

string

Tidak

Menentukan skenario di mana data tabel eksposur akan dihapus.

GenerateItemDataFuncName

string

Tidak

Fungsi yang digunakan untuk menulis data item ke tabel eksposur. Jika parameter ini dibiarkan kosong, fungsi bawaan mesin PAI-Rec digunakan. Dalam hal ini, hanya ID item yang dikembalikan.

WriteLogExcludeScenes

[]string

Tidak

Menentukan skenario di mana log eksposur tidak ditulis.

Hologres

"FilterConfs" :[
  {
    "Name": "holo_exposure_filter",
    "FilterType": "User2ItemExposureFilter",
    "MaxItems": 100,
    "TimeInterval": 172800,
    "WriteLog": true,
    "DaoConf":{
       "AdapterType": "hologres",
       "HologresName": "holo_info",
       "HologresTableName": "exposure_history"
    }
  }
]

Parameter DaoConf

Parameter

Tipe

Diperlukan

Deskripsi

AdapterType

string

Ya

Tipe sumber data. Atur nilainya menjadi hologres.

HologresName

string

Ya

Nama kustom sumber data yang ditentukan dalam parameter HologresConfs. Contoh: holo_info.

HologresTableName

string

Ya

Nama tabel eksposur.

Anda dapat menentukan parameter time_to_live_in_seconds sesuai dengan kebutuhan bisnis Anda untuk mendefinisikan tabel eksposur.

BEGIN;
CREATE TABLE "exposure_history" (
 "uid" text NOT NULL,
 "item" text NOT NULL,
 "create_time" int4 NOT NULL,
PRIMARY KEY ("uid","create_time")
);
CALL SET_TABLE_PROPERTY('"exposure_history"', 'orientation', 'column');
CALL SET_TABLE_PROPERTY('"exposure_history"', 'clustering_key', '"uid","create_time"');
CALL SET_TABLE_PROPERTY('"exposure_history"', 'segment_key', '"create_time"');
CALL SET_TABLE_PROPERTY('"exposure_history"', 'bitmap_columns', '"uid","item"');
CALL SET_TABLE_PROPERTY('"exposure_history"', 'dictionary_encoding_columns', '"uid","item"');
CALL SET_TABLE_PROPERTY('"exposure_history"', 'time_to_live_in_seconds', '172800');
comment on table "exposure_history" is 'tabel yang menyimpan catatan eksposur';
COMMIT;

ApsaraDB for Redis

"FilterConfs" :[
  {
    "Name": "redis_exposure_filter",
    "FilterType": "User2ItemExposureFilter",
    "MaxItems": 100,
    "TimeInterval": 172800,
    "WriteLog": true,
    "DaoConf":{
       "AdapterType": "redis",
       "RedisName": "redis_info",
       "RedisPrefix": "exposure_"
    }
  }
]

Parameter DaoConf

Parameter

Tipe

Diperlukan

Deskripsi

AdapterType

string

Ya

Tipe sumber data. Atur nilainya menjadi redis.

RedisName

string

Ya

Nama kustom sumber data yang ditentukan dalam parameter RedisConfs. Contoh: redis_info.

RedisPrefix

string

Tidak

Awalan kunci untuk data eksposur. Kunci terdiri dari nilai RedisPrefix dan ID unik (UID) pengguna.

Tablestore

"FilterConfs" :[
  {
    "Name": "ots_exposure_filter",
    "FilterType": "User2ItemExposureFilter",
    "MaxItems": 100,
    "TimeInterval": 172800,
    "WriteLog": true,
    "DaoConf":{
       "AdapterType": "tablestore",
       "TableStoreName": "tablestore_info",
       "TableStoreTableName": "exposure_history"
    }
  }
]

Parameter DaoConf

Parameter

Tipe

Diperlukan

Deskripsi

AdapterType

string

Ya

Tipe sumber data. Nilai yang valid: hologres, mysql, dan tablestore.

TableStoreName

string

Ya

Nama kustom sumber data yang ditentukan dalam parameter TableStoreConfs. Contoh: tablestore_info.

TableStoreTableName

string

Ya

Nama tabel eksposur.

Tabel eksposur didefinisikan menggunakan parameter berikut:

time_to_live_in_seconds: siklus hidup data. Anda harus menentukan nilai kustom untuk parameter ini.

Parameter

Kategori

Tipe

Deskripsi

Contoh

user_id

Kunci utama

string

UID pengguna.

10944750

auto_id

Kunci utama

integer

Kolom auto-increment.

item_ids

Properti

string

ID item. Beberapa ID item dipisahkan dengan koma (,). Saat beberapa item terpapar secara bersamaan, sistem akan memasukkan satu rekaman dengan ID item tersebut.

17019277,17019278

User2ItemCustomFilter

Anda perlu menyediakan tabel kustom pengguna-ke-item (U2I) untuk menyaring data.

Tablestore

"FilterConfs" :[
  {
    "Name": "u2i_custom_filter",
    "FilterType": "User2ItemCustomFilter",
    "DaoConf":{
       "AdapterType": "tablestore",
       "TableStoreName": "tablestore_info",
       "TableStoreTableName": "u2i_table"
    }
  }
]

Parameter DaoConf

Parameter

Tipe

Diperlukan

Deskripsi

AdapterType

string

Ya

Tipe sumber data. Nilai yang valid: hologres, mysql, dan tablestore.

TableStoreName

string

Ya

Nama kustom sumber data yang ditentukan dalam parameter TableStoreConfs. Contoh: tablestore_info.

TableStoreTableName

string

Ya

Nama tabel eksposur.

Tabel eksposur didefinisikan menggunakan parameter berikut.

Parameter

Kategori

Tipe

Deskripsi

Contoh

user_id

Kunci primer

string

UID dari pengguna.

10.944.750

item_ids

Properti

string

ID item. Beberapa ID item dipisahkan dengan koma (,).

1.701.927.7,1.701.927.8

AdjustCountFilter

AdjustCountFilter digunakan untuk mengacak urutan item yang dikembalikan oleh tautan recall, kemudian menyimpan sejumlah item tertentu.

Contoh konfigurasi:

"FilterConfs" :[
{
      "Name": "adjust_count_filter",
      "FilterType": "AdjustCountFilter",
      "ShuffleItem": true,
      "RetainNum": 500
}
]

Parameter

Tipe

Diperlukan

Deskripsi

ShuffleItem

string

Ya

Menentukan apakah akan mengacak item yang dikembalikan oleh tautan recall.

RetainNum

string

Ya

Jumlah item yang ingin Anda pertahankan.

Filter Penyesuaian Prioritas

PriorityAdjustCountFilter digunakan untuk mengontrol jumlah item yang dipilih dari hasil yang dikembalikan oleh tautan recall berdasarkan skor. Setiap tautan recall mengurutkan item yang direkomendasikan berdasarkan skor mereka.

Contoh konfigurasi:

"FilterConfs" :[
  {
        "Name": "priority_adjust_count_filter",
        "FilterType": "PriorityAdjustCountFilter",
        "AdjustCountConfs" :[
        {
            "RecallName" :"recall_1",
            "Count" :125,
            "Type" : "accumulator"
        },
        {
            "RecallName" :"recall_2",
            "Count" :250,
            "Type" : "accumulator"
        },
        {
            "RecallName" :"recall_3",
            "Count" :400,
            "Type" : "accumulator"
        }
    ]
  }
]

Parameter

Tipe

Diperlukan

Deskripsi

Nama

string

Ya

Nama kustom dari filter.

FilterType

string

Ya

Tipe filter. Atur nilai menjadi PriorityAdjustCountFilter.

RecallName

string

Ya

Nama tautan recall.

AdjustCountConfs

json array

Ya

Konfigurasi filter PriorityAdjustCountFilter.

  • Count

int

Ya

Jumlah maksimum item yang dipilih dari hasil yang dikembalikan oleh tautan recall.

  • Type

string

Tidak

Tipe penyesuaian angka. Nilai yang valid: accumulator dan fix.

accumulator:

  • Untuk konfigurasi di atas, jika jumlah item yang dipilih dari hasil yang dikembalikan oleh recall_1 kurang dari 125, lebih banyak item akan dipilih dari hasil yang dikembalikan oleh recall_2 untuk mencapai total 250.

fix:

  • Jumlah item yang dipilih dari hasil yang dikembalikan oleh setiap tautan recall adalah tetap. Jika jumlah item yang dipilih untuk satu tautan recall kurang dari nilai yang ditentukan, sistem tidak akan memilih lebih banyak item untuk tautan recall lainnya untuk mengkompensasi kekurangan tersebut.

ItemStateFilter

ItemStateFilter digunakan untuk menyaring item yang dikembalikan oleh tautan recall berdasarkan statusnya. Status item dapat berubah secara real-time. Dalam kebanyakan kasus, tabel tertentu digunakan untuk menyimpan status item. Dalam hal ini, status item perlu di-query secara real-time sebelum penyaringan.

Hologres

"FilterConfs" :[
  {
    "Name": "ItemStateFilter",
    "FilterType": "ItemStateFilter",
    "ItemStateDaoConf":{
        "AdapterType": "hologres",
        "HologresName": "",
        "HologresTableName": "",
        "ItemFieldName" : "",
        "WhereClause": "",
        "SelectFields" :""
     },
     "FilterParams" :[]
  }
]

Parameter ItemStateDaoConfig

Parameter

Tipe

Diperlukan

Deskripsi

AdapterType

string

Ya

Tipe sumber data. Nilai yang valid: hologres, mysql, dan tablestore.

HologresName

string

Ya

Nama kustom sumber data yang ditentukan dalam parameter HologresConfs. Contoh: holo_info.

HologresTableName

string

Ya

Nama tabel yang menyimpan status item dalam instance Hologres.

ItemFieldName

string

Ya

Kunci utama tabel yang menyimpan status item.

WhereClause

string

Tidak

Pernyataan kondisional yang digunakan untuk penyaringan.

SelectFields

string

Ya

Bidang yang ingin Anda query.

Parameter FilterParams

        "FilterParams" :[
            {
                "Name" : "publicStatus",
                "Type" : "int",
                "Operator" : "equal",
                "Value" : 0
            },
            {
                "Name" : "state",
                "Type" : "int",
                "Operator" : "equal",
                "Value" : 1
            },
            {
                "Name" : "checkStatus",
                "Type" : "int",
                "Operator" : "not_equal",
                "Value" : 2
            },
            {
                "Name" : "norec",
                "Type" : "int",
                "Operator" : "not_equal",
                "Value" : 1
            }
        ]

Parameter

Tipe

Diperlukan

Deskripsi

Name

string

Ya

Nama fitur.

Domain

string

Tidak

Objek yang dimiliki fitur tersebut. Nilai yang valid: user dan item.

Operator

string

Ya

Operator. Nilai yang valid: equal, not_equal, in, greater, greaterThan, less, dan lessThan.

Type

string

Ya

Tipe fitur.

Value

object

Ya

Nilai kondisi.

Penting

Kedua parameter WhereClause dan FilterParams dapat dikonfigurasikan untuk penyaringan. Parameter WhereClause digunakan untuk menentukan kondisi penyaringan dalam permintaan query. Parameter FilterParams digunakan untuk menyaring hasil query.

Untuk informasi lebih lanjut tentang cara menggunakan operator, lihat bagian Lampiran dari topik ini.

CompletelyFairFilter

CompletelyFairFilter digunakan untuk mengurutkan item yang dikembalikan oleh tautan recall berdasarkan skor item, lalu memilih item dari hasil setiap tautan secara adil.

"FilterConfs" :[
  {
    "Name": "CompletelyFairFilter",
    "FilterType": "CompletelyFairFilter",
  	"RetainNum": 500
  }
]

DimensionFieldUniqueFilter

DimensionFieldUniqueFilter bekerja berbeda dari UniqueFilter. DimensionFieldUniqueFilter menghapus item dengan nilai bidang yang duplikat.

"FilterConfs" :[
  {
    "Name": "GroupWeightCountFilter",
    "FilterType": "GroupWeightCountFilter",
  	"Dimension:""
  }
]

UniqueFilter

UniqueFilter dirancang untuk memastikan bahwa setiap ID item unik. Jika ID item yang sama dikembalikan oleh dua tautan recall, UniqueFilter memberi prioritas pada ID item yang pertama kali dikembalikan.

Anda dapat menggunakan UniqueFilter saat mengonfigurasi parameter FilterNames tanpa perlu mengonfigurasi UniqueFilter.

Penggunaan filter

Penggunaan filter serupa dengan tautan recall. Setelah menyelesaikan konfigurasi filter, Anda dapat mengonfigurasi parameter FilterNames untuk skenario tertentu. FilterNames berada dalam struktur Map<String, Object>. Kunci menunjukkan skenario, dan nilainya menunjukkan sekumpulan kebijakan filter.

"FilterNames": {
  "default": [
    "UniqueFilter"
  ]
}
  • default: nama skenario. Jika skenario tidak dikonfigurasi secara eksplisit, default digunakan.

  • UniqueFilter: nama kustom filter yang ditentukan dalam parameter FilterConfis.

Lampiran

Contoh operator

  1. equal (sama dengan nilai yang ditentukan)

{
 "Name" : "publicStatus",
 "Type" : "int",
 "Operator" : "equal",
 "Value" : 0
}

  1. not_equal (tidak sama dengan nilai yang ditentukan)

{
 "Name" : "checkStatus",
 "Type" : "int",
 "Operator" : "not_equal",
 "Value" : 2
}

  1. greater (lebih besar dari nilai yang ditentukan)

{
 "Name" : "checkStatus",
 "Type" : "int",
 "Operator" : "greater",
 "Value" : 2
}

  1. greaterThan (lebih besar dari atau sama dengan nilai yang ditentukan)

{
 "Name" : "checkStatus",
 "Type" : "int",
 "Operator" : "greaterThan",
 "Value" : 2
}

  1. less (kurang dari nilai yang ditentukan)

{
 "Name" : "checkStatus",
 "Type" : "int",
 "Operator" : "less",
 "Value" : 2
}

  1. lessThan (kurang dari atau sama dengan nilai yang ditentukan)

{
 "Name" : "checkStatus",
 "Type" : "int",
 "Operator" : "lessThan",
 "Value" : 2
}

  1. in (sama dengan satu nilai atau beberapa nilai dalam array)

{
 "Name" : "state",
 "Type" : "int",
 "Operator" : "in",
 "Value" : [2, 4, 6]
}

String

{
 "Name" : "state",
 "Type" : "string",
 "Operator" : "in",
 "Value" : ["success", "ok"]
}