丁云鹏 6 months ago
parent
commit
6e69690467

+ 1 - 1
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/rank/RankService.java

@@ -50,7 +50,7 @@ public class RankService {
     @ApolloJsonValue("${region.recall.return.size:{}}")
     protected Map<String, Map<String, Integer>> regionRecallReturnSize;
 
-    @Value("${word2vec.exp: 692}")
+    @Value("${word2vec.exp: 691}")
     protected String word2vecExp;
 
     public RankResult rank(RankParam param) {

+ 15 - 11
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/rank/strategy/RankStrategy4RegionMergeModelV562.java

@@ -10,6 +10,7 @@ import com.tzld.piaoquan.recommend.server.service.rank.extractor.ExtractorUtils;
 import com.tzld.piaoquan.recommend.server.service.recall.strategy.*;
 import com.tzld.piaoquan.recommend.server.service.score.ScorerUtils;
 import com.tzld.piaoquan.recommend.server.util.CommonCollectionUtils;
+import com.tzld.piaoquan.recommend.server.util.JSONUtils;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.collections4.MapUtils;
 import org.apache.commons.math3.util.Pair;
@@ -38,7 +39,7 @@ public class RankStrategy4RegionMergeModelV562 extends RankStrategy4RegionMergeM
     Map<String, double[]> bucketsMap = new HashMap<>();
     Map<String, Double> bucketsLen = new HashMap<>();
 
-    @Value("${similarity.concurrent: false}")
+    @Value("${similarity.concurrent: true}")
     private boolean similarityConcurrent;
 
     @Override
@@ -66,13 +67,13 @@ public class RankStrategy4RegionMergeModelV562 extends RankStrategy4RegionMergeM
         List<Video> rovRecallRank = new ArrayList<>(v0);
         //-------------------return相似召回------------------
         List<Video> v6 = extractAndSort(param, ReturnVideoRecallStrategy.PUSH_FORM);
-        v6 = v6.stream().filter(r-> !setVideo.contains(r.getVideoId())).collect(Collectors.toList());
+        v6 = v6.stream().filter(r -> !setVideo.contains(r.getVideoId())).collect(Collectors.toList());
         v6 = v6.subList(0, Math.min(mergeWeight.getOrDefault("v6", 5.0).intValue(), v6.size()));
         rovRecallRank.addAll(v6);
         setVideo.addAll(v6.stream().map(Video::getVideoId).collect(Collectors.toSet()));
         //-------------------新地域召回------------------
         List<Video> v1 = extractAndSort(param, RegionRealtimeRecallStrategyV1.PUSH_FORM);
-        v1 = v1.stream().filter(r-> !setVideo.contains(r.getVideoId())).collect(Collectors.toList());
+        v1 = v1.stream().filter(r -> !setVideo.contains(r.getVideoId())).collect(Collectors.toList());
         v1 = v1.subList(0, Math.min(mergeWeight.getOrDefault("v1", 5.0).intValue(), v1.size()));
         rovRecallRank.addAll(v1);
         setVideo.addAll(v1.stream().map(Video::getVideoId).collect(Collectors.toSet()));
@@ -240,6 +241,7 @@ public class RankStrategy4RegionMergeModelV562 extends RankStrategy4RegionMergeM
                                     Double[] doubles = null;
                                     if (param.getAbExpCodes().contains(word2vecExp)) {
                                         doubles = ExtractorUtils.funcC34567ForTagsNew(tags, title);
+
                                     } else {
                                         doubles = ExtractorUtils.funcC34567ForTags(tags, title);
                                     }
@@ -267,8 +269,12 @@ public class RankStrategy4RegionMergeModelV562 extends RankStrategy4RegionMergeM
                                 Double[] doubles = null;
                                 if (param.getAbExpCodes().contains(word2vecExp)) {
                                     doubles = ExtractorUtils.funcC34567ForTagsNew(tags, title);
+                                    log.info("funcC34567ForTagsNew\ttags={}\ttitle={}\tscores={}", tags, title,
+                                            JSONUtils.toJson(doubles));
                                 } else {
                                     doubles = ExtractorUtils.funcC34567ForTags(tags, title);
+                                    log.info("funcC34567ForTags\ttags={}\ttitle={}\tscores={}", tags, title,
+                                            JSONUtils.toJson(doubles));
                                 }
                                 featureMap.put(name + "_" + key_time + "_matchnum", doubles[0]);
                                 featureMap.put(name + "_" + key_time + "_maxscore", doubles[1]);
@@ -368,7 +374,6 @@ public class RankStrategy4RegionMergeModelV562 extends RankStrategy4RegionMergeM
         weightList.add(mergeWeight.getOrDefault("h1_ago_vov_w", 0.0));
 
 
-
         Map<String, Map<String, String>> vid2MapFeature = this.getVideoRedisFeature(vids, "redis:vid_hasreturn_rov:");
         Map<String, Map<String, String>> vid2VovFeatureMap = this.getVideoRedisFeature(vids, "redis:vid_vovhour4rank:");
         List<Video> result = new ArrayList<>();
@@ -417,7 +422,6 @@ public class RankStrategy4RegionMergeModelV562 extends RankStrategy4RegionMergeM
             item.getScoresMap().put("vov_thresh", vov_thresh);
 
 
-
             List<Double> featureList = new ArrayList<>(7);
             featureList.add(d2_ago_vov);
             featureList.add(d1_ago_vov);
@@ -430,13 +434,13 @@ public class RankStrategy4RegionMergeModelV562 extends RankStrategy4RegionMergeM
             // todo 线性加权 预测VoV
 
 
-            double vov_p = calculateScore(featureList, weightList,item,  vov_thresh, view_thresh, h1_ago_view,level50_vov,level_95_vov,beta_vov);
+            double vov_p = calculateScore(featureList, weightList, item, vov_thresh, view_thresh, h1_ago_view, level50_vov, level_95_vov, beta_vov);
 
 
             double hasReturnRovScore = Double.parseDouble(vid2MapFeature.getOrDefault(item.getVideoId() + "", new HashMap<>())
                     .getOrDefault("rate_n", "0"));
             item.getScoresMap().put("hasReturnRovScore", hasReturnRovScore);
-            score = fmRov * (1 + hasReturnRovScore)  * (1.0 + alpha_vov * vov_p);
+            score = fmRov * (1 + hasReturnRovScore) * (1.0 + alpha_vov * vov_p);
 
 
             item.getScoresMap().put("vov_p", vov_p);
@@ -463,8 +467,8 @@ public class RankStrategy4RegionMergeModelV562 extends RankStrategy4RegionMergeM
     }
 
 
-    private  double calculateScore(List<Double> featureList, List<Double> weightList,RankItem rankItem,
-                                        double vov_thresh, double view_thresh, double h1_ago_view,double level50_vov,double level_95_vov,double beta_vov) {
+    private double calculateScore(List<Double> featureList, List<Double> weightList, RankItem rankItem,
+                                  double vov_thresh, double view_thresh, double h1_ago_view, double level50_vov, double level_95_vov, double beta_vov) {
         // 检查 h1_ago_view 条件
         if (h1_ago_view == -2 || h1_ago_view == -1 || h1_ago_view < view_thresh) {
             rankItem.getScoresMap().put("origin_vov_p", 0d);
@@ -503,8 +507,8 @@ public class RankStrategy4RegionMergeModelV562 extends RankStrategy4RegionMergeM
         if (score < vov_thresh) {
             score = 0;
         } else {
-            double term1 = 1 / (1 + Math.exp(-1*beta_vov * (score - level50_vov)));
-            double term2 = 1 + Math.exp(-1*beta_vov * (level_95_vov - level50_vov));
+            double term1 = 1 / (1 + Math.exp(-1 * beta_vov * (score - level50_vov)));
+            double term2 = 1 + Math.exp(-1 * beta_vov * (level_95_vov - level50_vov));
             score = term1 * term2;
         }
         return score;