alibaba / euler

A distributed graph deep learning framework.
Apache License 2.0
2.89k stars 559 forks source link

_target_encoder和_context_encoder分别用于什么情况呀 #187

Open AI-Friend opened 4 years ago

AI-Friend commented 4 years ago

请问node2vec.py 里的_target_encoder和_context_encoder分别用于什么情况呀?我看它俩都是 encoders.ShallowEncoder() 初始化参数也一模一样; 另外encoders.ShallowEncoder里init里有dim表示embedding_size,还有一个参数embedding_dim,这两个dim用于什么情况呢? 最后还想问一下combiner="add"和combiner=“concat", 这两个的用于什么场景呢? 感谢开源与解答!

alinamimi commented 4 years ago

参考https://github.com/alibaba/euler/blob/e5387e1a4e8345ffd6f7e39fc4052a7abf6f7b56/tf_euler/python/models/base.py#L99 _target_encoder 是对src节点encode _context_encoder 是对pos和neg 节点 encode 这里我们对两种节点采用两个网络进行encode,当然也可以只用一个网络

combiner="add"和combiner=“concat" 只是对不同embedding聚合的方式,没有哪种场景一定用哪个,类似于一种调参,哪个效果好用哪个

alinamimi commented 4 years ago

encoders.ShallowEncoder里init里有dim表示 encoder的输出维度 embedding_dim表示每个feature的embedding 维度

AI-Friend commented 4 years ago

明白啦,非常感谢!

wximo commented 4 years ago

参考

https://github.com/alibaba/euler/blob/e5387e1a4e8345ffd6f7e39fc4052a7abf6f7b56/tf_euler/python/models/base.py#L99

_target_encoder 是对src节点encode _context_encoder 是对pos和neg 节点 encode 这里我们对两种节点采用两个网络进行encode,当然也可以只用一个网络 combiner="add"和combiner=“concat" 只是对不同embedding聚合的方式,没有哪种场景一定用哪个,类似于一种调参,哪个效果好用哪个

请问为什么要用两个网络进行encode呢?