|
@@ -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)
|
|
|
|
|
|
|