|
|
@@ -79,8 +79,13 @@ public class RankStrategy4RegionMergeModelV566 extends RankStrategy4RegionMergeM
|
|
|
RecallUtils.extractRecall(mergeWeight.getOrDefault("return1Cate2Ros", 5.0).intValue(), param, Return1Cate2RosRecallStrategy.PUSH_FORM, setVideo, rovRecallRank);
|
|
|
//-------------------return1 cate2 str------------------
|
|
|
RecallUtils.extractRecall(mergeWeight.getOrDefault("return1Cate2Str", 5.0).intValue(), param, Return1Cate2StrRecallStrategy.PUSH_FORM, setVideo, rovRecallRank);
|
|
|
- //-------------------priori premium rovn------------------
|
|
|
- RecallUtils.extractRecall(mergeWeight.getOrDefault("prioriPremiumRovn", 0.0).intValue(), param, PrioriPremiumRovnRecallStrategy.PUSH_FORM, setVideo, rovRecallRank);
|
|
|
+ //-------------------social direct recall---------------
|
|
|
+ RecallUtils.extractRecall(mergeWeight.getOrDefault("socialDirect", 5.0).intValue(), param, SocialI2IDirectRecallStrategy.PUSH_FROM, setVideo, rovRecallRank);
|
|
|
+ //---------------social history share recall------------
|
|
|
+ RecallUtils.extractRecall(mergeWeight.getOrDefault("socialHistoryShare", 5.0).intValue(), param, SocialI2IHistoryShareRecallStrategy.PUSH_FROM, setVideo, rovRecallRank);
|
|
|
+ //---------------social history click recall------------
|
|
|
+ RecallUtils.extractRecall(mergeWeight.getOrDefault("socialHistoryClick", 5.0).intValue(), param, SocialI2IHistoryClickRecallStrategy.PUSH_FROM, setVideo, rovRecallRank);
|
|
|
+
|
|
|
|
|
|
//-------------------排-------------------
|
|
|
//-------------------序-------------------
|
|
|
@@ -118,10 +123,6 @@ public class RankStrategy4RegionMergeModelV566 extends RankStrategy4RegionMergeM
|
|
|
double xgbRovNegRate = mergeWeight.getOrDefault("xgbRovNegRate", 0.059);
|
|
|
double xgbNorPowerWeight = mergeWeight.getOrDefault("xgbNorPowerWeight", 1.22);
|
|
|
double xgbNorPowerExp = mergeWeight.getOrDefault("xgbNorPowerExp", 1.15);
|
|
|
- double prioriHighValue = mergeWeight.getOrDefault("prioriHighValue", 1.5);
|
|
|
- double prioriHighWeight = mergeWeight.getOrDefault("prioriHighWeight", 1.3);
|
|
|
- double prioriLowValue = mergeWeight.getOrDefault("prioriLowValue", 0.5);
|
|
|
- double prioriLowWeight = mergeWeight.getOrDefault("prioriLowWeight", 1.0);
|
|
|
Map<String, Map<String, String>> vid2MapFeature = this.getVideoRedisFeature(vids, "redis:vid_hasreturn_vor:");
|
|
|
|
|
|
// 获取权重
|
|
|
@@ -136,33 +137,27 @@ public class RankStrategy4RegionMergeModelV566 extends RankStrategy4RegionMergeM
|
|
|
}
|
|
|
Double cate2CoefficientDenominator = mergeWeight.getOrDefault("cate2CoefficientDenominator", 1d);
|
|
|
Map<String, String> contextInfo = getContextInfo(param);
|
|
|
- Map<String, Double> prioriVidProvinceRovn = this.getPrioriVidProvinceRovn(param.getProvince(), items, videoBaseInfoMap);
|
|
|
|
|
|
List<Video> result = new ArrayList<>();
|
|
|
for (RankItem item : items) {
|
|
|
double score;
|
|
|
- String vid = String.valueOf(item.getVideoId());
|
|
|
double fmRovOrigin = item.getScoreRov();
|
|
|
item.getScoresMap().put("fmRovOrigin", fmRovOrigin);
|
|
|
double fmRov = restoreScore(fmRovOrigin, xgbRovNegRate);
|
|
|
item.getScoresMap().put("fmRov", fmRov);
|
|
|
- double hasReturnRovScore = Double.parseDouble(vid2MapFeature.getOrDefault(vid, new HashMap<>()).getOrDefault("rov", "0"));
|
|
|
+ double hasReturnRovScore = Double.parseDouble(vid2MapFeature.getOrDefault(item.getVideoId() + "", new HashMap<>()).getOrDefault("rov", "0"));
|
|
|
item.getScoresMap().put("hasReturnRovScore", hasReturnRovScore);
|
|
|
double norXGBScore = item.getScoresMap().getOrDefault("NorXGBScore", 0d);
|
|
|
double newNorXGBScore = norPowerCalibration(xgbNorPowerWeight, xgbNorPowerExp, norXGBScore);
|
|
|
- double vor = Double.parseDouble(vid2MapFeature.getOrDefault(vid, new HashMap<>()).getOrDefault("vor", "0"));
|
|
|
+ double vor = Double.parseDouble(vid2MapFeature.getOrDefault(item.getVideoId() + "", new HashMap<>()).getOrDefault("vor", "0"));
|
|
|
item.getScoresMap().put("vor", vor);
|
|
|
|
|
|
- String vidMergeCate2 = this.findVideoMergeCate2(videoBaseInfoMap, vid);
|
|
|
+ String vidMergeCate2 = this.findVideoMergeCate2(videoBaseInfoMap, String.valueOf(item.getVideoId()));
|
|
|
Double scoreCoefficient = cate2Coefficient.getOrDefault(vidMergeCate2, 0d);
|
|
|
item.getScoresMap().put("scoreCoefficient", scoreCoefficient);
|
|
|
item.getScoresMap().put("cate2CoefficientDenominator", cate2CoefficientDenominator);
|
|
|
|
|
|
- double prioriWeight = getPrioriVidProvinceWeight(prioriHighValue, prioriHighWeight, prioriLowValue, prioriLowWeight, vid, prioriVidProvinceRovn);
|
|
|
- score = prioriWeight * fmRov * (0.1 + newNorXGBScore) * (0.1 + vor) * (1 + scoreCoefficient / cate2CoefficientDenominator);
|
|
|
- if (!ExtractorUtils.isDoubleEqualToZero(prioriWeight - 1.0)) {
|
|
|
- item.getScoresMap().put("prioriWeight", prioriWeight);
|
|
|
- }
|
|
|
+ score = fmRov * (0.1 + newNorXGBScore) * (0.1 + vor) * (1 + scoreCoefficient / cate2CoefficientDenominator);
|
|
|
|
|
|
Video video = item.getVideo();
|
|
|
video.setScore(score);
|
|
|
@@ -170,16 +165,16 @@ public class RankStrategy4RegionMergeModelV566 extends RankStrategy4RegionMergeM
|
|
|
video.setScoresMap(item.getScoresMap());
|
|
|
// video.setAllFeatureMap(item.getAllFeatureMap());
|
|
|
|
|
|
- String mergeCate2 = ExtractVideoMergeCate.parseMergeCate2(vid, videoBaseInfoMap);
|
|
|
+ String mergeCate2 = ExtractVideoMergeCate.parseMergeCate2(String.valueOf(item.getVideoId()), videoBaseInfoMap);
|
|
|
if (StringUtils.isNotBlank(mergeCate2)) {
|
|
|
video.getMergeCateList().add(mergeCate2);
|
|
|
}
|
|
|
|
|
|
- if (MapUtils.isNotEmpty(feature.getVideoFeature()) && MapUtils.isNotEmpty(feature.getVideoFeature().get(vid))) {
|
|
|
- video.getMetaFeatureMap().putAll(feature.getVideoFeature().get(vid));
|
|
|
+ if (MapUtils.isNotEmpty(feature.getVideoFeature()) && MapUtils.isNotEmpty(feature.getVideoFeature().get(item.getVideoId() + ""))) {
|
|
|
+ video.getMetaFeatureMap().putAll(feature.getVideoFeature().get(item.getVideoId() + ""));
|
|
|
}
|
|
|
- if (MapUtils.isNotEmpty(videoBaseInfoMap) && MapUtils.isNotEmpty(videoBaseInfoMap.get(vid))) {
|
|
|
- video.getMetaFeatureMap().putAll(videoBaseInfoMap.get(vid));
|
|
|
+ if (MapUtils.isNotEmpty(videoBaseInfoMap) && MapUtils.isNotEmpty(videoBaseInfoMap.get(item.getVideoId() + ""))) {
|
|
|
+ video.getMetaFeatureMap().putAll(videoBaseInfoMap.get(item.getVideoId() + ""));
|
|
|
}
|
|
|
if (MapUtils.isNotEmpty(headVideoInfo)) {
|
|
|
video.getMetaFeatureMap().put("head_video", headVideoInfo);
|