|
@@ -19,8 +19,6 @@ import java.io.BufferedReader;
|
|
|
import java.io.IOException;
|
|
|
import java.io.InputStream;
|
|
|
import java.io.InputStreamReader;
|
|
|
-import java.time.LocalDateTime;
|
|
|
-import java.time.ZoneOffset;
|
|
|
import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
@@ -54,7 +52,6 @@ public class RankService680 {
|
|
|
Map<String, Double> midTimeDiffMap = this.parseC1FeatureListToTimeDiffMap(midActionList, ts);
|
|
|
Map<String, Double> actionStaticMap = this.parseC1FeatureListToActionStaticMap(midActionList);
|
|
|
|
|
|
- Map<String, String> d1Feature = videoFeature.getOrDefault("alg_cid_feature_vid_cf", new HashMap<>());
|
|
|
Map<String, String> d2Feature = videoFeature.getOrDefault("alg_cid_feature_vid_cf_rank", new HashMap<>());
|
|
|
|
|
|
Map<String, Map<String, Double>> vidRankMaps = this.parseD2FeatureMap(d2Feature);
|
|
@@ -71,6 +68,8 @@ public class RankService680 {
|
|
|
adRankItem.setAdVerId(dto.getAdVerId());
|
|
|
adRankItem.setVideoId(request.getVideoId());
|
|
|
adRankItem.setCpa(dto.getCpa());
|
|
|
+ adRankItem.setId(dto.getAdId());
|
|
|
+ adRankItem.setCampaignId(dto.getCampaignId());
|
|
|
|
|
|
String cidStr = dto.getCreativeId().toString();
|
|
|
Map<String, String> cidFeatureMap = new HashMap<>();
|
|
@@ -79,6 +78,9 @@ public class RankService680 {
|
|
|
|
|
|
Map<String, Map<String, String>> adVerFeature = allAdVerFeature.getOrDefault(dto.getAdVerId(), new HashMap<>());
|
|
|
|
|
|
+ Map<String, String> d1Feature = cidFeature.getOrDefault("alg_cid_feature_vid_cf", new HashMap<>());
|
|
|
+
|
|
|
+
|
|
|
this.handleB1Feature(b1Feature, cidFeatureMap, cidStr);
|
|
|
|
|
|
this.handleB2ToB5AndB8Feature(cidFeature, adVerFeature, cidFeatureMap);
|
|
@@ -109,37 +111,24 @@ public class RankService680 {
|
|
|
}
|
|
|
|
|
|
// 打分排序
|
|
|
- List<AdRankItem> items = ScorerUtils.getScorerPipeline(ScorerUtils.LR_ROV_SCORE_20240626)
|
|
|
+ List<AdRankItem> result = ScorerUtils.getScorerPipeline(ScorerUtils.LR_ROV_SCORE_20240626)
|
|
|
.scoring(new HashMap<>(), userFeatureMap, adRankItems);
|
|
|
|
|
|
- List<AdRankItem> result = new ArrayList<>(items.size());
|
|
|
- for (AdRankItem item : items) {
|
|
|
- AdRankItem adRankItem = new AdRankItem();
|
|
|
- adRankItem.setAdId(item.getAdId());
|
|
|
- adRankItem.setCreativeCode(item.getCreativeCode());
|
|
|
- adRankItem.setAdVerId(item.getAdVerId());
|
|
|
- adRankItem.setVideoId(item.getVideoId());
|
|
|
- adRankItem.setLrScore(item.getLrScore());
|
|
|
-
|
|
|
- adRankItem.setScore(item.getLrScore() * item.getCpa());
|
|
|
-
|
|
|
- adRankItem.getFeatureMap().putAll(item.getFeatureMap());
|
|
|
- adRankItem.getFeatureMap().putAll(userFeatureMap);
|
|
|
-
|
|
|
+ for (AdRankItem item : result) {
|
|
|
+ item.setScore(item.getLrScore() * item.getCpa());
|
|
|
+ item.getFeatureMap().putAll(userFeatureMap);
|
|
|
if (MapUtils.isNotEmpty(videoFeature)) {
|
|
|
- adRankItem.getMetaFeatureMap().putAll(videoFeature);
|
|
|
+ item.getMetaFeatureMap().putAll(videoFeature);
|
|
|
}
|
|
|
if (MapUtils.isNotEmpty(userFeature)) {
|
|
|
- adRankItem.getMetaFeatureMap().putAll(userFeature);
|
|
|
+ item.getMetaFeatureMap().putAll(userFeature);
|
|
|
}
|
|
|
if (allAdVerFeature.containsKey(item.getAdVerId())) {
|
|
|
- adRankItem.getMetaFeatureMap().putAll(allAdVerFeature.get(item.getAdVerId()));
|
|
|
+ item.getMetaFeatureMap().putAll(allAdVerFeature.get(item.getAdVerId()));
|
|
|
}
|
|
|
if (allCidFeature.containsKey(String.valueOf(item.getAdId()))) {
|
|
|
- adRankItem.getMetaFeatureMap().putAll(allCidFeature.get(String.valueOf(item.getAdId())));
|
|
|
+ item.getMetaFeatureMap().putAll(allCidFeature.get(String.valueOf(item.getAdId())));
|
|
|
}
|
|
|
-
|
|
|
- result.add(adRankItem);
|
|
|
}
|
|
|
|
|
|
Collections.sort(result);
|
|
@@ -388,10 +377,10 @@ public class RankService680 {
|
|
|
Map<String, Double> midTimeDiffMap = new HashMap<>();
|
|
|
for (TupleMapEntry<Tuple5> entry : midActionList) {
|
|
|
String cid = entry.key;
|
|
|
- long tsHistory = Long.parseLong(entry.value.f1);
|
|
|
- long click = Long.parseLong(entry.value.f2);
|
|
|
- long conver = Long.parseLong(entry.value.f3);
|
|
|
- long d = (ts - tsHistory) / 3600 / 24;
|
|
|
+ double tsHistory = Double.parseDouble(entry.value.f1);
|
|
|
+ double click = Double.parseDouble(entry.value.f2);
|
|
|
+ double conver = Double.parseDouble(entry.value.f3);
|
|
|
+ double d = (ts - tsHistory) / 3600 / 24;
|
|
|
if (!midTimeDiffMap.containsKey("timediff_view_" + cid)) {
|
|
|
midTimeDiffMap.put("timediff_view_" + cid, NumUtil.div(1, d));
|
|
|
}
|