Xtra-Computing / FedTree

A tree-based federated learning system (MLSys 2023)
https://fedtree.readthedocs.io/en/latest/index.html
Apache License 2.0
140 stars 38 forks source link

Is there an article that introduces the principles of your framework? In particular, how can GDBT be federated #34

Closed bigdaronlee163 closed 2 years ago

QinbinLi commented 2 years ago

Hi @bigdaronlee163 ,

Thanks for your interest in our work! We are working on the draft of the system and we will upload it to this Github page once it is finished. For the federated GBDTs, there are some existing studies (ref1, ref2) for your reference.

wxli0 commented 2 years ago

Hi @QinbinLi, ref1 discusses the case of horizontal federated learning, and I could not open ref2. Is there an article or a doc that introduces the mechnism implemented in this repo for vertical federated learning? Thank you!

QinbinLi commented 2 years ago

Hi @wxli0 ,

You may refer to here for a brief explanation on vertical FL. You may also refer to secureboost and its document, which has a similar design as ours.

wxli0 commented 2 years ago

@QinbinLi Thank you for your reply. To confirm my understanding, in secureboost, they stored the split features with the split point values at the parties holding the features. In your implementation (GBDT::predict_raw_vertical in gbdt.cpp ), the split features and split point values are stored as global attributes and global variables (e.g. curNode.split_feature_id, get_val) that can be reached by all parties. Is this correct? Thank you!

QinbinLi commented 2 years ago

@wxli0 Right. FedTree currently stores the global model and sends it to all parties.

QinbinLi commented 2 years ago

Hi @bigdaronlee163 and @wxli0 ,

Please see here for the detailed algorithms of FedTree.