|
@@ -297,26 +297,30 @@ public class RankStrategy4RegionMergeModelV562 extends RankStrategy4RegionMergeM
|
|
|
|
|
|
List<RankItem> items = ScorerUtils.getScorerPipeline("feeds_score_config_20240609.conf")
|
|
|
.scoring(sceneFeatureMap, userFeatureMap, rankItems);
|
|
|
- String redisScoreKey = mergeWeight.getOrDefault("redisScoreKey", 0.0) < 0.5 ? "redis:vid_hasreturn_rov:" : "redis:vid_hasreturn_rov_7d:";
|
|
|
- Map<String, Map<String, String>> vid2MapFeature = this.getVideoRedisFeature(vids, redisScoreKey);
|
|
|
+ Map<String, Map<String, String>> vid2MapFeature = this.getVideoRedisFeature(vids, "redis:vid_hasreturn_rov:");
|
|
|
+ Map<String, Map<String, String>> vid2VovFeatureMap = this.getVideoRedisFeature(vids, "redis:vid_vov_1d3d:");
|
|
|
+ double alpha_vov = this.mergeWeight.getOrDefault("alpha_vov", 0.1);
|
|
|
List<Video> result = new ArrayList<>();
|
|
|
- String hasReturnRovKey = mergeWeight.getOrDefault("hasReturnRovKey", 1.0) < 0.5 ? "rate_1" : "rate_n";
|
|
|
- Double chooseFunction = mergeWeight.getOrDefault("chooseFunction", 0.0);
|
|
|
+// String hasReturnRovKey = mergeWeight.getOrDefault("hasReturnRovKey", 1.0) < 0.5 ? "rate_1" : "rate_n";
|
|
|
+// Double chooseFunction = mergeWeight.getOrDefault("chooseFunction", 0.0);
|
|
|
|
|
|
for (RankItem item : items) {
|
|
|
double score = 0.0;
|
|
|
+ double recommend_rate_1d = Double.parseDouble(vid2VovFeatureMap.getOrDefault(item.getVideoId() + "", new HashMap<>())
|
|
|
+ .getOrDefault("recommend_rate_1d", "0"));
|
|
|
+ double recommend_exp_per_1d = Double.parseDouble(vid2VovFeatureMap.getOrDefault(item.getVideoId() + "", new HashMap<>())
|
|
|
+ .getOrDefault("recommend_exp_per_1d", "0"));
|
|
|
+ double vorScore = recommend_rate_1d * recommend_exp_per_1d;
|
|
|
+ item.getScoresMap().put("recommend_rate_1d", recommend_rate_1d);
|
|
|
+ item.getScoresMap().put("recommend_exp_per_1d", recommend_exp_per_1d);
|
|
|
+ item.getScoresMap().put("vorScore", vorScore);
|
|
|
+ item.getScoresMap().put("alpha_vov", alpha_vov);
|
|
|
double hasReturnRovScore = Double.parseDouble(vid2MapFeature.getOrDefault(item.getVideoId() + "", new HashMap<>())
|
|
|
- .getOrDefault(hasReturnRovKey, "0"));
|
|
|
+ .getOrDefault("rate_n", "0"));
|
|
|
item.getScoresMap().put("hasReturnRovScore", hasReturnRovScore);
|
|
|
double fmRov = item.getScoreRov();
|
|
|
item.getScoresMap().put("fmRov", fmRov);
|
|
|
- if (chooseFunction == 0){
|
|
|
- score = fmRov * (1 + hasReturnRovScore);
|
|
|
- }else if (chooseFunction == 1){
|
|
|
- score = fmRov * (1 + Math.log(hasReturnRovScore + 1));
|
|
|
- }else {
|
|
|
- score = fmRov * (1 + hasReturnRovScore);
|
|
|
- }
|
|
|
+ score = fmRov * (1 + hasReturnRovScore) * (1.0 + alpha_vov * vorScore);
|
|
|
|
|
|
Video video = item.getVideo();
|
|
|
video.setScore(score);
|