Bladeren bron

Merge branch 'feature_20250319_zhaohaipeng_add_usersharedept' of algorithm/recommend-server into master

zhaohaipeng 1 maand geleden
bovenliggende
commit
ae18ea54df

+ 22 - 21
recommend-server-client/src/main/java/com/tzld/piaoquan/recommend/server/gen/recommend/Recommend.java

@@ -56,7 +56,7 @@ public final class Recommend {
       "\n2com/tzld/piaoquan/recommend/server/rec" +
       "ommend.proto\032\031google/protobuf/any.proto\032" +
       "/com/tzld/piaoquan/recommend/server/comm" +
-      "on.proto\"\334\004\n\020RecommendRequest\022\022\n\nrequest" +
+      "on.proto\"\364\004\n\020RecommendRequest\022\022\n\nrequest" +
       "_id\030\001 \001(\t\022\013\n\003mid\030\002 \001(\t\022\013\n\003uid\030\003 \001(\t\022\014\n\004s" +
       "ize\030\004 \001(\005\022\020\n\010app_type\030\005 \001(\005\022\021\n\tcity_code" +
       "\030\006 \001(\t\022\025\n\rprovince_code\030\007 \001(\t\022\023\n\013ab_exp_" +
@@ -70,25 +70,26 @@ public final class Recommend {
       "page_source\030\023 \001(\t\022\023\n\013category_id\030\024 \001(\t\022\026" +
       "\n\016hot_scene_type\030\025 \001(\003\022\021\n\tclient_ip\030\026 \001(" +
       "\t\022\024\n\014version_code\030\027 \001(\005\022\026\n\016root_source_i" +
-      "d\030\030 \001(\t\032.\n\014EventIdEntry\022\013\n\003key\030\001 \001(\t\022\r\n\005" +
-      "value\030\002 \001(\t:\0028\001\"\177\n\020MachineInfoProto\022\r\n\005b" +
-      "rand\030\001 \001(\t\022\r\n\005model\030\002 \001(\t\022\020\n\010platform\030\003 " +
-      "\001(\t\022\023\n\013sdk_version\030\004 \001(\t\022\016\n\006system\030\005 \001(\t" +
-      "\022\026\n\016wechat_version\030\006 \001(\t\"H\n\021RecommendRes" +
-      "ponse\022\027\n\006result\030\001 \001(\0132\007.Result\022\032\n\005video\030" +
-      "\002 \003(\0132\013.VideoProto\"\336\001\n\nVideoProto\022\020\n\010vid" +
-      "eo_id\030\001 \001(\003\022\021\n\trov_score\030\002 \001(\001\022\021\n\tpush_f" +
-      "rom\030\003 \001(\t\022\017\n\007ab_code\030\004 \001(\t\022\022\n\nsort_score" +
-      "\030\005 \001(\001\022\020\n\010position\030\006 \001(\005\022\021\n\tflow_pool\030\007 " +
-      "\001(\t\022\027\n\017is_in_flow_pool\030\010 \001(\005\022\014\n\004rand\030\t \001" +
-      "(\001\022\'\n\017push_from_index\030\n \003(\0132\016.PushFromIn" +
-      "dex\"1\n\rPushFromIndex\022\021\n\tpush_from\030\001 \001(\t\022" +
-      "\r\n\005index\030\002 \003(\t2\212\001\n\020RecommendService\022:\n\021H" +
-      "omepageRecommend\022\021.RecommendRequest\032\022.Re" +
-      "commendResponse\022:\n\021RelevantRecommend\022\021.R" +
-      "ecommendRequest\032\022.RecommendResponseB7\n0c" +
-      "om.tzld.piaoquan.recommend.server.gen.re" +
-      "commendP\001\210\001\001b\006proto3"
+      "d\030\030 \001(\t\022\026\n\016userShareDepth\030\031 \001(\005\032.\n\014Event" +
+      "IdEntry\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(\t:\0028\001\"" +
+      "\177\n\020MachineInfoProto\022\r\n\005brand\030\001 \001(\t\022\r\n\005mo" +
+      "del\030\002 \001(\t\022\020\n\010platform\030\003 \001(\t\022\023\n\013sdk_versi" +
+      "on\030\004 \001(\t\022\016\n\006system\030\005 \001(\t\022\026\n\016wechat_versi" +
+      "on\030\006 \001(\t\"H\n\021RecommendResponse\022\027\n\006result\030" +
+      "\001 \001(\0132\007.Result\022\032\n\005video\030\002 \003(\0132\013.VideoPro" +
+      "to\"\336\001\n\nVideoProto\022\020\n\010video_id\030\001 \001(\003\022\021\n\tr" +
+      "ov_score\030\002 \001(\001\022\021\n\tpush_from\030\003 \001(\t\022\017\n\007ab_" +
+      "code\030\004 \001(\t\022\022\n\nsort_score\030\005 \001(\001\022\020\n\010positi" +
+      "on\030\006 \001(\005\022\021\n\tflow_pool\030\007 \001(\t\022\027\n\017is_in_flo" +
+      "w_pool\030\010 \001(\005\022\014\n\004rand\030\t \001(\001\022\'\n\017push_from_" +
+      "index\030\n \003(\0132\016.PushFromIndex\"1\n\rPushFromI" +
+      "ndex\022\021\n\tpush_from\030\001 \001(\t\022\r\n\005index\030\002 \003(\t2\212" +
+      "\001\n\020RecommendService\022:\n\021HomepageRecommend" +
+      "\022\021.RecommendRequest\032\022.RecommendResponse\022" +
+      ":\n\021RelevantRecommend\022\021.RecommendRequest\032" +
+      "\022.RecommendResponseB7\n0com.tzld.piaoquan" +
+      ".recommend.server.gen.recommendP\001\210\001\001b\006pr" +
+      "oto3"
     };
     descriptor = com.google.protobuf.Descriptors.FileDescriptor
       .internalBuildGeneratedFileFrom(descriptorData,
@@ -101,7 +102,7 @@ public final class Recommend {
     internal_static_RecommendRequest_fieldAccessorTable = new
       com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
         internal_static_RecommendRequest_descriptor,
-        new java.lang.String[] { "RequestId", "Mid", "Uid", "Size", "AppType", "CityCode", "ProvinceCode", "AbExpCode", "EventId", "VersionAuditStatus", "RecommendTraceId", "VideoId", "City", "Province", "MachineInfo", "NewExpGroup", "SessionId", "SubSessionId", "PageSource", "CategoryId", "HotSceneType", "ClientIp", "VersionCode", "RootSourceId", });
+        new java.lang.String[] { "RequestId", "Mid", "Uid", "Size", "AppType", "CityCode", "ProvinceCode", "AbExpCode", "EventId", "VersionAuditStatus", "RecommendTraceId", "VideoId", "City", "Province", "MachineInfo", "NewExpGroup", "SessionId", "SubSessionId", "PageSource", "CategoryId", "HotSceneType", "ClientIp", "VersionCode", "RootSourceId", "UserShareDepth", });
     internal_static_RecommendRequest_EventIdEntry_descriptor =
       internal_static_RecommendRequest_descriptor.getNestedTypes().get(0);
     internal_static_RecommendRequest_EventIdEntry_fieldAccessorTable = new

+ 80 - 0
recommend-server-client/src/main/java/com/tzld/piaoquan/recommend/server/gen/recommend/RecommendRequest.java

@@ -220,6 +220,11 @@ private static final long serialVersionUID = 0L;
             rootSourceId_ = s;
             break;
           }
+          case 200: {
+
+            userShareDepth_ = input.readInt32();
+            break;
+          }
           default: {
             if (!parseUnknownField(
                 input, unknownFields, extensionRegistry, tag)) {
@@ -1057,6 +1062,21 @@ private static final long serialVersionUID = 0L;
     }
   }
 
+  public static final int USERSHAREDEPTH_FIELD_NUMBER = 25;
+  private int userShareDepth_;
+  /**
+   * <pre>
+   * default -1
+   * </pre>
+   *
+   * <code>int32 userShareDepth = 25;</code>
+   * @return The userShareDepth.
+   */
+  @java.lang.Override
+  public int getUserShareDepth() {
+    return userShareDepth_;
+  }
+
   private byte memoizedIsInitialized = -1;
   @java.lang.Override
   public final boolean isInitialized() {
@@ -1146,6 +1166,9 @@ private static final long serialVersionUID = 0L;
     if (!getRootSourceIdBytes().isEmpty()) {
       com.google.protobuf.GeneratedMessageV3.writeString(output, 24, rootSourceId_);
     }
+    if (userShareDepth_ != 0) {
+      output.writeInt32(25, userShareDepth_);
+    }
     unknownFields.writeTo(output);
   }
 
@@ -1246,6 +1269,10 @@ private static final long serialVersionUID = 0L;
     if (!getRootSourceIdBytes().isEmpty()) {
       size += com.google.protobuf.GeneratedMessageV3.computeStringSize(24, rootSourceId_);
     }
+    if (userShareDepth_ != 0) {
+      size += com.google.protobuf.CodedOutputStream
+        .computeInt32Size(25, userShareDepth_);
+    }
     size += unknownFields.getSerializedSize();
     memoizedSize = size;
     return size;
@@ -1312,6 +1339,8 @@ private static final long serialVersionUID = 0L;
         != other.getVersionCode()) return false;
     if (!getRootSourceId()
         .equals(other.getRootSourceId())) return false;
+    if (getUserShareDepth()
+        != other.getUserShareDepth()) return false;
     if (!unknownFields.equals(other.unknownFields)) return false;
     return true;
   }
@@ -1379,6 +1408,8 @@ private static final long serialVersionUID = 0L;
     hash = (53 * hash) + getVersionCode();
     hash = (37 * hash) + ROOT_SOURCE_ID_FIELD_NUMBER;
     hash = (53 * hash) + getRootSourceId().hashCode();
+    hash = (37 * hash) + USERSHAREDEPTH_FIELD_NUMBER;
+    hash = (53 * hash) + getUserShareDepth();
     hash = (29 * hash) + unknownFields.hashCode();
     memoizedHashCode = hash;
     return hash;
@@ -1585,6 +1616,8 @@ private static final long serialVersionUID = 0L;
 
       rootSourceId_ = "";
 
+      userShareDepth_ = 0;
+
       return this;
     }
 
@@ -1645,6 +1678,7 @@ private static final long serialVersionUID = 0L;
       result.clientIp_ = clientIp_;
       result.versionCode_ = versionCode_;
       result.rootSourceId_ = rootSourceId_;
+      result.userShareDepth_ = userShareDepth_;
       onBuilt();
       return result;
     }
@@ -1786,6 +1820,9 @@ private static final long serialVersionUID = 0L;
         rootSourceId_ = other.rootSourceId_;
         onChanged();
       }
+      if (other.getUserShareDepth() != 0) {
+        setUserShareDepth(other.getUserShareDepth());
+      }
       this.mergeUnknownFields(other.unknownFields);
       onChanged();
       return this;
@@ -3534,6 +3571,49 @@ private static final long serialVersionUID = 0L;
       onChanged();
       return this;
     }
+
+    private int userShareDepth_ ;
+    /**
+     * <pre>
+     * default -1
+     * </pre>
+     *
+     * <code>int32 userShareDepth = 25;</code>
+     * @return The userShareDepth.
+     */
+    @java.lang.Override
+    public int getUserShareDepth() {
+      return userShareDepth_;
+    }
+    /**
+     * <pre>
+     * default -1
+     * </pre>
+     *
+     * <code>int32 userShareDepth = 25;</code>
+     * @param value The userShareDepth to set.
+     * @return This builder for chaining.
+     */
+    public Builder setUserShareDepth(int value) {
+      
+      userShareDepth_ = value;
+      onChanged();
+      return this;
+    }
+    /**
+     * <pre>
+     * default -1
+     * </pre>
+     *
+     * <code>int32 userShareDepth = 25;</code>
+     * @return This builder for chaining.
+     */
+    public Builder clearUserShareDepth() {
+      
+      userShareDepth_ = 0;
+      onChanged();
+      return this;
+    }
     @java.lang.Override
     public final Builder setUnknownFields(
         final com.google.protobuf.UnknownFieldSet unknownFields) {

+ 10 - 0
recommend-server-client/src/main/java/com/tzld/piaoquan/recommend/server/gen/recommend/RecommendRequestOrBuilder.java

@@ -308,4 +308,14 @@ public interface RecommendRequestOrBuilder extends
    */
   com.google.protobuf.ByteString
       getRootSourceIdBytes();
+
+  /**
+   * <pre>
+   * default -1
+   * </pre>
+   *
+   * <code>int32 userShareDepth = 25;</code>
+   * @return The userShareDepth.
+   */
+  int getUserShareDepth();
 }

+ 1 - 0
recommend-server-client/src/main/proto/com/tzld/piaoquan/recommend/server/recommend.proto

@@ -33,6 +33,7 @@ message RecommendRequest {
   string client_ip = 22;
   int32 version_code = 23;
   string root_source_id = 24;
+  int32 userShareDepth = 25; // default -1
 }
 
 message MachineInfoProto {

+ 1 - 0
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/model/RecommendParam.java

@@ -44,5 +44,6 @@ public class RecommendParam {
     private Integer versionCode;
 
     private String rootSourceId;
+    private Integer userShareDepth;
 }
 

+ 1 - 1
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/RecommendService.java

@@ -353,7 +353,7 @@ public class RecommendService {
         param.setClientIp(request.getClientIp());
         param.setVersionCode(request.getVersionCode());
         param.setRootSourceId(request.getRootSourceId());
-
+        param.setUserShareDepth(request.getUserShareDepth());
         return param;
     }
 

+ 24 - 13
recommend-server-service/src/main/java/com/tzld/piaoquan/recommend/server/service/rank/strategy/RankStrategy4RegionMergeModelV569.java

@@ -212,17 +212,7 @@ public class RankStrategy4RegionMergeModelV569 extends RankStrategy4RegionMergeM
             Map<String, String> vidFeatureMap = vid2MapFeature.getOrDefault(String.valueOf(item.getVideoId()), new HashMap<>());
 
             double vor24h = Double.parseDouble(vidFeatureMap.getOrDefault("vor_24h", "0"));
-            if (calcVorMode == 1d) {
-                vor24h = ExtractorUtils.calLog(vor24h);
-            } else if (calcVorMode == 2d) {
-                double vorCoefficient = mergeWeight.getOrDefault("vor_coefficient", 1d);
-                item.getScoresMap().put("vorCoefficient", vorCoefficient);
-                vor24h = vorCoefficient * vor24h;
-            } else if (calcVorMode == 3d) {
-                double vorPower = mergeWeight.getOrDefault("vor_power", 1d);
-                item.getScoresMap().put("vorPower", vorPower);
-                vor24h = Math.pow(vor24h, vorPower);
-            }
+            double vor = this.handleVor(vor24h, calcVorMode, item, mergeWeight);
 
             double originScoreRos = item.getScoreRos();
             double scoreRos = this.handleRos(originScoreRos, calcRosMode, item, mergeWeight);
@@ -231,13 +221,14 @@ public class RankStrategy4RegionMergeModelV569 extends RankStrategy4RegionMergeM
             double vorAdd = mergeWeight.getOrDefault("vor_add", 0.1);
 
             item.getScoresMap().put("hasReturnRovScore", scoreRos);
-            item.getScoresMap().put("vor", vor24h);
+            item.getScoresMap().put("originVor", vor24h);
+            item.getScoresMap().put("vor", vor);
             item.getScoresMap().put("calcVorMode", calcVorMode);
             item.getScoresMap().put("calcRosMode", calcRosMode);
             item.getScoresMap().put("RosXGBScore", originScoreRos);
             item.getScoresMap().put("rosAdd", rosAdd);
             item.getScoresMap().put("vorAdd", vorAdd);
-            score = fmRov * (rosAdd + scoreRos) * (vorAdd + vor24h);
+            score = fmRov * (rosAdd + scoreRos) * (vorAdd + vor);
 
 
             Video video = item.getVideo();
@@ -300,6 +291,26 @@ public class RankStrategy4RegionMergeModelV569 extends RankStrategy4RegionMergeM
         return scoreRos;
     }
 
+    private double handleVor(double originVor, double calcVorMode, RankItem item, Map<String, Double> mergeWeight) {
+        if (originVor == 0) {
+            return 0;
+        }
+        double vor = originVor;
+        if (calcVorMode == 1d) {
+            vor = ExtractorUtils.calLog(originVor);
+        } else if (calcVorMode == 2d) {
+            double vorCoefficient = mergeWeight.getOrDefault("vor_coefficient", 1d);
+            item.getScoresMap().put("vorCoefficient", vorCoefficient);
+            vor = vorCoefficient * originVor;
+        } else if (calcVorMode == 3d) {
+            double vorPower = mergeWeight.getOrDefault("vor_power", 1d);
+            item.getScoresMap().put("vorPower", vorPower);
+            vor = Math.pow(originVor, vorPower);
+        }
+
+        return vor;
+    }
+
     /**
      * ros模型打分
      */