often 5 meses atrás
pai
commit
c9db6cc96d

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

@@ -142,8 +142,9 @@ class DSSMLayer(nn.Layer):
                 self._right_tower.append(act)
 
     def _process_features(self, features, embeddings):
-        # 将每个特征转换为embedding
         embedded_features = []
+        
+        # 1. 处理视频静态特征 (使用Embedding)
         for i in range(self.feature_num):
             feature = paddle.slice(
                 features, 
@@ -153,11 +154,35 @@ class DSSMLayer(nn.Layer):
             )
             feature = paddle.cast(feature, dtype='int64')
             embedded = embeddings[i](feature)
-
             embedded_features.append(embedded)
         
-        # 将所有embedding连接起来
-   
+        # 2. 处理长短期和品类表现的分桶特征 (使用Embedding)
+        start_idx = self.feature_num
+        for i in range(self.stat_features_num):
+            feature = paddle.slice(
+                features,
+                axes=[1],
+                starts=[start_idx + i],
+                ends=[start_idx + i + 1]
+            )
+            feature = paddle.cast(feature, dtype='int64')
+            embedded = embeddings[self.feature_num + i](feature)
+            embedded_features.append(embedded)
+        
+        # 3. 处理原始值特征 (使用Linear)
+        start_idx = self.feature_num + self.stat_features_num
+        for i in range(self.stat_features_num * 2):
+            feature = paddle.slice(
+                features,
+                axes=[1],
+                starts=[start_idx + i],
+                ends=[start_idx + i + 1]
+            )
+            feature = paddle.cast(feature, dtype='float32')
+            embedded = embeddings[self.feature_num + self.stat_features_num + i](feature)
+            embedded_features.append(embedded)
+        
+        # 将所有embedded特征连接起来
         return paddle.concat(embedded_features, axis=1)
 
     def forward(self, left_features, right_features, is_infer=False):