Exemple #1
0
    def __init__(self,
                 node_type,
                 path_patterns,
                 max_id,
                 dim,
                 sparse_feature_dims,
                 feature_ids,
                 feature_embedding_dim=16,
                 walk_len=3,
                 left_win_size=1,
                 right_win_size=1,
                 num_negs=5,
                 gamma=5,
                 *args,
                 **kwargs):
        super(LsHNE, self).__init__(node_type, path_patterns, max_id, *args,
                                    **kwargs)
        self.node_type = node_type
        self.path_patterns = path_patterns
        self.max_id = max_id
        self.dim = dim
        self.walk_len = walk_len
        self.left_win_size = left_win_size
        self.right_win_size = right_win_size
        self.num_negs = num_negs
        self.view_num = len(path_patterns)
        if self.view_num < 1:
            raise ValueError('View Number must be bigger than 1, got{}'.format(
                self.view_num))
        if not isinstance(sparse_feature_dims, list):
            raise TypeError(
                'Expect list for sparse feature dimsgot {}.'.format(
                    type(sparse_feature_dims).__name__))
        self.sparse_feature_dims = sparse_feature_dims
        self.feature_ids = feature_ids
        self.feature_embedding_dim = feature_embedding_dim
        self.raw_fdim = feature_embedding_dim * len(feature_ids)
        self.feature_embedding_layer = []
        for d in sparse_feature_dims:
            self.feature_embedding_layer.append(
                layers.SparseEmbedding(d,
                                       feature_embedding_dim,
                                       combiner="sum"))

        self.hidden_layer = [{}] * self.view_num
        for i in range(0, self.view_num):
            self.hidden_layer[i]['src'] = layers.Dense(256)
            self.hidden_layer[i]['tar'] = layers.Dense(256)
        self.out_layer = [{}] * self.view_num
        for i in range(0, self.view_num):
            self.out_layer[i]['src'] = layers.Dense(self.dim)
            self.out_layer[i]['tar'] = layers.Dense(self.dim)

        self.att_vec = tf.get_variable(
            'att_vec',
            shape=[self.view_num, self.dim],
            initializer=tf.truncated_normal_initializer(stddev=0.1))
        self.gamma = gamma
Exemple #2
0
 def create_sparse_embeddings(feature_dims):
     sparse_embeddings = [
         layers.SparseEmbedding(feature_dim, 16)
         for feature_dim in feature_dims
     ]
     return sparse_embeddings