PAI-Rec引擎重排打散的配置案例

更新时间:
复制 MD 格式

在推荐系统的重排阶段,主要目标是平衡推荐质量(相关性)与用户体验(多样性)。以下是针对您提供的配置项的具体说明(在真实业务中未必合理,仅作为本文配置案例使用):

1、对叶子类目和品牌重排打散

为了防止同一类目或同一品牌的商品过于集中,导致用户视觉疲劳,我们通过“滑动窗口”机制进行打散。

  • 核心逻辑:在指定的窗口大小(WindowSize)内,限制特定维度的商品出现次数(FrequencySize)。

  • 参数详情:

    • DiversitySize (20):仅对推荐列表前 20 个商品执行打散逻辑,保证头部流量的体验。

    • 规则 A (叶子类目打散):

      • 维度:category_id(后台一级类目/叶子类目)。

      • 约束:在连续的 5 个商品中,同一个类目的商品最多只能出现 1 次。

    • 规则 B (品牌打散):

      • 维度:brand_id(品牌 ID)。

      • 约束:在连续的 4 个商品中,同一个品牌的商品最多只能出现 1 次。

      配置建议:若您的商品库较小或特定类目权重极高,过严的打散(如 WindowSize 过大)可能会导致整体点击率下降。建议参考 PAI-Rec 官方文档 了解更多重排插件细节。
 {
    "Name": "CategoryDiversityRuleSort",
    "SortType": "DiversityRuleSort",
    "DiversitySize": 20,
    "DiversityRules": [
        {
            "Dimensions": [
                "category_id"
            ],
            "WindowSize": 5,
            "FrequencySize": 1
        },
        {
            "Dimensions": [
                "brand_id"
            ],
            "WindowSize": 4,
            "FrequencySize": 1
        }
    ]
}

2、根据用户性别和商品性别匹配的时候加权

通过配置规则,对符合特定条件的商品进行分值提权,以实现精准的人货匹配。

  • 核心逻辑:当用户的性别标签与商品的性别属性一致时,动态提高该商品的最终排序分。

  • 参数详情:

    • 判断条件 (Conditions):

      1. item.gender != nil 且 user.gender != nil:确保双方性别数据不为空。

      2. item.gender == user.gender:匹配用户与商品的性别。

    • 提权公式 (Expression):score * 1.5。

      • 效果:匹配成功的商品,其排序分将提升 50%,显著增加其进入推荐列表前排的概率。

{
    "Name": "BoostScoreSort",
    "SortType": "BoostScoreSort",
    "Debug": false,
    "BoostScoreConditions": [
        {
            "Conditions": [
                {
                    "Operator": "expression",
                    "Value": "item.gender!= nil and user.gender != nil and item.gender==user.gender"
                }
            ],
            "Expression": "score * 1.5"
        }
    ]
}