Parcourir la source

ad_out_v1模型预测默认走基线

yangxiaohui il y a 1 an
Parent
commit
82e31b7900
2 fichiers modifiés avec 26 ajouts et 25 suppressions
  1. 14 25
      ad_recommend.py
  2. 12 0
      config.py

+ 14 - 25
ad_recommend.py

@@ -299,37 +299,30 @@ def predict_mid_video_res_with_add(now_date, mid, video_id, abtest_param, abtest
 def predict_mid_video_res_with_model(now_date, mid, video_id, abtest_param, abtest_id, abtest_config_tag, ab_test_code, care_model_status, app_type):
 
     model_key = abtest_param.get('model_key', 'ad_out_v1')
-    mean_key = 'mean'
     user_key_name = f"{config_.KEY_NAME_PREFIX_AD_OUT_MODEL_SCORE_USER}{model_key}:{mid}"
-    user_key_name_mean = f"{config_.KEY_NAME_PREFIX_AD_OUT_MODEL_SCORE_USER}{model_key}:{mean_key}"
     item_key_name = f"{config_.KEY_NAME_PREFIX_AD_OUT_MODEL_SCORE_ITEM}{model_key}:{video_id}"
-    item_key_name_mean = f"{config_.KEY_NAME_PREFIX_AD_OUT_MODEL_SCORE_ITEM}{model_key}:{mean_key}"
     config_key_prefix = f"{config_.KEY_NAME_PREFIX_AD_OUT_MODEL_CONFIG}{model_key}:{abtest_id}:{abtest_config_tag}"
     threshold_key = f"{config_key_prefix}:threshold"
-    use_mean_key = f"{config_key_prefix}:use_mean"
 
-    use_mean = redis_helper.get_data_from_redis(key_name=use_mean_key)
     user_score = redis_helper.get_data_from_redis(key_name=user_key_name)
     item_score = redis_helper.get_data_from_redis(key_name=item_key_name)
 
-    if user_score is None and use_mean == 'true':
-        user_score = redis_helper.get_data_from_redis(key_name=user_key_name_mean)
-
-    if item_score is None and use_mean == 'true':
-        item_score = redis_helper.get_data_from_redis(key_name=item_key_name_mean)
-
-    if user_score is None:
-        user_score = 0.0
-    else:
-        user_score = float(user_score)
-
-    if item_score is None:
-        item_score = 0.0
-    else:
-        item_score = float(item_score)
+    # 如果离线分数为空,则走基线逻辑
+    if user_score is None or item_score is None:
+        result = predict_mid_video_res(
+            now_date=now_date,
+            mid=mid,
+            video_id=video_id,
+            abtest_param=abtest_param,
+            abtest_id=abtest_id,
+            abtest_config_tag=abtest_config_tag,
+            ab_test_code=ab_test_code,
+            care_model_status=care_model_status,
+            app_type=app_type
+        )
+        return result
 
     offline_score = user_score + item_score
-
     online_features = {
         'ctx_apptype': str(app_type),
         'ctx_week': time.strftime('%w', time.localtime()),
@@ -337,8 +330,6 @@ def predict_mid_video_res_with_model(now_date, mid, video_id, abtest_param, abte
     }
 
     final_score, online_score = get_final_score(online_features, offline_score)
-
-    # 获取对应的阈值
     threshold = float(redis_helper.get_data_from_redis(key_name=threshold_key))
 
     # 阈值判断
@@ -349,8 +340,6 @@ def predict_mid_video_res_with_model(now_date, mid, video_id, abtest_param, abte
         # 否则,不出广告
         ad_predict = 1
     result = {
-        'use_mean_key': use_mean_key,
-        'threshold_key': threshold_key,
         'user_score': user_score,
         'item_score': item_score,
         'final_score': final_score,

+ 12 - 0
config.py

@@ -1174,11 +1174,23 @@ class BaseConfig(object):
         '173-u': {
             'threshold_mix_func': 'model',
             'model_key': 'ad_out_v1',
+            'video': {'data': 'videos0out'},
+            'user': {'data': 'user0out', 'rule': 'rule2'},
+            'group_class_key': 'class1',
+            'no_ad_mid_group_list': NO_AD_MID_GROUP_LIST['class1'],
+            'care_model_status_param': 1,
+            'care_model_ab_mid_group': ['mean_group'],
         },  # 是否出广告模型预测
 
         '173-v': {
             'threshold_mix_func': 'model',
             'model_key': 'ad_out_v1',
+            'video': {'data': 'videos0out'},
+            'user': {'data': 'user0out', 'rule': 'rule2'},
+            'group_class_key': 'class1',
+            'no_ad_mid_group_list': NO_AD_MID_GROUP_LIST['class1'],
+            'care_model_status_param': 1,
+            'care_model_ab_mid_group': ['mean_group'],
         },  # 是否出广告模型预测