Bladeren bron

feat:添加定向打分融合

zhaohaipeng 10 maanden geleden
bovenliggende
commit
0fb615d431

+ 12 - 7
ad-engine-service/src/main/java/com/tzld/piaoquan/ad/engine/service/score/RankService680.java

@@ -78,7 +78,7 @@ public class RankService680 {
 
             Map<String, Map<String, String>> adVerFeature = allAdVerFeature.getOrDefault(dto.getAdVerId(), new HashMap<>());
 
-            this.handleB1Feature(b1Feature, cidFeatureMap);
+            this.handleB1Feature(b1Feature, cidFeatureMap, cidStr);
 
             this.handleB2ToB5AndB8Feature(cidFeature, adVerFeature, cidFeatureMap);
 
@@ -160,7 +160,8 @@ public class RankService680 {
         return featureService.getFeature(cidList, adVerIdList, param);
     }
 
-    private void handleB1Feature(Map<String, String> b1Feature, Map<String, String> cidFeatureMap) {
+    private void handleB1Feature(Map<String, String> b1Feature, Map<String, String> cidFeatureMap, String cid) {
+        cidFeatureMap.put("cid_" + cid, "1");
         if (StringUtils.isNotBlank(b1Feature.get("adid"))) {
             String adId = b1Feature.get("adid");
             cidFeatureMap.put("adid_" + adId, "1");
@@ -484,11 +485,15 @@ public class RankService680 {
             String name = entry.getKey();
             double score = Double.parseDouble(entry.getValue());
             // 注意:0值、不在分桶文件中的特征,会被过滤掉。
-            if (score > 1E-8 && this.bucketsMap.containsKey(name)) {
-                double[] buckets = this.bucketsMap.get(name);
-                int bucketNum = buckets.length + 1;
-                Double scoreNew = 1.0 / bucketNum * (ExtractorUtils.findInsertPosition(buckets, score) + 1.0);
-                newFeatureMap.put(name, String.valueOf(scoreNew));
+            if (score > 1E-8) {
+                if (this.bucketsMap.containsKey(name)) {
+                    double[] buckets = this.bucketsMap.get(name);
+                    int bucketNum = buckets.length + 1;
+                    Double scoreNew = 1.0 / bucketNum * (ExtractorUtils.findInsertPosition(buckets, score) + 1.0);
+                    newFeatureMap.put(name, String.valueOf(scoreNew));
+                } else {
+                    newFeatureMap.put(name, String.valueOf(score));
+                }
             }
         }
 

+ 1 - 1
ad-engine-service/src/main/java/com/tzld/piaoquan/ad/engine/service/score/impl/RankServiceImpl.java

@@ -94,8 +94,8 @@ public class RankServiceImpl implements RankService {
         List<JSONObject> collect = adRankItems.stream().map(i -> {
             JSONObject json = new JSONObject();
             json.put("cid", i.getAdId());
+            json.put("lrScore", i.getLrScore());
             json.put("score", i.getScore());
-            json.put("metaFeatureMap", i.getMetaFeatureMap());
             json.put("allFeatureMap", i.getFeatureMap());
             return json;
         }).collect(Collectors.toList());