|
@@ -2,6 +2,7 @@ package com.tzld.piaoquan.recommend.server.service.rank.strategy;
|
|
|
|
|
|
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
+import com.ctrip.framework.apollo.spring.annotation.ApolloJsonValue;
|
|
|
import com.google.common.reflect.TypeToken;
|
|
|
import com.tzld.piaoquan.recommend.server.common.base.RankItem;
|
|
|
import com.tzld.piaoquan.recommend.server.model.Video;
|
|
@@ -33,8 +34,8 @@ import java.util.stream.Collectors;
|
|
|
@Service
|
|
|
@Slf4j
|
|
|
public class RankStrategy4RegionMergeModelV4 extends RankService {
|
|
|
-// @ApolloJsonValue("${video.model.weightv3:}")
|
|
|
-// private Map<String, Double> mergeWeight;
|
|
|
+ @ApolloJsonValue("${rank.score.merge.weight:}")
|
|
|
+ private Map<String, Double> mergeWeight;
|
|
|
final private String CLASS_NAME = this.getClass().getSimpleName();
|
|
|
public void duplicate(Set<Long> setVideo, List<Video> videos){
|
|
|
Iterator<Video> iterator = videos.iterator();
|
|
@@ -151,12 +152,13 @@ public class RankStrategy4RegionMergeModelV4 extends RankService {
|
|
|
}
|
|
|
// 3 融合公式
|
|
|
List<Video> result = new ArrayList<>();
|
|
|
+ double alpha = this.mergeWeight.getOrDefault("alpha", 1.0);
|
|
|
for (RankItem item : items){
|
|
|
double trendScore = item.scoresMap.getOrDefault("trendScore", 0.0) > 0.0 ?
|
|
|
item.scoresMap.getOrDefault("trendScore", 0.0) : 0.0;
|
|
|
double score = item.getScoreStr() *
|
|
|
item.scoresMap.getOrDefault("share2returnScore", 0.0)
|
|
|
- + trendScore
|
|
|
+ + alpha * trendScore
|
|
|
;
|
|
|
Video video = item.getVideo();
|
|
|
video.setScore(score);
|