日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

猜你喜歡推薦場景的引擎配置單案例

為了幫助用戶全面了解一個推薦場景如何配置引擎配置單,本文以猜你喜歡場景為例介紹召回、過濾、特征加載、精排和重排的基礎配置,以及如何配置在線數據源Hologres和FeatureStore。

代碼示例(單擊展開查看詳情)

{
    "HologresConfs": {
        "holo_info": {
            "DSN": "postgres://${AccessKey}:${AccessSecret}@hgpostcn-cn-xxxx-cn-shanghai-vpc-st.hologres.aliyuncs.com:80/test_db?sslmode=disable&connect_timeout=1"
        }
    },
    "FeatureStoreConfs": {
        "fs_info": {
            "RegionId": "cn-shanghai",
            "AccessId": "${AccessKey}",
            "AccessKey": "${AccessSecret}",
            "ProjectName": "projectName"
        }
    },
    "RecallConfs": [
        {
            "Name": "etrec_u2i2i_recall_v1",
            "RecallType": "UserCustomRecall",
            "RecallCount": 300,
            "DaoConf": {
                "AdapterType": "hologres",
                "HologresName": "holo_info",
                "HologresTableName": "home_feed_etrec_u2i2i_score_holo_v1"
            }
        },
        {
            "Name": "user_global_hot_recall_v1",
            "RecallType": "UserGlobalHotRecall",
            "RecallCount": 200,
            "DaoConf": {
                "AdapterType": "hologres",
                "HologresName": "holo_info",
                "HologresTableName": "home_feed_global_hot_holo_v1"
            }
        }
    ],
    "FilterConfs": [
        {
            "Name": "UserExposureFilter",
            "FilterType": "User2ItemExposureFilter",
            "MaxItems": 50,
            "TimeInterval": 604800,
            "WriteLog": true,
            "DaoConf": {
                "AdapterType": "hologres",
                "HologresName": "holo_info",
                "HologresTableName": "exposure_history"
            }
        },
        {
            "Name": "ItemStateFilter",
            "FilterType": "ItemStateFilter",
            "ItemStateDaoConf": {
                "AdapterType": "hologres",
                "HologresName": "holo_info",
                "HologresTableName": "item_status_table_v1",
                "ItemFieldName": "item_id",
                "SelectFields": "is_online"
            },
            "FilterParams": [
                {
                    "Name": "is_online",
                    "Type": "int",
                    "Operator": "equal",
                    "Value": 1
                }
            ]
        }
    ],
    "AlgoConfs": [
        {
            "Name": "home_feed_dbmtl_v1",
            "Type": "EAS",
            "EasConf": {
                "Processor": "EasyRec",
                "ResponseFuncName": "easyrecMutValResponseFunc",
                "Url": "http://xxx.vpc.cn-shanghai.pai-eas.aliyuncs.com/api/predict/home_feed_dbmtl_v1",
                "EndpointType": "DIRECT",
                "Auth": "xxxxx"
            }
        }
    ],
    "SortConfs": [
        {
            "Name": "BoostScoreSortByAuthor",
            "SortType": "BoostScoreSort",
            "Debug": false,
            "BoostScoreConditions": [
                {
                    "Conditions": [
                        {
                            "Name": "author_status",
                            "Domain": "item",
                            "Type": "string",
                            "Value": "teacher",
                            "Operator": "equal"
                        }
                    ],
                    "Expression": "score * 10"
                }
            ]
        }
    ],
    "SortNames": {
        "home_feed": [
            "BoostScoreSortByAuthor"
        ]
    },
    "FilterNames": {
        "default": [
            "UniqueFilter",
            "UserExposureFilter"
        ]
    },

    "RankConf": {
        "home_feed": {
            "RankAlgoList": [
                "home_feed_dbmtl_v1"
            ],
            "RankScore": "${home_feed_dbmtl_v1_probs_is_click}+${home_feed_dbmtl_v1_probs_is_collect_like_comment}",
            "BatchCount": 100,
            "Processor": "EasyRec"
        }
    },
    "FeatureConfs": {
        "home_feed": {
            "AsynLoadFeature": true,
            "FeatureLoadConfs": [
                {
                    "FeatureDaoConf": {
                        "AdapterType": "hologres",
                        "HologresName": "holo_info",
                        "FeatureKey": "user:uid",
                        "UserFeatureKeyName": "user_id",
                        "HologresTableName": "user_table_v1_all_feature_v1_online",
                        "UserSelectFields": "*",
                        "FeatureStore": "user"
                    },
                    "Features": []
                },
                {
                    "FeatureDaoConf": {
                        "AdapterType": "hologres",
                        "HologresName": "holo_info",
                        "ItemFeatureKeyName": "item_id",
                        "FeatureKey": "item:id",
                        "HologresTableName": "item_table_v1_all_feature_v1_online",
                        "ItemSelectFields": "item_id,author",
                        "FeatureStore": "item"
                    },
                    "Features": []
                }
            ]
        }
    },
    "SceneConfs": {
        "home_feed": {
            "default": {
                "RecallNames": [
                    "etrec_u2i2i_recall_v1",
                    "user_global_hot_recall_v1"
                ]
            }
        }
    }
}

引擎配置的定義邏輯:先定義召回(RecallConfs)、過濾(FilterConfs)、排序(AlgoConfs)、重排(SortConfs)的配置,然后再在場景中進行引用。如先在FilterConfs中定義過濾配置,配置的名稱為唯一標識符,配置好之后可以在FilterNames中進行引用。召回配置在SceneConfs中引用,排序配置在RankConfs中引用,重排配置在SortNames中引用。home_feed為場景名稱。但是FilterNames中的場景名稱為default,代表如果找不到要走的場景配置,則會走default(默認)。

示例詳細說明如下:

項目

說明

數據源

本案例配置了Hologres和FeatureStore兩種數據源,主要存儲供線上服務使用的數據,如用戶特征和物品特征、熱門召回和i2i召回數據、某個用戶已經看過的物品ID作為曝光過濾的依據等。

如果FeatureStore使用FeatureDB作為線上數據源,需要配置FeatureDB的用戶名(FeatureDBUsername)和密碼(FeatureDBPassword);如果FeatureStore使用其他數據源,則不需配置這兩個參數。兩個數據源中的${AccessKey}${AccessSecret}不需要替換,引擎中會自動完成替換。

召回

本案例在RecallConfs中配置了兩路召回,分別是U2I召回和全局熱門召回,兩種召回的數據來源于Hologres。不同召回參數說明如下:

  • Name:召回的自定義名稱,是當前召回配置的唯一標識符。

  • RecallType:召回的類型,枚舉值,目前以及內置的召回類型可參考召回配置

  • RecallCount:召回數量。

  • AdapterType:召回數據的數據源類型,我們這里使用Hologres舉例。

  • HologresName:已配置的數據源的名稱。

  • HologresTableName:召回數據來自于哪個表。

過濾

本案例在FilterConfs中配置了以下兩種過濾方式:

  • 曝光過濾:需要提前在Hologres中創建曝光表,詳情請參見曝光過濾(User2ItemExposureFilter)。

  • 狀態過濾:可以根據item的狀態進行過濾。如配置中的FilterParams部分,表示只有is_online=1的item才會保留,其他的則會丟棄。

一些參數的解釋:

  • Name:自定義的過濾名稱。

  • FilterType:內置的過濾類型,所支持類型可參考過濾配置。

  • MaxItems:曝光過濾時數據條目的限制,對應SQL中的limit。

  • TimeInterval:曝光過濾的時間范圍,比如要過濾一小時以內的曝光,則為3600。單位秒。

  • WriteLog:曝光過濾時是否把本次推薦的item列表寫入到曝光表中。

  • AdapterType:數據源類型,此處以Hologres舉例。

  • HologresName:Hologres的配置名稱,對應配置中的第三行。

  • HologresTableName:曝光表的表名稱。

  • ItemStateDaoConf:是狀態過濾時的一些參數。HologresTableName 此處則要填寫狀態表的表名稱,ItemFieldName 為表的主鍵,SelectFields 為要查詢的字段。

特征加載

將user特征和item特征加載到引擎中。其中,user特征參與模型的打分,item特征則多用來進行重排。

  • AsynLoadFeature: 是否異步加載特征。

  • AdapterType:數據源類型,此處以Hologres舉例。

  • HologresName:Hologres配置的名稱,對應代碼中第三行。

  • FeatureKey:如user:uid,是一種固定寫法,代表使用user的uid屬性值在數據庫中查詢。

  • UserFeatureKeyName:用戶數據表中的主鍵字段。

  • HologresTableName:用戶數據表的表名。

  • UserSelectFields:查詢時需要查找的字段,多個字段使用逗號分隔,可以使用`*`代替全部字段。

  • FeatureStore:枚舉值為user/item,對應查詢出來的特征存在user側還是item側。

排序

排序服務先在AlgoConfs中進行配置,可以定義多個精排服務。在RankConf中設置某個推薦場景引用AlgoConfs中定義的精排服務,以及打分公式和權重調整,可以設置多個目標預測分加權之后再相加或者相乘的方式。

AlgoConfs:

  • Name:自定義名稱。

  • Type:EAS,固定值,當前基本都在EAS上部署模型服務。

  • Processor:固定值,Processor的類型。

  • ResponseFuncName:固定值。

  • Url:模型服務的地址信息。

  • EndpointType:是否采用直連的方式,直連的方式網絡損耗更小。

  • Auth:模型服務的Token信息。

RankConf:

  • RankAlgoList:使用哪些模型服務進行打分。

  • RankScore:打分的公式,規則為RankAlgoList中的名稱+模型實際的目標值。

  • BatchCount:打分的批次數量。

  • Processor:固定值,Processor的類型。

重排

本案例在SortConfs中配置了如下兩個重排策略:

  • 提權策略:可以根據item的屬性進行提權。如BoostScoreSort配置是指,如果item的author_status屬性值為teacher,則將模型打分的分數再乘以10。

  • 打散策略:表示在長度為20的窗口中,以item的author為維度,不同維度值的item只能出現一次。

配置參數的一些解釋:

  • Name:重排策略的自定義名稱。

  • SortType:內置的重排策略類型,所支持的類型可參考重排配置。

  • Debug:是否開啟Debug模型,開啟之后,會在控制臺上多打印一些日志,方便排查問題。

  • Conditions:Conditions中則為 item 的條件,滿足此條件的會按照Expression的表達式進行處理。

  • DiversityRules:此參數為多樣性參數,Dimensions為維度字段,會按照item的這個字段進行多樣性打散,WindowSize為窗口大小,FrequencySize為不同維度值最多出現的次數。