|
@@ -45,8 +45,8 @@ import java.util.stream.Collectors;
|
|
|
*/
|
|
|
@Service
|
|
|
@Slf4j
|
|
|
-public class RankStrategy4RegionMergeModelV1 extends RankService {
|
|
|
- @ApolloJsonValue("${rank.score.merge.weightv1:}")
|
|
|
+public class RankStrategy4RegionMergeModelV536 extends RankService {
|
|
|
+ @ApolloJsonValue("${rank.score.merge.weightv536:}")
|
|
|
private Map<String, Double> mergeWeight;
|
|
|
@ApolloJsonValue("${RankStrategy4DensityFilterV2:}")
|
|
|
private final Map<String, Map<String, Map<String, String>>> filterRules = new HashMap<>();
|
|
@@ -131,9 +131,9 @@ public class RankStrategy4RegionMergeModelV1 extends RankService {
|
|
|
|
|
|
//-------------------地域相关召回 融合+去重-------------------
|
|
|
List<Video> rovRecallRank = new ArrayList<>();
|
|
|
- List<Video> v1 = extractAndSort(param, RegionRealtimeRecallStrategyV1_default.PUSH_FORM);
|
|
|
+ List<Video> v1 = extractAndSort(param, RegionRealtimeRecallStrategyV1.PUSH_FORM);
|
|
|
List<Video> v2 = extractAndSort(param, RegionRealtimeRecallStrategyV2.PUSH_FORM);
|
|
|
- List<Video> v3 = extractAndSort(param, RegionRealtimeRecallStrategyV3_default.PUSH_FORM);
|
|
|
+ List<Video> v3 = extractAndSort(param, RegionRealtimeRecallStrategyV3.PUSH_FORM);
|
|
|
List<Video> v4 = extractAndSort(param, RegionRealtimeRecallStrategyV4.PUSH_FORM);
|
|
|
this.duplicate(setVideo, v1);
|
|
|
this.duplicate(setVideo, v2);
|
|
@@ -147,6 +147,9 @@ public class RankStrategy4RegionMergeModelV1 extends RankService {
|
|
|
//-------------------节日扶持召回 融合+去重-------------------
|
|
|
List<Video> v7 = extractAndSort(param, FestivalRecallStrategyV1.PUSH_FORM);
|
|
|
this.duplicate(setVideo, v7);
|
|
|
+ //-------------------同期高价值 融合+去重-------------------
|
|
|
+ List<Video> v8 = extractAndSort(param, RegionRealtimeRecallStrategyV5HighValue.PUSH_FORM);
|
|
|
+ this.duplicate(setVideo, v8);
|
|
|
|
|
|
rovRecallRank.addAll(oldRovs);
|
|
|
rovRecallRank.addAll(v1.subList(0, Math.min(mergeWeight.getOrDefault("v1", 20.0).intValue(), v1.size())));
|
|
@@ -156,6 +159,7 @@ public class RankStrategy4RegionMergeModelV1 extends RankService {
|
|
|
rovRecallRank.addAll(v5.subList(0, Math.min(mergeWeight.getOrDefault("v5", 10.0).intValue(), v5.size())));
|
|
|
rovRecallRank.addAll(v6.subList(0, Math.min(mergeWeight.getOrDefault("v6", 10.0).intValue(), v6.size())));
|
|
|
rovRecallRank.addAll(v7.subList(0, Math.min(mergeWeight.getOrDefault("v7", 10.0).intValue(), v7.size())));
|
|
|
+ rovRecallRank.addAll(v8.subList(0, Math.min(mergeWeight.getOrDefault("v8", 10.0).intValue(), v8.size())));
|
|
|
|
|
|
|
|
|
|
|
@@ -191,12 +195,12 @@ public class RankStrategy4RegionMergeModelV1 extends RankService {
|
|
|
List<Double> views = getStaticData(itemRealMap, datehours, "view_pv_list_1h");
|
|
|
List<Double> plays = getStaticData(itemRealMap, datehours, "play_pv_list_1h");
|
|
|
List<Double> shares = getStaticData(itemRealMap, datehours, "share_pv_list_1h");
|
|
|
- List<Double> returns = getStaticData(itemRealMap, datehours, "p_return_uv_list_1h");
|
|
|
+ List<Double> preturns = getStaticData(itemRealMap, datehours, "p_return_uv_list_1h");
|
|
|
List<Double> allreturns = getStaticData(itemRealMap, datehours, "return_uv_list_1h");
|
|
|
|
|
|
- List<Double> share2return = getRateData(returns, shares, 1.0, 1000.0);
|
|
|
+ List<Double> share2return = getRateData(preturns, shares, 1.0, 1000.0);
|
|
|
Double share2returnScore = calScoreWeight(share2return);
|
|
|
- List<Double> view2return = getRateData(returns, views, 1.0, 1000.0);
|
|
|
+ List<Double> view2return = getRateData(preturns, views, 1.0, 1000.0);
|
|
|
Double view2returnScore = calScoreWeight(view2return);
|
|
|
List<Double> view2play = getRateData(plays, views, 1.0, 1000.0);
|
|
|
Double view2playScore = calScoreWeight(view2play);
|
|
@@ -208,9 +212,9 @@ public class RankStrategy4RegionMergeModelV1 extends RankService {
|
|
|
item.scoresMap.put("play2shareScore", play2shareScore);
|
|
|
|
|
|
// 全部回流的rov和ros
|
|
|
- List<Double> share2allreturn = getRateData(returns, shares, 1.0, 10.0);
|
|
|
+ List<Double> share2allreturn = getRateData(allreturns, shares, 1.0, 10.0);
|
|
|
Double share2allreturnScore = calScoreWeight(share2allreturn);
|
|
|
- List<Double> view2allreturn = getRateData(returns, views, 0.0, 0.0);
|
|
|
+ List<Double> view2allreturn = getRateData(allreturns, views, 0.0, 0.0);
|
|
|
Double view2allreturnScore = calScoreWeight(view2allreturn);
|
|
|
item.scoresMap.put("share2allreturnScore", share2allreturnScore);
|
|
|
item.scoresMap.put("view2allreturnScore", view2allreturnScore);
|
|
@@ -220,7 +224,7 @@ public class RankStrategy4RegionMergeModelV1 extends RankService {
|
|
|
item.scoresMap.put("allreturnsScore", allreturnsScore);
|
|
|
|
|
|
// 平台回流
|
|
|
- Double preturnsScore = calScoreWeight(returns);
|
|
|
+ Double preturnsScore = calScoreWeight(preturns);
|
|
|
item.scoresMap.put("preturnsScore", preturnsScore);
|
|
|
|
|
|
// rov的趋势
|
|
@@ -234,15 +238,15 @@ public class RankStrategy4RegionMergeModelV1 extends RankService {
|
|
|
}
|
|
|
// 3 融合公式
|
|
|
List<Video> result = new ArrayList<>();
|
|
|
- double a = mergeWeight.getOrDefault("a", 0.1);
|
|
|
+ double a = mergeWeight.getOrDefault("a", 1.0);
|
|
|
double b = mergeWeight.getOrDefault("b", 0.0);
|
|
|
- double bb = mergeWeight.getOrDefault("bb", 0.005);
|
|
|
- double c = mergeWeight.getOrDefault("c", 0.0002);
|
|
|
+ double bb = mergeWeight.getOrDefault("bb", 0.1);
|
|
|
+ double c = mergeWeight.getOrDefault("c", 0.000001);
|
|
|
double d = mergeWeight.getOrDefault("d", 1.0);
|
|
|
double e = mergeWeight.getOrDefault("e", 1.0);
|
|
|
- double f = mergeWeight.getOrDefault("f", 0.1);
|
|
|
- double g = mergeWeight.getOrDefault("g", 1.0);
|
|
|
- double h = mergeWeight.getOrDefault("h", 20.0);
|
|
|
+ double f = mergeWeight.getOrDefault("f", 0.8);
|
|
|
+ double g = mergeWeight.getOrDefault("g", 2.0);
|
|
|
+ double h = mergeWeight.getOrDefault("h", 240.0);
|
|
|
double ifAdd = mergeWeight.getOrDefault("ifAdd", 1.0);
|
|
|
for (RankItem item : items){
|
|
|
double trendScore = item.scoresMap.getOrDefault("trendScore", 0.0) > 1E-8 ?
|