|
@@ -70,18 +70,19 @@ public class RankService {
|
|
|
}
|
|
|
|
|
|
List<Video> rovRecallRank = mergeAndRankRovRecall(param);
|
|
|
- log.info("mergeAndRankRovRecall rovRecallRank={}", JSONUtils.toJson(rovRecallRank));
|
|
|
+ // log.info("mergeAndRankRovRecall rovRecallRank={}", JSONUtils.toJson(rovRecallRank));
|
|
|
List<Video> flowPoolRank = mergeAndRankFlowPoolRecall(param);
|
|
|
- log.info("mergeAndRankFlowPoolRecall flowPoolRank={}", JSONUtils.toJson(flowPoolRank));
|
|
|
+ // log.info("mergeAndRankFlowPoolRecall flowPoolRank={}", JSONUtils.toJson(flowPoolRank));
|
|
|
|
|
|
removeDuplicate(param, rovRecallRank, flowPoolRank);
|
|
|
|
|
|
- log.info("removeDuplicate rovRecallRank={}, flowPoolRank={}",
|
|
|
- JSONUtils.toJson(rovRecallRank),
|
|
|
- JSONUtils.toJson(flowPoolRank));
|
|
|
+// log.info("removeDuplicate rovRecallRank={}, flowPoolRank={}",
|
|
|
+// JSONUtils.toJson(rovRecallRank),
|
|
|
+// JSONUtils.toJson(flowPoolRank));
|
|
|
|
|
|
// 融合排序
|
|
|
- return mergeAndSort(param, rovRecallRank, flowPoolRank); }
|
|
|
+ return mergeAndSort(param, rovRecallRank, flowPoolRank);
|
|
|
+ }
|
|
|
|
|
|
public List<Video> mergeAndRankRovRecall(RankParam param) {
|
|
|
// TODO ab test
|
|
@@ -135,8 +136,8 @@ public class RankService {
|
|
|
.map(t -> param.getRankKeyPrefix() + t.getVideoId())
|
|
|
.collect(Collectors.toList());
|
|
|
List<String> videoScores = redisTemplate.opsForValue().multiGet(videoIdKeys);
|
|
|
- log.info("rank mergeAndRankRovRecall videoIdKeys={}, videoScores={}", JSONUtils.toJson(videoIdKeys),
|
|
|
- JSONUtils.toJson(videoScores));
|
|
|
+// log.info("rank mergeAndRankRovRecall videoIdKeys={}, videoScores={}", JSONUtils.toJson(videoIdKeys),
|
|
|
+// JSONUtils.toJson(videoScores));
|
|
|
if (CollectionUtils.isNotEmpty(videoScores)
|
|
|
&& videoScores.size() == rovRecallRank.size()) {
|
|
|
for (int i = 0; i < videoScores.size(); i++) {
|
|
@@ -144,11 +145,11 @@ public class RankService {
|
|
|
}
|
|
|
Collections.sort(rovRecallRank, Comparator.comparingDouble(o -> -o.getSortScore()));
|
|
|
}
|
|
|
- }else if(param.getAbCode().equals("60098")) {
|
|
|
+ } else if (param.getAbCode().equals("60098")) {
|
|
|
|
|
|
int sizeNew = param.getSize();
|
|
|
removeDuplicate(rovRecallRank);
|
|
|
- rovRecallRank = rovRecallRank.size() <= sizeNew ? rovRecallRank: rovRecallRank.subList(0, sizeNew);
|
|
|
+ rovRecallRank = rovRecallRank.size() <= sizeNew ? rovRecallRank : rovRecallRank.subList(0, sizeNew);
|
|
|
|
|
|
// merge sim recall 和 return recall
|
|
|
rovRecallRank.addAll(extractAndSort(param, SimHotVideoRecallStrategy.PUSH_FORM));
|
|
@@ -160,8 +161,8 @@ public class RankService {
|
|
|
.map(t -> param.getRankKeyPrefix() + t.getVideoId())
|
|
|
.collect(Collectors.toList());
|
|
|
List<String> videoScores = redisTemplate.opsForValue().multiGet(videoIdKeys);
|
|
|
- log.info("rank mergeAndRankRovRecall videoIdKeys={}, videoScores={}", JSONUtils.toJson(videoIdKeys),
|
|
|
- JSONUtils.toJson(videoScores));
|
|
|
+// log.info("rank mergeAndRankRovRecall videoIdKeys={}, videoScores={}", JSONUtils.toJson(videoIdKeys),
|
|
|
+// JSONUtils.toJson(videoScores));
|
|
|
if (CollectionUtils.isNotEmpty(videoScores)
|
|
|
&& videoScores.size() == rovRecallRank.size()) {
|
|
|
for (int i = 0; i < videoScores.size(); i++) {
|
|
@@ -194,14 +195,14 @@ public class RankService {
|
|
|
|
|
|
private List<Video> mergeAndRankRovRecallNew(RankParam param) {
|
|
|
UserFeature userFeature = featureRemoteService.getUserFeature(param.getMid());
|
|
|
- log.info("userFeature = {}", JSONUtils.toJson(userFeature));
|
|
|
+// log.info("userFeature = {}", JSONUtils.toJson(userFeature));
|
|
|
|
|
|
List<Video> recallVideos = param.getRecallResult().mergeRecallVideos();
|
|
|
List<RankItem> rankItems = CommonCollectionUtils.toList(recallVideos, RankItem::new);
|
|
|
|
|
|
List<Long> videoIds = CommonCollectionUtils.toListDistinct(recallVideos, Video::getVideoId);
|
|
|
Map<Long, ItemFeature> videoFeatureMap = featureRemoteService.getVideoFeatureMap(videoIds);
|
|
|
- log.info("ItemFeature = {}", JSONUtils.toJson(videoFeatureMap));
|
|
|
+// log.info("ItemFeature = {}", JSONUtils.toJson(videoFeatureMap));
|
|
|
|
|
|
for (RankItem rankItem : rankItems) {
|
|
|
rankItem.setItemFeature(videoFeatureMap.get(rankItem.getVideoId()));
|
|
@@ -209,10 +210,10 @@ public class RankService {
|
|
|
|
|
|
// TODO
|
|
|
ScoreParam scoreParam = convert(param);
|
|
|
- log.info("scoreParam {}", JSONUtils.toJson(scoreParam));
|
|
|
+ // log.info("scoreParam {}", JSONUtils.toJson(scoreParam));
|
|
|
List<RankItem> rovRecallScore = ScorerUtils.getScorerPipeline(ScorerUtils.BASE_CONF)
|
|
|
.scoring(scoreParam, userFeature, rankItems);
|
|
|
- log.info("mergeAndRankRovRecallNew rovRecallScore={}", JSONUtils.toJson(rovRecallScore));
|
|
|
+ // log.info("mergeAndRankRovRecallNew rovRecallScore={}", JSONUtils.toJson(rovRecallScore));
|
|
|
|
|
|
return CommonCollectionUtils.toList(rovRecallScore, i -> {
|
|
|
// hard code 将排序分数 赋值给video的sortScore
|
|
@@ -390,5 +391,4 @@ public class RankService {
|
|
|
}
|
|
|
|
|
|
|
|
|
-
|
|
|
}
|