Tahap sorting dijalankan setelah tahap fine-grained sorting. Pada tahap ini, Anda dapat mengurutkan item, menerapkan diversifikasi, dan menambahkan aturan jendela.
Cara mengonfigurasi
Konfigurasi sorting berkorespondensi dengan SortConfs dalam ikhtisar konfigurasi. SortConfs merupakan struktur []object yang memungkinkan Anda mengonfigurasi beberapa kebijakan sorting. PAI-Rec menyediakan kebijakan bawaan berikut: BoostScoreSort, BoostScoreByWeight, ItemRankScore, DiversityRuleSort, DPPSort, dan MultiRecallMixSort.
Konfigurasi sorting umum
Setiap konfigurasi sorting menggunakan subset dari konfigurasi umum. Bagian ini menjelaskan konfigurasi tersebut untuk menghindari pengulangan.
Contoh konfigurasi:
{
"SortConfs": [
{
"Name": "",
"SortType": ""
}
]
}
|
Field |
Type |
Required |
Description |
|
Name |
string |
Yes |
Nama khusus untuk pengurutan. Anda dapat merujuk nama ini dalam SortNames. |
|
SortType |
string |
Yes |
Jenis sorting. Nilai enumerasi:
|
Boost score sort (BoostScoreSort)
Setelah model fine-grained sorting dipanggil, setiap item menerima skor. Berdasarkan kebutuhan bisnis, Anda mungkin perlu memodifikasi skor ini dengan meningkatkan (boost) atau menurunkannya (demote).
Operasi boost atau demote terdiri dari dua bagian:
-
Tetapkan aturan kondisional. Anda dapat menggunakan properti item atau user, seperti kategori atau jenis kelamin, untuk menentukan apakah kondisi terpenuhi.
-
Tetapkan ekspresi boost atau demote. Saat ini, Anda hanya dapat menetapkan ekspresi untuk skor, seperti score × 1.2 atau score × 0.5.
Contoh konfigurasi:
{
"SortConfs": [
{
"Name": "BoostScoreSort",
"SortType": "BoostScoreSort",
"Debug": false,
"BoostScoreConditions": [
{
"Conditions": [
{
"Name": "sex",
"Domain": "item",
"Type": "string",
"Value": "gender",
"Operator": "equal"
}
],
"Expression": "score * 2"
}
]
}
]
}
Konfigurasi ini mengalikan skor dengan 2 untuk item yang memiliki fitur sex bernilai male.
|
Field name |
Type |
Required |
Description |
|
Name |
string |
Yes |
Nama kustom untuk sort. |
|
SortType |
string |
Yes |
Jenis sorting. Field statis: `BoostScoreSort`. |
|
Debug |
bool |
No |
Flag debug. Jika diatur ke `true`, skor asli sebelum boost atau demote direkam dalam `properties` item sebagai `org_score`. Anda kemudian dapat mengaktifkan flag debug dalam permintaan untuk melihat nilai properti item tersebut. Ini hanya untuk debugging dan tidak boleh diaktifkan di lingkungan produksi. |
|
BoostScoreConditions |
json array |
Yes |
Konfigurasi kondisional untuk boost atau demote skor. Anda dapat mengonfigurasi beberapa kondisi untuk boost atau demote skor. |
|
[]FilterParamConfig |
Yes |
Aturan kondisional untuk boost atau demote skor. |
|
string |
Yes |
Ekspresi untuk boost atau demote skor. `score` merepresentasikan skor item saat ini. Ekspresi dapat mereferensikan properti item. Misalnya, jika `item_weight` adalah properti item, Anda dapat mengatur ekspresi menjadi `score × item_weight`. |
Konfigurasi FilterParamConfig adalah sebagai berikut:
|
Field |
Type |
Required |
Description |
|
Name |
string |
Yes |
Nama fitur untuk item atau user. |
|
Domain |
string |
Yes |
Nilai enumerasi: `item` atau `user`. Menentukan apakah opsi `Name` merupakan fitur item atau fitur user. Nama tersebut harus ditemukan dalam `properties` item atau user. |
|
Operator |
string |
Yes |
Nilai enumerasi: `equal`, `not_equal`, `in`, `not_in`, `greater`, `greaterThan`, `less`, `lessThan`, `contains`, atau `not_contains`. |
|
Type |
string |
Yes |
Tipe fitur. |
|
Value |
object |
Yes |
Nilai fitur. |
Untuk informasi lebih lanjut tentang pengaturan kondisional, lihat Adjust count filter (AdjustCountFilter).
Boost score by weight (BoostScoreByWeight)
Saat melakukan boost atau demote skor item, item yang berbeda dapat memiliki bobot yang berbeda. Bobot tersebut merupakan field dalam tabel item dan digunakan untuk menyesuaikan skor.
Rumus skor: weight × item.score
Contoh konfigurasi:
{
"SortConfs": [
{
"Name": "BoostScoreByWeight",
"SortType": "BoostScoreByWeight",
"TimeInterval": 172800,
"BoostScoreByWeightDao": {
"AdapterType": "hologres",
"HologresName": "pai_rec",
"HologresTableName": "test",
"ItemFieldName": "item_id",
"WeightFieldName": "weight"
}
}
]
}
BoostScoreByWeightDao
|
Field |
Type |
Required |
Description |
|
AdapterType |
string |
Yes |
Jenis sumber data. Saat ini, hanya `hologres` yang didukung. |
|
HologresName |
string |
Yes |
Nama kustom instans Hologres yang dikonfigurasi dalam konfigurasi sumber data (`HologresConfs`), seperti `holo_info` dalam konfigurasi sumber data. |
|
HologresTableName |
string |
Yes |
Nama tabel bobot item di Hologres. |
|
ItemFieldName |
string |
Yes |
Kunci primer tabel bobot item. |
|
WeightFieldName |
string |
Yes |
Field bobot dalam tabel bobot item. |
Item rank score (ItemRankScore)
ItemRankScore mengurutkan item secara descending berdasarkan skornya. Fitur ini sudah terintegrasi dalam Mesin DPI dan dapat langsung digunakan di SortNames.
Diversity rule sort (DiversityRuleSort)
Saat menghasilkan rekomendasi, pertimbangkan tidak hanya minat pengguna tetapi juga diversitas item. Hal ini memungkinkan pencampuran item dari kategori dan properti yang berbeda dalam output.
Anda dapat mengonfigurasi aturan sebagai berikut:
Aturan diversitas rekomendasi
Glosarium:
-
Dimensi diversifikasi: Properti item yang digunakan untuk diversifikasi, seperti kategori, penulis, atau tag.
-
Kebijakan penyebaran:
-
Interval minimum k: Item dari dimensi diversifikasi tertentu dapat muncul berturut-turut paling banyak k kali.
-
Frekuensi maksimum m: Dalam jendela berukuran n, item dari dimensi diversifikasi yang sama tidak boleh muncul lebih dari m kali.
-
Logika penyebaran:
-
Aturan diversifikasi hanya berlaku untuk hasil dari satu permintaan. Diversitas lintas permintaan tidak dipertimbangkan.
-
Anda dapat mengonfigurasi beberapa dimensi diversifikasi.
-
Untuk setiap dimensi diversifikasi, Anda dapat mengonfigurasi beberapa kebijakan diversifikasi, masing-masing dengan parameter berbeda (k, m, n).
Contoh konfigurasi:
{
"SortConfs": [
{
"Name": "DiversityRuleSort",
"SortType": "DiversityRuleSort",
"DiversitySize": 100,
"DiversityRules": [
{
"Dimensions": ["spfl"],
"WindowSize": 10,
"FrequencySize": 1
}
],
"ExcludeRecalls": [
"ColdStartVideoVectorRecall",
"LinUcbRecall_default2"
],
"Conditions": [
{
"Name": "spflPick",
"Domain": "user",
"Type": "string",
"Value": "",
"Operator": "equal"
}
]
}
]
}
Sort ini harus digunakan bersama parameter ExcludeRecalls.
DiversityRules
|
Field |
Type |
Required |
Description |
|
Name |
string |
Yes |
Nama kustom untuk sort. |
|
SortType |
string |
Yes |
Jenis sorting. Field statis: `DiversityRuleSort`. |
|
DiversitySize |
int |
No |
Jumlah item yang akan didiversifikasi. Nilai default adalah `size` dari permintaan. |
|
Conditions |
[]FilterParamConfig |
No |
Kondisi untuk aturan diversifikasi. Aturan diversifikasi hanya diterapkan jika properti user memenuhi kondisi tertentu. Untuk detail pengaturan kondisional, lihat Operator examples for conditional matching. Kondisi di sini diatur berdasarkan properti user, sehingga Anda harus mengatur `Domain` ke `user`. |
|
ExcludeRecalls |
[]string |
No |
Daftar ID recall yang dikecualikan dari sorting diversitas. |
|
DiversityRules |
json array |
Yes |
Aturan diversifikasi. Anda dapat menetapkan beberapa aturan. |
|
[]string |
Yes |
Properti item yang digunakan untuk diversifikasi. |
|
int |
Yes |
Mengontrol jumlah kemunculan berturut-turut item dari dimensi yang sama. Ini adalah nilai k yang dijelaskan sebelumnya. |
|
int |
No |
Ukuran jendela. Ini adalah nilai n yang dijelaskan sebelumnya. |
|
int |
No |
Jumlah pengulangan dalam jendela. Ini adalah nilai m yang dijelaskan sebelumnya. |
|
int |
No |
Bobot aturan keragaman. |
|
ExclusionRules |
json array |
No |
Aturan pengecualian. Mengecualikan item tertentu yang memenuhi kondisi dari posisi tertentu. |
|
[]int |
Yes |
Posisi output item, dimulai dari 1. Jika `size` permintaan adalah 10, posisinya adalah 1, 2, 3, ..., 10. |
|
[]FilterParamConfig |
Yes |
Kondisi aturan. Untuk detail pengaturan kondisional, lihat Operator examples for conditional matching. Ini terutama diatur untuk properti item. |
|
ExploreItemSize |
int |
No |
Secara default, jika item pertama dalam set kandidat tidak memenuhi aturan diversifikasi, pencarian dilanjutkan hingga selesai. Parameter ini mengontrol ukuran set kandidat yang akan dicari. Jika nilai ini terlampaui, pencarian dihentikan. |
Lihat contoh berikut untuk aturan pengecualian dan kedalaman pencarian.
Item yang memenuhi kondisi tag=t1 tidak muncul di posisi output 1, 2, 3, atau 4. Item yang muncul di posisi 1, 2, 3, dan 4 tetap harus mematuhi aturan diversifikasi, tetapi tidak boleh memiliki tag=t1.
{
"Name": "DiversityRuleSort",
"SortType": "DiversityRuleSort",
"DiversityRules": [
{
"Dimensions": [
"tag"
],
"WindowSize": 5,
"FrequencySize": 1
}
],
"ExclusionRules": [
{
"Positions": [
1,2,3,4
],
"Conditions": [
{
"Name": "tag",
"Domain": "item",
"Type": "string",
"Value": "t1",
"Operator": "equal"
}
]
}
],
"ExploreItemSize" : 200
}
Saat mencari item yang memenuhi aturan diversifikasi, secara default item hanya di-output jika memenuhi semua aturan. Jika ada aturan diversifikasi yang tidak terpenuhi, sistem mencari item berikutnya hingga ditemukan item yang memenuhi semua aturan. Jika tidak ada item dalam set kandidat yang memenuhi semua aturan, item pertama yang dicari dipilih untuk di-output.
Tersedia kebijakan lain. Anda dapat menambahkan bobot pada aturan diversifikasi. Jika tidak ada item dalam set kandidat yang memenuhi semua aturan, item yang memenuhi aturan dengan total bobot tertinggi dipilih untuk di-output. Jika beberapa item memiliki total bobot tertinggi yang sama, item yang muncul paling awal dalam daftar dipilih.
Lihat contoh berikut untuk konfigurasi dengan bobot:
{
"Name": "DiversityRuleSort",
"SortType": "DiversityRuleSort",
"DiversityRules": [
{
"Dimensions": [
"tag"
],
"WindowSize": 5,
"FrequencySize": 1,
"Weight": 1
},
{
"Dimensions": [
"category"
],
"WindowSize": 3,
"FrequencySize": 1,
"Weight": 3
}
],
"ExclusionRules": [
{
"Positions": [
1
],
"Conditions": [
{
"Name": "tag",
"Domain": "item",
"Type": "string",
"Value": "t1",
"Operator": "equal"
}
]
}
]
}
DPPSort
Untuk informasi lebih lanjut tentang algoritma diversitas DPP (Determinantal Point Process), lihat An Intuitive Understanding of the Determinantal Point Process-based Algorithm for Improving Recommendation Diversity.
Prasyarat: Untuk menggunakan algoritma DPP, Anda harus memiliki vektor embedding item. Vektor tersebut harus merepresentasikan konten item. Kemiripan embedding harus merepresentasikan kemiripan pada tingkat konten item, bukan pada tingkat lain seperti perilaku. Contohnya:
-
Disarankan: Embedding gambar item, embedding deskripsi teks, atau embedding yang dihasilkan dari kombinasi konten statis item seperti kategori dan properti.
-
Tidak disarankan: Embedding yang dilatih dari model berbasis data perilaku user.
Pada dasarnya, dimensi yang ingin Anda diversifikasi harus tercermin dalam embedding. Misalnya, jika Anda ingin daftar rekomendasi memiliki diversitas pada dimensi harga produk, fitur harga harus disertakan saat melatih model untuk mendapatkan vektor embedding. Jika tidak, Anda tidak akan mencapai efek yang diinginkan.
Contoh konfigurasi:
{
"SortConfs": [
{
"Name": "DPPSort",
"SortType": "DPPSort",
"DPPConf": {
"Name": "DPPSort",
"DaoConf": {
"AdapterType": "hologres",
"HologresName": "geeko_rec"
},
"TableName": "item_embedding_metric_learning",
"TableSuffixParam": "embedding_date",
"TablePKey": "product_id",
"EmbeddingColumn": "embedding",
"Alpha": 4.5,
"NormalizeEmb": "false",
"WindowSize": 10
}
}
]
}
DPPConf
|
Field name |
Type |
Required |
Description |
|
Name |
string |
Yes |
Nama kustom untuk sort. |
|
DaoConf |
DaoConfig |
Yes |
Konfigurasikan informasi Hologres. |
|
TableName |
string |
No |
Nama tabel vektor embedding item di Hologres. Ini wajib jika `EmbeddingHookNames` tidak dikonfigurasi. |
|
TableSuffixParam |
string |
No |
Jika tidak kosong, sistem mengambil nilai item konfigurasi ini untuk skenario saat ini dari modul `Parameter Management` di halaman |
|
TablePKey |
string |
No |
Kunci primer tabel vektor embedding. |
|
EmbeddingColumn |
string |
No |
Nama field vektor dalam tabel vektor embedding. |
|
EmbeddingSeparator |
string |
No |
Pemisah untuk vektor embedding. Default adalah koma. |
|
Alpha |
float |
Yes |
Parameter dalam algoritma DPP yang digunakan untuk menyeimbangkan relevansi dan diversitas. Nilai yang lebih besar mengutamakan relevansi. |
|
CacheTimeInMinutes |
int |
No |
Waktu dalam menit untuk menyimpan cache vektor embedding di memori. Default: 360. |
|
EmbeddingHookNames |
[]string |
No |
Nama fungsi yang menghasilkan embedding item. Fungsi-fungsi ini harus didaftarkan terlebih dahulu. |
|
NormalizeEmb |
string |
No |
Menentukan apakah akan melakukan normalisasi L2 pada vektor embedding. Jika normalisasi L2 sudah dilakukan saat embedding dihasilkan, Anda tidak perlu melakukannya lagi. Jika tidak, atur ini ke `true`. |
|
WindowSize |
int |
No |
Ukuran jendela geser untuk algoritma diversitas. Diversitas hanya dijamin dalam jendela tersebut. Default: 10. |
|
EmbMissedThreshold |
float |
No |
Terjadi error jika proporsi item yang tidak memiliki embedding lebih tinggi dari nilai ini. Default: 0.5. |
|
FilterRetrieveIds |
[]string |
No |
Menentukan daftar item yang tidak perlu memanggil modul DPP, seperti item cold-start. |
|
EnsurePositiveSim |
string |
No |
Menentukan apakah akan memastikan bahwa kemiripan item yang dihitung berdasarkan embedding bernilai positif. Default: `true`. |
|
CandidateCount |
int |
No |
Ukuran set kandidat untuk diversifikasi. Secara default, mencakup semua item yang memasuki tahap sorting. Anda dapat mengaturnya ke angka yang lebih kecil untuk membatasi set kandidat hanya pada N item teratas asli. |
|
AbortRunCount |
int |
No |
Jika jumlah item yang memasuki tahap sorting kurang dari nilai ini, diversifikasi tidak dilakukan untuk permintaan saat ini. Default: 0. |
|
MinScorePercent |
float |
No |
Item memenuhi syarat untuk di-output oleh modul diversifikasi hanya jika skor sorting-nya yang dinormalisasi maksimum lebih besar dari nilai ini. Default: 0. |
SSDSort
Untuk informasi lebih lanjut tentang algoritma diversitas SSD (Structured Self-Distillation), lihat Improving the Diversity of Recommendation Results: An Analysis of MMR/DPP/SSD Principles.
Prasyarat: Untuk menggunakan algoritma SSD, Anda harus memiliki vektor embedding item. Vektor tersebut harus merepresentasikan konten item. Kemiripan embedding harus merepresentasikan kemiripan pada tingkat konten item, bukan pada tingkat lain seperti perilaku. Contohnya:
Disarankan: Embedding gambar item, embedding deskripsi teks, atau embedding yang dihasilkan dari kombinasi konten statis item seperti kategori dan properti.
Tidak disarankan: Embedding yang dilatih dari model berbasis data perilaku user.
Pada dasarnya, dimensi yang ingin Anda diversifikasi harus tercermin dalam embedding. Misalnya, jika Anda ingin daftar rekomendasi memiliki diversitas pada dimensi harga produk, fitur harga harus disertakan saat melatih model untuk mendapatkan vektor embedding. Jika tidak, Anda tidak akan mencapai efek yang diinginkan.
Contoh konfigurasi:
{
"SortConfs": [
{
"Name": "SSDSort",
"SortType": "SSDSort",
"SSDConf": {
"Name": "SSDSort",
"DaoConf": {
"AdapterType": "hologres",
"HologresName": "geeko_rec"
},
"TableName": "item_embedding_metric_learning",
"TablePKey": "item_id",
"EmbeddingColumn": "embedding",
"Gamma": 0.25,
"UseSSDStar": true,
"NormalizeEmb": "false",
"MinScorePercent": 0.1,
"CandidateCount": 200,
"WindowSize": 5
}
}
]
}
SSDConf
|
Field name |
Type |
Required |
Description |
|
Name |
string |
Yes |
Nama kustom untuk sort. |
|
DaoConf |
DaoConfig |
Yes |
Konfigurasikan informasi Hologres. |
|
TableName |
string |
No |
Nama tabel vektor embedding item di Hologres. Ini wajib jika `EmbeddingHookNames` tidak dikonfigurasi. |
|
TableSuffixParam |
string |
No |
Jika tidak kosong, sistem mengambil nilai item konfigurasi ini untuk skenario saat ini dari modul `Parameter Management` di halaman |
|
TablePKey |
string |
No |
Kunci primer tabel vektor embedding. |
|
EmbeddingColumn |
string |
No |
Nama field vektor dalam tabel vektor embedding. |
|
EmbeddingSeparator |
string |
No |
Pemisah untuk vektor embedding. Default adalah koma. |
|
Gamma |
float |
Yes |
Parameter dalam algoritma SSD yang digunakan untuk menyeimbangkan relevansi dan diversitas. Nilai yang lebih besar mengutamakan diversitas. |
|
UseSSDStar |
bool |
No |
Menentukan apakah akan mengaktifkan algoritma optimasi yang disebutkan dalam makalah SSD. Default: `false`. Disarankan untuk mengaktifkannya. |
|
CacheTimeInMinutes |
int |
No |
Waktu dalam menit untuk menyimpan cache vektor embedding di memori. Default: 360. |
|
EmbeddingHookNames |
[]string |
No |
Nama fungsi yang menghasilkan embedding item. Fungsi-fungsi ini harus didaftarkan terlebih dahulu. |
|
NormalizeEmb |
string |
No |
Menentukan apakah akan melakukan normalisasi L2 pada vektor embedding. Jika normalisasi L2 sudah dilakukan saat embedding dihasilkan, Anda tidak perlu melakukannya lagi. Jika tidak, atur ini ke `true`. |
|
WindowSize |
int |
No |
Ukuran jendela geser untuk algoritma diversitas. Diversitas hanya dijamin dalam daftar item di dalam jendela tersebut. Default: 5. |
|
EmbMissedThreshold |
float |
No |
Terjadi error jika proporsi item yang tidak memiliki embedding lebih tinggi dari nilai ini. Default: 0.5. |
|
FilterRetrieveIds |
[]string |
No |
Menentukan daftar item yang tidak perlu memanggil modul SSD, seperti item cold-start. |
|
EnsurePositiveSim |
string |
No |
Menentukan apakah akan memastikan bahwa kemiripan item yang dihitung berdasarkan embedding bernilai positif. Default: `true`. |
|
CandidateCount |
int |
No |
Ukuran set kandidat untuk diversifikasi. Secara default, mencakup semua item yang memasuki tahap sorting. Anda dapat mengaturnya ke angka yang lebih kecil untuk membatasi set kandidat hanya pada N item teratas asli. |
|
AbortRunCount |
int |
No |
Jika jumlah item yang memasuki tahap sorting kurang dari nilai ini, diversifikasi tidak dilakukan untuk permintaan saat ini. Default: 0. |
|
MinScorePercent |
float |
No |
Item memenuhi syarat untuk di-output oleh modul diversifikasi hanya jika skor sorting-nya yang dinormalisasi maksimum lebih besar dari nilai ini. Default: 0. |
Multi-channel recall sort (MultiRecallMixSort)
Umumnya, Anda akan memiliki banyak channel recall. Terkadang, berdasarkan kebutuhan bisnis, Anda perlu mencampur output berdasarkan tipe recall. Contohnya:
-
Ada persyaratan kuantitas eksposur untuk recall cold-start.
-
Ada persyaratan posisi untuk channel recall tertentu.
Hal ini juga dapat mencakup beberapa aturan pencampuran.
Konfigurasinya sebagai berikut:
{
"SortConfs": [
{
"Name": "MixSort",
"SortType": "MultiRecallMixSort",
"RemainItem": false,
"MixSortRules": [
{
"MixStrategy": "random_position",
"NumberRate": 0.1,
"RecallNames": [
"OTSGlobalHot"
]
},
{
"MixStrategy": "fix_position",
"Positions": [1,3,5],
"RecallNames": [
"RecallName1"
]
}
]
}
]
}
Selain menggunakan nama recall untuk mencocokkan dan memfilter item, Anda juga dapat menggunakan pemfilteran kondisional untuk memilih item yang akan diekspos.
{
"SortConfs": [
{
"Name": "MixSortByItemFeature",
"SortType": "MultiRecallMixSort",
"RemainItem": false,
"MixSortRules": [
{
"MixStrategy": "random_position",
"NumberRate": 0.1,
"Conditions": [
{
"Name": "gender",
"Domain": "item",
"Type": "string",
"Value": "man",
"Operator": "equal"
}
]
}
]
}
]
}
|
Field |
Type |
Required |
Description |
|
Name |
string |
Yes |
Nama kustom untuk sort. |
|
SortType |
string |
Yes |
Jenis sorting. Field statis: `MultiRecallMixSort`. |
|
RemainItem |
bool |
No |
Menentukan apakah akan menyimpan semua item. Misalnya, jika ada 500 item untuk diproses tetapi ukuran permintaan adalah 30, mengatur ini ke `false` berarti hanya hasil campuran yang disimpan. Jika diatur ke `true`, item yang tersisa juga disimpan, tetapi ditempatkan setelah 30 item campuran. Hal ini memungkinkan kontrol dan pemrosesan lebih lanjut oleh tahap sort berikutnya. |
|
MixSortRules |
json array |
Yes |
Aturan pencampuran. Anda dapat menetapkan beberapa aturan. |
|
string |
Yes |
Kebijakan pencampuran. Nilai enumerasi: `random_position` atau `fix_position`.
|
|
[]int |
No |
Jika `MixStrategy` adalah `fix_position`, Anda harus menentukan `Positions`. Posisi dimulai dari 1. |
|
string |
No |
Jika `MixStrategy` adalah `fix_position`, Anda dapat mengambil posisi dari field properti item. `Positions` dan `PositionField` saling eksklusif. Anda hanya dapat mengatur salah satunya. |
|
int |
No |
Nilai absolut kuantitas. |
|
float |
No |
Proporsi item yang dicampur. Ini hanya diatur ketika `MixStrategy` adalah `random_position`. Nilai valid berkisar dari 0 hingga 1. Jumlah spesifik dihitung dengan `request_size × NumberRate`. |
|
[]string |
No |
Nama channel recall. Anda dapat menetapkan beberapa nama. Jika beberapa nama ditetapkan, mereka berbagi konfigurasi yang sama. Namun, channel recall spesifik yang digunakan tidak tetap. Urutannya ditentukan oleh posisi saat memasuki tahap sort ini. |
|
[]FilterParamConfig |
No |
Item yang memenuhi kondisi pencocokan akan dicampur. Untuk detail pengaturan kondisional, lihat Operator examples for conditional matching. |
Cara menggunakan
Konfigurasi sorting mirip dengan konfigurasi recall. Setelah dikonfigurasi, Anda memberikan parameter SortNames untuk digunakan dalam skenario berbeda. SortNames merupakan struktur Map[string]object di mana kunci adalah skenario, dan setiap skenario berkorespondensi dengan satu set kebijakan sorting.
{
"SortNames": {
"${scene_name}": [
"ItemRankScore"
]
}
}
-
${scene_name} adalah nama skenario. Jika Anda ingin menggunakan konfigurasi yang sama untuk beberapa skenario, Anda dapat menggunakan default.
-
ItemRankScore: Parameter ini adalah nama kustom sort yang didefinisikan dalam SortConfs.