xiangwang1223 / knowledge_graph_attention_network

KGAT: Knowledge Graph Attention Network for Recommendation, KDD2019
MIT License
1.06k stars 310 forks source link

Why baselines don't contain KRPN? #6

Open 649435349 opened 5 years ago

649435349 commented 5 years ago

KPRN is also your paper and, based on my intuition, KPRN will perform better than KGAT.

xiangwang1223 commented 5 years ago

Hi, Thanks for your interest. There are two reasons:

  1. KPRN belongs to the path-based paradigm and thus requires to extract qualified paths, which needs labor-intensive feature engineering. Such pre-processing is prohibitive when the dataset arrives million scales.
  2. Theoretically, most connections between users and items can be encoded in embedding propagation process; whereas KPRN hardly extracts all connections. Experimentally, MCRec is a path-based method and KGAT performs much better.

Thanks.

649435349 commented 5 years ago

Hi, Thanks for your interest. There are two reasons:

  1. KPRN belongs to the path-based paradigm and thus requires to extract qualified paths, which needs labor-intensive feature engineering. Such pre-processing is prohibitive when the dataset arrives million scales.
  2. Theoretically, most connections between users and items can be encoded in embedding propagation process; whereas KPRN hardly extracts all connections. Experimentally, MCRec is a path-based method and KGAT performs much better.

Thanks.

Well, for the first reason, I think the complexity of KPRN is smaller than that of KGAT. In another word, KRPN is just the part of KGAT. When the dataset arrives million scales, the complexity KGAT is much more intolerant. For the second reason, MCRec don't contain the information of KGs in its model, though you may contain it. So it is unfair to compare it with KGAT. In my opinion, whatever path-based methods or graph-based methods, now we mainly focus on how to integrate KG into recommendation. We need to distinguish which one is better. I will appreciate it if you can give the performance of KPRN on the three datasets. Sincerely.

xiangwang1223 commented 5 years ago

Hi,

  1. Actually, the distinctions between KGAT and KPRN are from the differences between graph neural network (GNN)-based and path-based techniques. Hence, KPRN is not a part of KGAT. Please find more discussions in our KGAT paper.

  2. MCRec is designed for heterogeneous information network (HIN), which is a similar concept with knowledge graph. MCRec should be a baseline representing such path- (or meta-path-) based methods.

  3. The datasets of KGAT and the code of KPRN are both available in github. We appreciate any guys to do such experiments, although I personally think that it might be a wise way to avoid extracting, filterring, and storing million or even larger scale of paths :)

Thanks!

649435349 commented 5 years ago

Hi,

  1. Actually, the distinctions between KGAT and KPRN are from the differences between graph neural network (GNN)-based and path-based techniques. Hence, KPRN is not a part of KGAT. Please find more discussions in our KGAT paper.
  2. MCRec is designed for heterogeneous information network (HIN), which is a similar concept with knowledge graph. MCRec should be a baseline representing such path- (or meta-path-) based methods.
  3. The datasets of KGAT and the code of KPRN are both available in github. We appreciate any guys to do such experiments, although I personally think that it might be a wise way to avoid extracting, filterring, and storing million or even larger scale of paths :)

Thanks!

Well, 'part of' means that the information of KGAT is the superset of that of KRPN. If we set the depth of KGAT as 4, here we can get the path: u1->r1->i1->r2->e1->r2->i2. If i2 is the target item, it's just one path in KPRN. However, KGAT contains much more paths and involves too much information. Well, it may work. Though KPRN is not wise, it may work. And in the industrial view, KRPN is much easier to achieve. We will work on the comparison between the two. Thanks for your patient replies!