often 5 mēneši atpakaļ
vecāks
revīzija
42f8cb6d4b

+ 23 - 23
recommend-model-produce/src/main/python/models/dssm/net.py

@@ -7,30 +7,30 @@ class DSSMLayer(nn.Layer):
     def __init__(self, feature_nums=[5,5,5,5,5], embedding_dim=8, output_dim=16, 
                  hidden_layers=[40, 32], hidden_acts=["relu", "relu"]):
         super(DSSMLayer, self).__init__()
-        tag_features_dict = {
-            "vid":3407301,
-            "cate1":42,
-            "cate2":67,
-            "video_style":6517,
-            "valid_time":728,
-            "captions_color":656,
-            "audience_age_group":65,
-            "audience_value_type":61,
-            "font_size":49,
-            "cover_persons_num":44,
-            "audience_gender":37,
-            "sentiment_tendency":11,
-            "video_type":8,
-            "background_music_type":6,
-            "captions":3,
-            "has_end_credit_guide":2
-        }
+        tag_features_dict = [
+            {"vid": 3407301},
+            {"cate1": 42},
+            {"cate2": 67},
+            {"video_style": 6517},
+            {"valid_time": 728},
+            {"captions_color": 656},
+            {"audience_age_group": 65},
+            {"audience_value_type": 61},
+            {"font_size": 49},
+            {"cover_persons_num": 44},
+            {"audience_gender": 37},
+            {"sentiment_tendency": 11},
+            {"video_type": 8},
+            {"background_music_type": 6},
+            {"captions": 3},
+            {"has_end_credit_guide": 2}
+        ]
                 
         self.stat_features_num = 50
         self.stat_features_num_embeddings = 100
         
-        self.feature_num = len(list(tag_features_dict.values()))
-        feature_nums = list(tag_features_dict.values())
+        self.feature_num = len(tag_features_dict)
+        feature_nums = [list(d.values())[0] for d in tag_features_dict]
         self.embedding_dim = embedding_dim
         self.output_dim = output_dim
         # 第一层的输入维度是所有特征的embedding拼接
@@ -246,7 +246,7 @@ class DSSMLayer(nn.Layer):
 
 
 
-
+    # 当前左右双塔共享参数
     def get_vectors(self, left_features, right_features):
         """获取两个视频的16维特征向量"""
         # 处理左视频特征
@@ -261,11 +261,11 @@ class DSSMLayer(nn.Layer):
 
         
         # 处理右视频特征
-        right_embedded = self._process_features(right_features, self.right_embeddings)
+        right_embedded = self._process_features(right_features, self.left_embeddings)
         # right_vec = right_embedded
         right_vec = paddle.reshape(right_embedded, [-1, self.feature_num * self.embedding_dim])  
 
-        for layer in self._right_tower:
+        for layer in self._left_tower:
             right_vec = layer(right_vec)
 
             

+ 1 - 1
recommend-model-produce/src/main/python/models/dssm/static_model.py

@@ -17,7 +17,7 @@ class StaticModel():
         self.hidden_layers = self.config.get("hyper_parameters.hidden_layers", [40, 32])
         self.hidden_acts = self.config.get("hyper_parameters.hidden_acts", ["relu", "relu"])
         self.learning_rate = self.config.get("hyper_parameters.optimizer.learning_rate", 0.001)
-        self.margin = self.config.get("hyper_parameters.margin", 0.3)  # 用于损失函数的margin参数
+        self.margin = self.config.get("hyper_parameters.margin", 0.0)  # 用于损失函数的margin参数
         self.feature_num = len(self.feature_nums)
         self.is_infer = self.config.get("hyper_parameters.is_infer", False)
     def create_feeds(self, is_infer=False):