Explorar o código

Merge branch 'ad-abtest-update-2023031314' into pre-master

liqian %!s(int64=2) %!d(string=hai) anos
pai
achega
34f0d9a7f1
Modificáronse 2 ficheiros con 86 adicións e 55 borrados
  1. 4 0
      ad_video_data_update.py
  2. 82 55
      config.py

+ 4 - 0
ad_video_data_update.py

@@ -62,6 +62,7 @@ def predict_video_share_rate(video_initial_df, dt, data_key, data_param, top10_a
     video_df = video_initial_df.copy()
     video_df['apptype'] = video_df['apptype'].astype(int)
     video_df = video_df[video_df['apptype'] == int(data_param)]
+    log_.info(f"video_df length: {len(video_df)}")
     video_df['sharerate_all'].fillna(0, inplace=True)
     video_df['sharerate_ad'].fillna(0, inplace=True)
     video_df['sharerate_all'] = video_df['sharerate_all'].astype(float)
@@ -80,7 +81,9 @@ def predict_video_share_rate(video_initial_df, dt, data_key, data_param, top10_a
     video_df['video_ad_share_rate'] = \
         video_df['sharerate_ad'] * float(ad_all_videos_share_rate) / video_df['sharerate_all']
     video_df['video_ad_share_rate'].fillna(0, inplace=True)
+    # log_.info(f"video_df: {video_df}")
     video_df = video_df[video_df['video_ad_share_rate'] != 0]
+    log_.info(f"video_df filtered 0 length: {len(video_df)}")
     # 结果写入redis
     key_name = f"{config_.KEY_NAME_PREFIX_AD_VIDEO}{data_key}:{dt}"
     redis_data = {}
@@ -95,6 +98,7 @@ def predict_video_share_rate(video_initial_df, dt, data_key, data_param, top10_a
         for abnormal_video_id in top10_abnormal_video_ids:
             print(abnormal_video_id, group_ad_share_rate_mean, group_ad_share_rate_mean * abnormal_video_param)
             redis_data[int(abnormal_video_id)] = group_ad_share_rate_mean * abnormal_video_param
+    log_.info(f"redis_data count: {len(redis_data)}")
     if len(redis_data) > 0:
         redis_helper = RedisHelper()
         redis_helper.add_data_with_zset(key_name=key_name, data=redis_data, expire_time=2 * 24 * 3600)

+ 82 - 55
config.py

@@ -801,8 +801,11 @@ class BaseConfig(object):
             'videos4': APP_TYPE['LOVE_LIVE'],  # 票圈视频
             'videos6': APP_TYPE['SHORT_VIDEO'],  # 票圈短视频
             'videos5': APP_TYPE['LONG_VIDEO'],  # 内容精选
-            # 'videos21': APP_TYPE['PIAO_QUAN_VIDEO_PLUS'],  # 票圈视频+
-            # 'videos3': APP_TYPE['BLESSING_YEAR'],  # 票圈福年
+            'videos21': APP_TYPE['PIAO_QUAN_VIDEO_PLUS'],  # 票圈视频+
+            'videos3': APP_TYPE['BLESSING_YEAR'],  # 票圈福年
+            'videos22': APP_TYPE['JOURNEY'],  # 票圈足迹
+            'videos18': APP_TYPE['LAO_HAO_KAN_VIDEO'],  # 老好看视频
+            'videos19': APP_TYPE['ZUI_JING_QI'],  # 票圈最惊奇
         },
         # 模板插屏广告视频数据
         'videos_share_rate_adtype1': {
@@ -811,13 +814,6 @@ class BaseConfig(object):
         },
     }
 
-    # # 广告模型视频数据-修复上报后的数据
-    # AD_VIDEO_DATA_PARAMS_NEW = {
-    #     'videos_share_rate_new': {
-    #         'videos4': APP_TYPE['LOVE_LIVE'],  # 票圈视频
-    #     },
-    # }
-
     # 广告模型异常视频数据处理参数
     AD_ABNORMAL_VIDEOS_PARAM = {
         'data1': 17/48,  # vlog
@@ -830,6 +826,22 @@ class BaseConfig(object):
         'data1:7days': 17/48,  # vlog 优化4
         'data4:7days': 1/3,  # 票圈短视频 优化4
         'data5:7days': 1/3,  # 老好看视频 优化4
+
+        # vlog
+        'videos0': 17 / 48,
+        'videos0:adtype1': 17 / 48,
+        # 票圈视频
+        'videos4': 15 / 16,
+        # 内容精选
+        'videos5': 1 / 3,
+        # 票圈短视频
+        'videos6': 1 / 3,
+        # 老好看视频
+        'videos18': 1 / 3,
+        # 票圈最惊奇
+        'videos19': 1 / 3,
+        # 票圈视频+
+        'videos21': 17 / 48,
     }
 
     # 广告模型用户分组类别
@@ -863,13 +875,15 @@ class BaseConfig(object):
     # 广告模型用户数据
     AD_USER_PARAMS = {
         'data_params': {
-            'data1': APP_TYPE['VLOG'],  # vlog
+            'user0': APP_TYPE['VLOG'],  # vlog
             'user4': APP_TYPE['LOVE_LIVE'],  # 票圈视频
             'user5': APP_TYPE['LONG_VIDEO'],  # 内容精选
             'user6': APP_TYPE['SHORT_VIDEO'],  # 票圈短视频
-            'data5': APP_TYPE['LAO_HAO_KAN_VIDEO'],  # 老好看视频
-            'data6': APP_TYPE['ZUI_JING_QI'],  # 票圈最惊奇
-            'data21': APP_TYPE['PIAO_QUAN_VIDEO_PLUS'],  # 票圈视频+
+            'user18': APP_TYPE['LAO_HAO_KAN_VIDEO'],  # 老好看视频
+            'user19': APP_TYPE['ZUI_JING_QI'],  # 票圈最惊奇
+            'user21': APP_TYPE['PIAO_QUAN_VIDEO_PLUS'],  # 票圈视频+
+            'user3': APP_TYPE['BLESSING_YEAR'],  # 票圈福年
+            'user22': APP_TYPE['JOURNEY'],  # 票圈足迹
         },
         'rule_params': {
             'rule1': {
@@ -888,20 +902,22 @@ class BaseConfig(object):
             },  # 优化1 + 优化2
         },
         'params_list': [
-            {'data': 'data1', 'rule': 'rule1'},  # vlog
-            {'data': 'data1', 'rule': 'rule2'},  # vlog + 优化1
+            {'data': 'user0', 'rule': 'rule1'},  # vlog
+            {'data': 'user0', 'rule': 'rule2'},  # vlog + 优化1
             {'data': 'user6', 'rule': 'rule1'},  # 票圈短视频
-            {'data': 'data1', 'rule': 'rule3'},  # vlog + 优化1 + 优化2
+            {'data': 'user0', 'rule': 'rule3'},  # vlog + 优化1 + 优化2
             {'data': 'user6', 'rule': 'rule3'},  # 票圈短视频 + 优化1 + 优化2
             {'data': 'user4', 'rule': 'rule1'},  # 票圈视频
             {'data': 'user5', 'rule': 'rule1'},  # 内容精选
             {'data': 'user4', 'rule': 'rule2'},  # 票圈视频 + 优化1
             {'data': 'user5', 'rule': 'rule2'},  # 内容精选 + 优化1
-            {'data': 'data5', 'rule': 'rule2'},  # 老好看视频 + 优化1
-            {'data': 'data6', 'rule': 'rule1'},  # 票圈最惊奇
-            {'data': 'data6', 'rule': 'rule2'},  # 票圈最惊奇 + 优化1
-            {'data': 'data21', 'rule': 'rule1'},  # 票圈视频+
-            {'data': 'data21', 'rule': 'rule2'},  # 票圈视频+ + 优化1
+            {'data': 'user18', 'rule': 'rule2'},  # 老好看视频 + 优化1
+            {'data': 'user19', 'rule': 'rule1'},  # 票圈最惊奇
+            {'data': 'user19', 'rule': 'rule2'},  # 票圈最惊奇 + 优化1
+            {'data': 'user21', 'rule': 'rule1'},  # 票圈视频+
+            {'data': 'user21', 'rule': 'rule2'},  # 票圈视频+ + 优化1
+            {'data': 'user3', 'rule': 'rule1'},  # 票圈福年
+            {'data': 'user22', 'rule': 'rule2'},  # 票圈足迹 + 优化1
         ]
     }
 
@@ -909,55 +925,55 @@ class BaseConfig(object):
     AD_ABTEST_CONFIG = {
         # 票圈vlog
         '173-a': {'video': {'data': 'data1'},
-                  'user': {'data': 'data1', 'rule': 'rule1'}},
+                  'user': {'data': 'user0', 'rule': 'rule1'}},
         '173-b': {'video': {'data': 'data1'},
-                  'user': {'data': 'data1', 'rule': 'rule2'}},
+                  'user': {'data': 'user0', 'rule': 'rule2'}},
         '173-c': {'video': {'data': 'data1'},
-                  'user': {'data': 'data1', 'rule': 'rule3'}},
+                  'user': {'data': 'user0', 'rule': 'rule3'}},
         '173-d': {'video': {'data': 'data1:7days'},
-                  'user': {'data': 'data1', 'rule': 'rule1'}},
+                  'user': {'data': 'user0', 'rule': 'rule1'}},
         '173-e': {'video': {'data': 'data1'},
-                  'user': {'data': 'data1', 'rule': 'rule2'},
+                  'user': {'data': 'user0', 'rule': 'rule2'},
                   'care_model': True, 'threshold_rate': 0.7,  # 关怀模式实验阈值
                   },  # else关怀模式人群多出广告
         '173-f': {'video': {'data': 'data1'},
-                  'user': {'data': 'data1', 'rule': 'rule2'},
+                  'user': {'data': 'user0', 'rule': 'rule2'},
                   'care_model': True, 'threshold_rate': 0.7,
                   },  # else非关怀模式人群多出广告
         '173-g': {'video': {'data': 'data1:7days'},
-                  'user': {'data': 'data1', 'rule': 'rule2'}},
+                  'user': {'data': 'user0', 'rule': 'rule2'}},
         '173-h': {'video': {'data': 'data1'},
-                  'user': {'data': 'data1', 'rule': 'rule2'},
+                  'user': {'data': 'user0', 'rule': 'rule2'},
                   'more_ad': {'mean_group': 0.8},
                   },  # else人群多出广告
         '173-i': {'video': {'data': 'data1'},
-                  'user': {'data': 'data1', 'rule': 'rule2'},
+                  'user': {'data': 'user0', 'rule': 'rule2'},
                   'more_ad': {'mean_group': 0.9},
                   },  # else人群多出广告
         '173-j': {'video': {'data': 'videos0'},
-                  'user': {'data': 'data1', 'rule': 'rule2'},
+                  'user': {'data': 'user0', 'rule': 'rule2'},
                   'care_model': True, 'threshold_rate': 0.7,
                   },  # else非关怀模式人群多出广告 + 所有广告类型数据
         '173-k': {'video': {'data': 'videos0:adtype1'},
-                  'user': {'data': 'data1', 'rule': 'rule2'},
+                  'user': {'data': 'user0', 'rule': 'rule2'},
                   'care_model': True, 'threshold_rate': 0.7,
                   },  # else非关怀模式人群多出广告 + 模板插屏类型广告视频数据
         # 票圈视频+
         '190-a': {'video': {'data': 'data1'},
-                  'user': {'data': 'data1', 'rule': 'rule1'}},
+                  'user': {'data': 'user0', 'rule': 'rule1'}},
         '190-b': {'video': {'data': 'data1'},
-                  'user': {'data': 'data1', 'rule': 'rule2'}},
+                  'user': {'data': 'user0', 'rule': 'rule2'}},
         # '190-c': {'video': {'data': 'data21'},
-        #           'user': {'data': 'data21', 'rule': 'rule1'}},
+        #           'user': {'data': 'user21', 'rule': 'rule1'}},
         # '190-d': {'video': {'data': 'data21'},
-        #           'user': {'data': 'data21', 'rule': 'rule2'}},
-        # '190-e': {'video': {'data': 'videos21'},
-        #           'user': {'data': 'data21', 'rule': 'rule2'}},  # 所有广告类型本端视频数据 + 优化1
+        #           'user': {'data': 'user21', 'rule': 'rule2'}},
+        '190-e': {'video': {'data': 'videos21'},
+                  'user': {'data': 'user21', 'rule': 'rule2'}},  # 所有广告类型本端视频数据 + 优化1
         # 票圈视频
         '194-a': {'video': {'data': 'data1'},
-                  'user': {'data': 'data1', 'rule': 'rule1'}},
+                  'user': {'data': 'user0', 'rule': 'rule1'}},
         '194-b': {'video': {'data': 'data1'},
-                  'user': {'data': 'data1', 'rule': 'rule2'}},
+                  'user': {'data': 'user0', 'rule': 'rule2'}},
         '194-c': {'video': {'data': 'data2'},
                   'user': {'data': 'user4', 'rule': 'rule1'}},  # 本端数据
         '194-d': {'video': {'data': 'data2'},
@@ -966,9 +982,9 @@ class BaseConfig(object):
                   'user': {'data': 'user4', 'rule': 'rule2'}},  # 所有广告类型本端数据 + 优化1
         # 内容精选
         '195-a': {'video': {'data': 'data1'},
-                  'user': {'data': 'data1', 'rule': 'rule1'}},
+                  'user': {'data': 'user0', 'rule': 'rule1'}},
         '195-b': {'video': {'data': 'data1'},
-                  'user': {'data': 'data1', 'rule': 'rule2'}},
+                  'user': {'data': 'user0', 'rule': 'rule2'}},
         # '195-c': {'video': {'data': 'data3'},
         #           'user': {'data': 'user5', 'rule': 'rule1'}},  # 本端数据
         # '195-d': {'video': {'data': 'data3'},
@@ -977,7 +993,7 @@ class BaseConfig(object):
                   'user': {'data': 'user5', 'rule': 'rule2'}},  # 所有广告类型本端数据 + 优化1
         # 票圈短视频
         '196-a': {'video': {'data': 'data1'},
-                  'user': {'data': 'data1', 'rule': 'rule1'}},
+                  'user': {'data': 'user0', 'rule': 'rule1'}},
         # '196-b': {'video': {'data': 'data4'},
         #           'user': {'data': 'user6', 'rule': 'rule1'}},
         # '196-c': {'video': {'data': 'data4'},
@@ -986,35 +1002,46 @@ class BaseConfig(object):
         #           'user': {'data': 'user6', 'rule': 'rule3'}},  # 优化4
         '196-e': {'video': {'data': 'videos6'},
                   'user': {'data': 'user6', 'rule': 'rule1'}},  # 所有广告类型本端数据
+
         # 老好看视频
         '197-a': {'video': {'data': 'data1'},
-                  'user': {'data': 'data1', 'rule': 'rule1'}},
+                  'user': {'data': 'user0', 'rule': 'rule1'}},
         '197-b': {'video': {'data': 'data1'},
-                  'user': {'data': 'data1', 'rule': 'rule2'}},  # 优化1
+                  'user': {'data': 'user0', 'rule': 'rule2'}},  # 优化1
         '197-c': {'video': {'data': 'data5'},
-                  'user': {'data': 'data5', 'rule': 'rule2'}},
+                  'user': {'data': 'user18', 'rule': 'rule2'}},
         '197-d': {'video': {'data': 'data5:7days'},
-                  'user': {'data': 'data5', 'rule': 'rule2'}},  # 本端数据 + 优化1 + 优化4
+                  'user': {'data': 'user18', 'rule': 'rule2'}},  # 本端数据 + 优化1 + 优化4
+        '197-e': {'video': {'data': 'videos18'},
+                  'user': {'data': 'user18', 'rule': 'rule2'}},  # 所有广告类型本端数据 + 优化阈值计算方式
+
         # 票圈最惊奇
         '198-a': {'video': {'data': 'data1'},
-                  'user': {'data': 'data1', 'rule': 'rule1'}},
+                  'user': {'data': 'user0', 'rule': 'rule1'}},
         '198-b': {'video': {'data': 'data6'},
-                  'user': {'data': 'data6', 'rule': 'rule1'}},  # 本端数据
+                  'user': {'data': 'user19', 'rule': 'rule1'}},  # 本端数据
         '198-c': {'video': {'data': 'data1'},
-                  'user': {'data': 'data1', 'rule': 'rule2'}},  # 优化1
+                  'user': {'data': 'user0', 'rule': 'rule2'}},  # 优化1
         '198-d': {'video': {'data': 'data6'},
-                  'user': {'data': 'data6', 'rule': 'rule2'}},  # 本端数据 + 优化1
+                  'user': {'data': 'user19', 'rule': 'rule2'}},  # 本端数据 + 优化1
+        '198-e': {'video': {'data': 'videos19'},
+                  'user': {'data': 'user19', 'rule': 'rule2'}},  # 所有广告类型本端数据 + 优化阈值计算方式
+
         # 票圈足迹
         '242-a': {'video': {'data': 'data1'},
-                  'user': {'data': 'data1', 'rule': 'rule1'}},
+                  'user': {'data': 'user0', 'rule': 'rule1'}},
         '242-b': {'video': {'data': 'data1'},
-                  'user': {'data': 'data1', 'rule': 'rule2'}},
+                  'user': {'data': 'user0', 'rule': 'rule2'}},
+        '242-c': {'video': {'data': 'videos22'},
+                  'user': {'data': 'user22', 'rule': 'rule2'}},  # 所有广告类型本端数据 + 优化阈值计算方式
 
         # 票圈福年
         '243-a': {'video': {'data': 'data1'},
-                  'user': {'data': 'data1', 'rule': 'rule1'}},
+                  'user': {'data': 'user0', 'rule': 'rule1'}},
         '243-b': {'video': {'data': 'data1'},
-                  'user': {'data': 'data1', 'rule': 'rule2'}},
+                  'user': {'data': 'user0', 'rule': 'rule2'}},
+        '243-c': {'video': {'data': 'videos3'},
+                  'user': {'data': 'user3', 'rule': 'rule1'}},  # 所有广告类型本端数据
     }
 
     # 广告模型阈值计算配置