|
@@ -14,17 +14,10 @@ public class VlogShareLRFeatureExtractor extends LRBytesFeatureExtractorBase {
|
|
public VlogShareLRFeatureExtractor() {
|
|
public VlogShareLRFeatureExtractor() {
|
|
super();
|
|
super();
|
|
}
|
|
}
|
|
- public VlogShareLRFeatureExtractor(FeatureUsage usage) {
|
|
|
|
- super(usage);
|
|
|
|
- }
|
|
|
|
- public VlogShareLRFeatureExtractor(FeatureUsage usage, double userCtrGroup, double videoCtrGroup) {
|
|
|
|
- super(usage, userCtrGroup, videoCtrGroup);
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
|
|
|
|
// TODO
|
|
// TODO
|
|
// 补充待抽取的context feature
|
|
// 补充待抽取的context feature
|
|
- private void getContextFeatures(RequestContextBytesFeature requestContextBytes) {
|
|
|
|
|
|
+ public void getContextFeatures(RequestContextBytesFeature requestContextBytes) {
|
|
makeFea(VlogFeatureGroup.MACHINEINFO_BRAND, requestContextBytes.getMachineinfo_brand());
|
|
makeFea(VlogFeatureGroup.MACHINEINFO_BRAND, requestContextBytes.getMachineinfo_brand());
|
|
makeFea(VlogFeatureGroup.MACHINEINFO_MODEL, requestContextBytes.getMachineinfo_model());
|
|
makeFea(VlogFeatureGroup.MACHINEINFO_MODEL, requestContextBytes.getMachineinfo_model());
|
|
makeFea(VlogFeatureGroup.MACHINEINFO_PLATFORM, requestContextBytes.getMachineinfo_platform());
|
|
makeFea(VlogFeatureGroup.MACHINEINFO_PLATFORM, requestContextBytes.getMachineinfo_platform());
|
|
@@ -39,16 +32,96 @@ public class VlogShareLRFeatureExtractor extends LRBytesFeatureExtractorBase {
|
|
}
|
|
}
|
|
|
|
|
|
//TODO
|
|
//TODO
|
|
- private void getUserFeatures(UserBytesFeature user) {
|
|
|
|
- makeFea(VlogFeatureGroup.USER_CYCLE_BUCKET_7DAY,user.getUser_cycle_bucket_7days());
|
|
|
|
- makeFea(VlogFeatureGroup.USER_SHARE_BUCKET_30DAY,user.getUser_share_bucket_30days());
|
|
|
|
- makeFea(VlogFeatureGroup.USER_SHARE_BUCKET_30DAY,user.getUser_cycle_bucket_30days());
|
|
|
|
|
|
+ public void getUserFeatures(UserBytesFeature user) {
|
|
|
|
+ makeFea(VlogFeatureGroup.USER_CYCLE_BUCKET_7DAY, user.getUser_cycle_bucket_7days());
|
|
|
|
+ makeFea(VlogFeatureGroup.USER_SHARE_BUCKET_30DAY, user.getUser_share_bucket_30days());
|
|
|
|
+ makeFea(VlogFeatureGroup.USER_SHARE_BUCKET_30DAY, user.getUser_cycle_bucket_30days());
|
|
|
|
+
|
|
|
|
+ // 1day features
|
|
|
|
+ makeFea(VlogFeatureGroup.USER_1DAY_EXP, user.getDay1_cnt_features().get("exp"));
|
|
|
|
+ makeFea(VlogFeatureGroup.USER_1DAY_CLICK, user.getDay1_cnt_features().get("click"));
|
|
|
|
+ makeFea(VlogFeatureGroup.USER_1DAY_SHARE, user.getDay1_cnt_features().get("share"));
|
|
|
|
+ makeFea(VlogFeatureGroup.USER_1DAY_RETURN, user.getDay1_cnt_features().get("return"));
|
|
|
|
+ makeFea(VlogFeatureGroup.USER_1DAY_CTR, user.getDay1_cnt_features().get("ctr"));
|
|
|
|
+ makeFea(VlogFeatureGroup.USER_1DAY_STR, user.getDay1_cnt_features().get("str"));
|
|
|
|
+ makeFea(VlogFeatureGroup.USER_1DAY_ROV, user.getDay1_cnt_features().get("rov"));
|
|
|
|
+ makeFea(VlogFeatureGroup.USER_1DAY_ROS, user.getDay1_cnt_features().get("ros"));
|
|
|
|
+
|
|
|
|
+ // 3day features
|
|
|
|
+ makeFea(VlogFeatureGroup.USER_3DAY_EXP, user.getDay3_cnt_features().get("exp"));
|
|
|
|
+ makeFea(VlogFeatureGroup.USER_3DAY_CLICK, user.getDay3_cnt_features().get("click"));
|
|
|
|
+ makeFea(VlogFeatureGroup.USER_3DAY_SHARE, user.getDay3_cnt_features().get("share"));
|
|
|
|
+ makeFea(VlogFeatureGroup.USER_3DAY_RETURN, user.getDay3_cnt_features().get("return"));
|
|
|
|
+ makeFea(VlogFeatureGroup.USER_3DAY_CTR, user.getDay3_cnt_features().get("ctr"));
|
|
|
|
+ makeFea(VlogFeatureGroup.USER_3DAY_STR, user.getDay3_cnt_features().get("str"));
|
|
|
|
+ makeFea(VlogFeatureGroup.USER_3DAY_ROV, user.getDay3_cnt_features().get("rov"));
|
|
|
|
+ makeFea(VlogFeatureGroup.USER_3DAY_ROS, user.getDay3_cnt_features().get("ros"));
|
|
|
|
+
|
|
|
|
+ // 7day features
|
|
|
|
+ makeFea(VlogFeatureGroup.USER_7DAY_EXP, user.getDay7_cnt_features().get("exp"));
|
|
|
|
+ makeFea(VlogFeatureGroup.USER_7DAY_CLICK, user.getDay7_cnt_features().get("click"));
|
|
|
|
+ makeFea(VlogFeatureGroup.USER_7DAY_SHARE, user.getDay7_cnt_features().get("share"));
|
|
|
|
+ makeFea(VlogFeatureGroup.USER_7DAY_RETURN, user.getDay7_cnt_features().get("return"));
|
|
|
|
+ makeFea(VlogFeatureGroup.USER_7DAY_CTR, user.getDay7_cnt_features().get("ctr"));
|
|
|
|
+ makeFea(VlogFeatureGroup.USER_7DAY_STR, user.getDay7_cnt_features().get("str"));
|
|
|
|
+ makeFea(VlogFeatureGroup.USER_7DAY_ROV, user.getDay7_cnt_features().get("rov"));
|
|
|
|
+ makeFea(VlogFeatureGroup.USER_7DAY_ROS, user.getDay7_cnt_features().get("ros"));
|
|
|
|
+
|
|
|
|
+ // 3month features
|
|
|
|
+ makeFea(VlogFeatureGroup.USER_3MONTH_EXP, user.getMonth3_cnt_features().get("exp"));
|
|
|
|
+ makeFea(VlogFeatureGroup.USER_3MONTH_CLICK, user.getMonth3_cnt_features().get("click"));
|
|
|
|
+ makeFea(VlogFeatureGroup.USER_3MONTH_SHARE, user.getMonth3_cnt_features().get("share"));
|
|
|
|
+ makeFea(VlogFeatureGroup.USER_3MONTH_RETURN, user.getMonth3_cnt_features().get("return"));
|
|
|
|
+ makeFea(VlogFeatureGroup.USER_3MONTH_CTR, user.getMonth3_cnt_features().get("ctr"));
|
|
|
|
+ makeFea(VlogFeatureGroup.USER_3MONTH_STR, user.getMonth3_cnt_features().get("str"));
|
|
|
|
+ makeFea(VlogFeatureGroup.USER_3MONTH_ROV, user.getMonth3_cnt_features().get("rov"));
|
|
|
|
+ makeFea(VlogFeatureGroup.USER_3MONTH_ROS, user.getMonth3_cnt_features().get("ros"));
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
- private void getItemFeature(VideoBytesFeature videoBytesFeature) {
|
|
|
|
- makeFea(VlogFeatureGroup.VIDEOID, videoBytesFeature.getVideoId());
|
|
|
|
- makeFea(VlogFeatureGroup.UP_ID, videoBytesFeature.getUpId());
|
|
|
|
|
|
+ public void getItemFeature(VideoBytesFeature item) {
|
|
|
|
+ makeFea(VlogFeatureGroup.VIDEOID, item.getVideoId());
|
|
|
|
+ makeFea(VlogFeatureGroup.UP_ID, item.getUpId());
|
|
|
|
+ // 1day features
|
|
|
|
+ makeFea(VlogFeatureGroup.ITEM_1DAY_EXP, item.getItem_day1_cnt_features().get("exp"));
|
|
|
|
+ makeFea(VlogFeatureGroup.ITEM_1DAY_CLICK, item.getItem_day1_cnt_features().get("click"));
|
|
|
|
+ makeFea(VlogFeatureGroup.ITEM_1DAY_SHARE, item.getItem_day1_cnt_features().get("share"));
|
|
|
|
+ makeFea(VlogFeatureGroup.ITEM_1DAY_RETURN, item.getItem_day1_cnt_features().get("return"));
|
|
|
|
+ makeFea(VlogFeatureGroup.ITEM_1DAY_CTR, item.getItem_day1_cnt_features().get("ctr"));
|
|
|
|
+ makeFea(VlogFeatureGroup.ITEM_1DAY_STR, item.getItem_day1_cnt_features().get("str"));
|
|
|
|
+ makeFea(VlogFeatureGroup.ITEM_1DAY_ROV, item.getItem_day1_cnt_features().get("rov"));
|
|
|
|
+ makeFea(VlogFeatureGroup.ITEM_1DAY_ROS, item.getItem_day1_cnt_features().get("ros"));
|
|
|
|
+
|
|
|
|
+ // 3day features
|
|
|
|
+ makeFea(VlogFeatureGroup.ITEM_3DAY_EXP, item.getItem_day1_cnt_features().get("exp"));
|
|
|
|
+ makeFea(VlogFeatureGroup.ITEM_3DAY_CLICK, item.getItem_day1_cnt_features().get("click"));
|
|
|
|
+ makeFea(VlogFeatureGroup.ITEM_3DAY_SHARE, item.getItem_day1_cnt_features().get("share"));
|
|
|
|
+ makeFea(VlogFeatureGroup.ITEM_3DAY_RETURN, item.getItem_day1_cnt_features().get("return"));
|
|
|
|
+ makeFea(VlogFeatureGroup.ITEM_3DAY_CTR, item.getItem_day1_cnt_features().get("ctr"));
|
|
|
|
+ makeFea(VlogFeatureGroup.ITEM_3DAY_STR, item.getItem_day1_cnt_features().get("str"));
|
|
|
|
+ makeFea(VlogFeatureGroup.ITEM_3DAY_ROV, item.getItem_day1_cnt_features().get("rov"));
|
|
|
|
+ makeFea(VlogFeatureGroup.ITEM_3DAY_ROS, item.getItem_day1_cnt_features().get("ros"));
|
|
|
|
+
|
|
|
|
+ // 7day features
|
|
|
|
+ makeFea(VlogFeatureGroup.ITEM_7DAY_EXP, item.getItem_day7_cnt_features().get("exp"));
|
|
|
|
+ makeFea(VlogFeatureGroup.ITEM_7DAY_CLICK, item.getItem_day7_cnt_features().get("click"));
|
|
|
|
+ makeFea(VlogFeatureGroup.ITEM_7DAY_SHARE, item.getItem_day7_cnt_features().get("share"));
|
|
|
|
+ makeFea(VlogFeatureGroup.ITEM_7DAY_RETURN, item.getItem_day7_cnt_features().get("return"));
|
|
|
|
+ makeFea(VlogFeatureGroup.ITEM_7DAY_CTR, item.getItem_day7_cnt_features().get("ctr"));
|
|
|
|
+ makeFea(VlogFeatureGroup.ITEM_7DAY_STR, item.getItem_day7_cnt_features().get("str"));
|
|
|
|
+ makeFea(VlogFeatureGroup.ITEM_7DAY_ROV, item.getItem_day7_cnt_features().get("rov"));
|
|
|
|
+ makeFea(VlogFeatureGroup.ITEM_7DAY_ROS, item.getItem_day7_cnt_features().get("ros"));
|
|
|
|
+
|
|
|
|
+ // 3month features
|
|
|
|
+ makeFea(VlogFeatureGroup.ITEM_3MONTH_EXP, item.getItem_month3_cnt_features().get("exp"));
|
|
|
|
+ makeFea(VlogFeatureGroup.ITEM_3MONTH_CLICK, item.getItem_month3_cnt_features().get("click"));
|
|
|
|
+ makeFea(VlogFeatureGroup.ITEM_3MONTH_SHARE, item.getItem_month3_cnt_features().get("share"));
|
|
|
|
+ makeFea(VlogFeatureGroup.ITEM_3MONTH_RETURN, item.getItem_month3_cnt_features().get("return"));
|
|
|
|
+ makeFea(VlogFeatureGroup.ITEM_3MONTH_CTR, item.getItem_month3_cnt_features().get("ctr"));
|
|
|
|
+ makeFea(VlogFeatureGroup.ITEM_3MONTH_STR, item.getItem_month3_cnt_features().get("str"));
|
|
|
|
+ makeFea(VlogFeatureGroup.ITEM_3MONTH_ROV, item.getItem_month3_cnt_features().get("rov"));
|
|
|
|
+ makeFea(VlogFeatureGroup.ITEM_3MONTH_ROS, item.getItem_month3_cnt_features().get("ros"));
|
|
|
|
+
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
@@ -61,8 +134,7 @@ public class VlogShareLRFeatureExtractor extends LRBytesFeatureExtractorBase {
|
|
getContextFeatures(requestContextBytesFeature);
|
|
getContextFeatures(requestContextBytesFeature);
|
|
getItemFeature(videoBytesFeature);
|
|
getItemFeature(videoBytesFeature);
|
|
|
|
|
|
-
|
|
|
|
- LRSamples.Builder lr = com.tzld.piaoquan.recommend.server.gen.recommend.LRSamples.newBuilder();
|
|
|
|
|
|
+ LRSamples.Builder lr = com.tzld.piaoquan.recommend.server.gen.recommend.LRSamples.newBuilder();
|
|
lr.setGroupNum(groupCount);
|
|
lr.setGroupNum(groupCount);
|
|
List<FeatureGroup> keys = new ArrayList<>(features.keySet());
|
|
List<FeatureGroup> keys = new ArrayList<>(features.keySet());
|
|
int count = 0;
|
|
int count = 0;
|
|
@@ -80,14 +152,4 @@ public class VlogShareLRFeatureExtractor extends LRBytesFeatureExtractorBase {
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
}
|
|
}
|