Browse Source

update deepfm recall

linfan 1 year ago
parent
commit
ed76d09857
4 changed files with 34 additions and 59 deletions
  1. 16 1
      config.py
  2. 1 1
      rank_service.py
  3. 16 56
      recommend.py
  4. 1 1
      video_rank.py

+ 16 - 1
config.py

@@ -165,6 +165,9 @@ class BaseConfig(object):
             'abtest_394': 60066,
             'abtest_395': 60067,
             'abtest_396': 60068,
+            'abtest_407': 60069,
+            'abtest_408': 60070,
+            'abtest_409': 60071,
         },  # 地域分组小时级规则实验
 
         'rank_by_24h': {
@@ -424,7 +427,19 @@ class BaseConfig(object):
         '396': {
             'data_key': 'data10', 'rule_key': 'rule7',
             'ab_code': AB_CODE['region_rank_by_h'].get('abtest_396')
-        }
+        },
+        '407': {
+            'data_key': 'data10', 'rule_key': 'rule7',
+            'ab_code': AB_CODE['region_rank_by_h'].get('abtest_407')
+        },
+        '408': {
+            'data_key': 'data10', 'rule_key': 'rule7',
+            'ab_code': AB_CODE['region_rank_by_h'].get('abtest_408')
+        },
+        '409': {
+            'data_key': 'data10', 'rule_key': 'rule7',
+            'ab_code': AB_CODE['region_rank_by_h'].get('abtest_409')
+        },
     }
 
     # APP ab实验配置

+ 1 - 1
rank_service.py

@@ -251,7 +251,7 @@ def get_tf_serving_sores(feature_dict):
     request_data_dict["inputs"] = inputs_data
     #print(request_data_dict)
     request_data= json.dumps(request_data_dict)
-    print(request_data)
+    #print(request_data)
     # 调用http接口
     result = request_post_data(config_.TF_SERVING_URL,request_data, timeout=(0.1, 1))
 

+ 16 - 56
recommend.py

@@ -454,17 +454,13 @@ def video_old_recommend(request_id, mid, uid, size, top_K, flow_pool_P, app_type
         t = [gevent.spawn(pool_recall.rov_pool_recall_with_region, size, expire_time, ab_code, exp_config)]
         if ab_code ==60054 or ab_code==60066:
             t.append(gevent.spawn(pool_recall.get_sim_hot_item_reall_filter, exp_config))
-        if ab_code == 60055:
-            t.append(gevent.spawn(pool_recall.get_return_video_reall, exp_config))
-        if ab_code == 60056:
+        if ab_code == 60056 or ab_code == 60071:
             t.append(gevent.spawn(pool_recall.get_sim_hot_item_reall_filter, exp_config))
             t.append(gevent.spawn(pool_recall.get_U2I_reall, mid , exp_config))
-        if ab_code == 60065 :
-            t.append(gevent.spawn(pool_recall.get_return_video_reall, exp_config, 'rv2:'))
-        if ab_code ==60067 :
+        if ab_code ==60067  or ab_code == 60069:
             t.append(gevent.spawn(pool_recall.get_sim_hot_item_reall_filter, exp_config))
             t.append(gevent.spawn(pool_recall.get_return_video_reall, exp_config))
-        if ab_code == 60068:
+        if ab_code == 60068 or ab_code == 60070:
             t.append(gevent.spawn(pool_recall.get_sim_hot_item_reall_filter, exp_config))
             t.append(gevent.spawn(pool_recall.get_return_video_reall, exp_config, 'rv2:'))
     else:
@@ -473,17 +469,13 @@ def video_old_recommend(request_id, mid, uid, size, top_K, flow_pool_P, app_type
              gevent.spawn(pool_recall.flow_pool_recall, size)]
         if  ab_code == 60054 or ab_code==60066:
             t.append(gevent.spawn(pool_recall.get_sim_hot_item_reall_filter))
-        if ab_code == 60055:
-            t.append(gevent.spawn(pool_recall.get_return_video_reall, exp_config))
-        if ab_code == 60056:
+        if ab_code == 60056 or ab_code == 60071:
             t.append(gevent.spawn(pool_recall.get_sim_hot_item_reall_filter, exp_config))
             t.append(gevent.spawn(pool_recall.get_U2I_reall, mid , exp_config))
-        if ab_code == 60065:
-            t.append(gevent.spawn(pool_recall.get_return_video_reall, exp_config, 'rv2:'))
-        if ab_code == 60067:
+        if ab_code == 60067 or ab_code == 60069:
             t.append(gevent.spawn(pool_recall.get_sim_hot_item_reall_filter, exp_config))
             t.append(gevent.spawn(pool_recall.get_return_video_reall, exp_config))
-        if ab_code == 60068:
+        if ab_code == 60068 or ab_code == 60070:
             t.append(gevent.spawn(pool_recall.get_sim_hot_item_reall_filter, exp_config))
             t.append(gevent.spawn(pool_recall.get_return_video_reall, exp_config, 'rv2:'))
 
@@ -495,7 +487,7 @@ def video_old_recommend(request_id, mid, uid, size, top_K, flow_pool_P, app_type
         result['recallResult']= []
         result['rankResult'] = []
         return result
-    #1. merge simrecall
+    #1. merge simrecall or  deepfm
     if ab_code == 60054 or ab_code==60066:
         rov_pool_recall = []
         if len(recall_result_list) >= 2:
@@ -522,35 +514,8 @@ def video_old_recommend(request_id, mid, uid, size, top_K, flow_pool_P, app_type
                         now_video_ids.add(video_id)
             if len(rov_pool_recall) > 0:
                 recall_result_list[0] = rov_pool_recall
-    # merge return video
-    if ab_code == 60055 or ab_code==60065:
-        rov_pool_recall = []
-        if len(recall_result_list)>=2:
-            region_recall = recall_result_list[0]
-            return_video_reall = []
-            if app_type in [config_.APP_TYPE['LAO_HAO_KAN_VIDEO'], config_.APP_TYPE['ZUI_JING_QI']]:
-                return_video_reall, = recall_result_list[1]
-            else:
-                if len(recall_result_list)>=4:
-                    return_video_reall = recall_result_list[3]
-            #print("sim:",sim_recall)
-            now_video_ids = set('')
-            if len(region_recall)>0:
-                for video in region_recall:
-                    video_id = video.get('videoId')
-                    if video_id not in now_video_ids:
-                        rov_pool_recall.append(video)
-                        now_video_ids.add(video_id)
-            if len(return_video_reall)>0:
-                for video in return_video_reall:
-                    video_id = video.get('videoId')
-                    if video_id not in now_video_ids:
-                        rov_pool_recall.append(video)
-                        now_video_ids.add(video_id)
-            if len(rov_pool_recall)>0:
-                recall_result_list[0] = rov_pool_recall
-    # merge simrecall, merge u2i title recall
-    if ab_code == 60056:
+    # merge simrecall, merge u2i title recall, deepfm
+    if ab_code == 60056 or ab_code == 60071:
         rov_pool_recall = []
         if len(recall_result_list)>=2:
             region_recall = recall_result_list[0]
@@ -589,7 +554,7 @@ def video_old_recommend(request_id, mid, uid, size, top_K, flow_pool_P, app_type
                 recall_result_list[0] = rov_pool_recall
 
     #2. merge simrecall, return video
-    if ab_code == 60067 or ab_code==60068:
+    if ab_code == 60067 or ab_code==60068 or ab_code==60069 or ab_code==60070:
         rov_pool_recall = []
         if len(recall_result_list)>=2:
             region_recall = recall_result_list[0]
@@ -1730,9 +1695,9 @@ def video_homepage_recommend(request_id, mid, uid, size, app_type, algo_type,
     # return video, return video2
     # old video: 60056, test2
     elif ab_code == 60052 or ab_code == 60053 or ab_code == 60054 \
-            or ab_code == 60055 or ab_code == 60056 or ab_code==60057  \
-            or ab_code==60065 or ab_code == 60067 or ab_code==60068 \
-            or ab_code==60066:
+             or ab_code == 60056 or ab_code==60057  \
+             or ab_code == 60067 or ab_code==60068 \
+            or ab_code==60066 or ab_code == 60069 or ab_code == 60070 or ab_code == 60071:
         result, fea_info = video_old_recommend(request_id=request_id,
                                      mid=mid, uid=uid, app_type=app_type,
                                      size=size, top_K=top_K, flow_pool_P=flow_pool_P,
@@ -1850,9 +1815,9 @@ def video_relevant_recommend(request_id, video_id, mid, uid, size, app_type, ab_
                                  rule_key=rule_key, data_key=data_key, no_op_flag=no_op_flag,
                                  old_video_index=old_video_index, video_id=video_id,
                                  params=params, rule_key_30day=rule_key_30day, shield_config=shield_config)
-    elif ab_code == 60052 or ab_code == 60053 or ab_code == 60054 or ab_code == 60055 or \
-            ab_code == 60056 or ab_code==60057 or ab_code ==60065 or ab_code ==60067 \
-            or ab_code ==60068 or ab_code==60066:
+    elif ab_code == 60052 or ab_code == 60053 or ab_code == 60054  or \
+            ab_code == 60056 or ab_code==60057  or ab_code ==60067 \
+            or ab_code ==60068 or ab_code==60066 or ab_code == 60069 or ab_code == 60070 or ab_code == 60071:
         result, fea_info = video_old_recommend(request_id=request_id,
                                  mid=mid, uid=uid, app_type=app_type,
                                  size=size, top_K=top_K, flow_pool_P=flow_pool_P,
@@ -1896,11 +1861,6 @@ def video_relevant_recommend(request_id, video_id, mid, uid, size, app_type, ab_
     update_redis_st = time.time()
     if ab_code == 60047 or ab_code == 60048 or  ab_code == 60049:
          update_flow_redis_data(result=rank_result, app_type=app_type, mid=mid, top_K=top_K)
-    # elif ab_code == 60050 or ab_code == 60051:
-    #      update_redis_data(result=rank_result, app_type=app_type, mid=mid, top_K=top_K)
-    # elif ab_code == 60052 or ab_code == 60053 or ab_code == 60054 or ab_code == 60055 or \
-    #         ab_code == 60056 or ab_code==60057 or ab_code ==60065:
-    #      update_redis_data(result=rank_result, app_type=app_type, mid=mid, top_K=top_K)
     else:
          update_redis_data(result=rank_result, app_type=app_type, mid=mid, top_K=top_K)
     # log_.info({

+ 1 - 1
video_rank.py

@@ -627,7 +627,7 @@ def video_new_rank2(data, size, top_K, flow_pool_P, ab_code, mid, exp_config=Non
     rov_recall_rank = rec_recall_item_list
     #call rank service
     #flag_call_service = 0
-    if ab_code == 60066:
+    if ab_code == 60066 or ab_code == 60069 or ab_code == 60070 or ab_code == 60071:
         feature_dict = get_featurs(mid, data, size, top_K, flow_pool_P, env_dict)
         score_result = get_tf_serving_sores(feature_dict)
         if rec_recall_item_list and score_result and len(score_result) > 0 and len(score_result) == len(rec_recall_item_list):