文档

粗排配置

当我们完成召回,过滤(曝光、状态)等, 为了性能考虑,需要对 item 数量进行裁剪才能进入排序阶段。有时候可以通过简单的数量调整可以进行数量裁剪,比如使用数量过滤(AdjustCountFilter), 优先级过滤 (PriorityAdjustCountFilter)来手动调整数量。

目前 PAI-Rec 也支持通过调用模型来得到粗排得分,通过得分来进行数量裁剪。粗排使用模型可以得到更个性化、更精细的召回。

粗排大致分为三个阶段,每个阶段都不是必须,看实际场景设置。

  • 特征加载, 这里和排序之前的特征加载配置是一样的。参考特征配置

  • 模型调用, 配置与精排里的排序配置也保持一致。 参考算法配置

  • 一系列 Action 操作, 这里可以多种操作,比如调用粗排模型之后,需要先排序, 然后再获取得分高的部分item。Action 操作包含 sort , filter 等多种操作,这里配置好后,按照配置顺序执行。

在粗排的配置中,需要考虑冷启动召回的 item , 如果用统一的粗排模型, 冷启动的 item 由于缺少特征可能会被打低分,需要对冷启动召回的 item 进行单独的粗排配置。 目前粗排分两种, 主链路配置和冷启动召回的配置,当然,如果没有冷启动的召回,只配置主链路的配置也是可以的。如果有冷启动的链路,推荐使用 Pipeline 来设置冷启动的链路。参考自定义 Pipeline 流程

GeneralRankConfs

主链路上的粗排配置,这里也是分场景的。

{
  "GeneralRankConfs":{
          "feed": {
                  "FeatureLoadConfs": [ 
                        {
        "FeatureDaoConf": {
          "AdapterType": "hologres",
          "HologresName": "",
          "FeatureKey": "user:uid",
          "UserFeatureKeyName": "userid",
          "HologresTableName": "",
          "UserSelectFields": "*",
          "FeatureStore": "user"
       },
        "Features": []
       }],
       "RankConf": {
         "RankAlgoList": ["sv_rocket_launching"],
         "RankScore": "${sv_rocket_launching}",
         "Processor": "EasyRec"
        },
        "ActionConfs": [
        {
          "ActionType": "sort",
          "ActionName": "ItemRankScore"
        },
        {
           "ActionType": "filter",
           "ActionName": "GeneralCountFilter"
         }
         ]
                  }
        }
}

上文提到, FeatureLoadConfs 和 RankConf 与精排里的特征加载,模型排序是完全一致的。当然这两个也不是必须的,假设现阶段没有粗排模型,只有 ActionConfs 也是可以的。

ActionConfs 是一组操作的结合, ActionType 标识操作类型,目前支持 sort 和 filter。 ActionName 标识操作的名称,名称必须在各自的类型配置中找到。 比如, ItemRankScore 会根据 score 进行排序, 这个是引擎里预定义的。 而 GeneralCountFilter 必须在 FilterConfs 里配置才行。

FilterConfs:{
 {
      "Name": "GeneralCountFilter",
      "FilterType": "AdjustCountFilter",
      "ShuffleItem": false,
      "RetainNum": 500
    },
}

上面 ActionConfs 总的含义是首先执行 ItemRankScore 排序,得分高的item 排在前面,然后进行数量调整,ShuffleItem 为false 不需要进行位置调整,只保留item 数量为 500。

ColdStartGeneralRankConfs

冷启动的粗排配置单独列出,实际上比 GeneralRankConfs 多了 RecallNames 字段,表示需要对哪些召回进行冷启动的粗排设置。

  "ColdStartGeneralRankConfs": {
    "feed": {
      "RecallNames": [
        "ColdStartRecall",
        "ColdStartVideoVectorRecall",
        "VideoColdStartRecall1",
        "VideoColdStartRecall2",
        "VideoColdStartRecall3",
        "VideoColdStartRecall4",
        "LinUcbRecall",
        "LinUcbRecall_default",
        "LinUcbRecall_highQuality",
        "LinUcbRecall_default2"
      ],
      "ActionConfs": [
        {
          "ActionType": "filter",
          "ActionName": "PriorityAdjustCountFilterV4"
        }
      ]
    }
  }
  • 本页导读 (0)
文档反馈