{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/poincare-embeddings-for-learning-hierarchical","title":"Poincaré Embeddings for Learning Hierarchical Representations","arxiv_id":"1705.08039","date":"2017-05-22","proceeding":"NeurIPS 2017 12","authors":["Maximilian Nickel","Douwe Kiela"],"abstract":"Representation learning has become an invaluable approach for learning from\nsymbolic data such as text and graphs. However, while complex symbolic datasets\noften exhibit a latent hierarchical structure, state-of-the-art methods\ntypically learn embeddings in Euclidean vector spaces, which do not account for\nthis property. For this purpose, we introduce a new approach for learning\nhierarchical representations of symbolic data by embedding them into hyperbolic\nspace -- or more precisely into an n-dimensional Poincar\\'e ball. Due to the\nunderlying hyperbolic geometry, this allows us to learn parsimonious\nrepresentations of symbolic data by simultaneously capturing hierarchy and\nsimilarity. We introduce an efficient algorithm to learn the embeddings based\non Riemannian optimization and show experimentally that Poincar\\'e embeddings\noutperform Euclidean embeddings significantly on data with latent hierarchies,\nboth in terms of representation capacity and in terms of generalization\nability.","url_abs":"http://arxiv.org/abs/1705.08039v2","url_pdf":"http://arxiv.org/pdf/1705.08039v2.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[{"paper_slug":"poincare-embeddings-for-learning-hierarchical","repo_url":"https://github.com/FranxYao/PoincareProbe","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"poincare-embeddings-for-learning-hierarchical","repo_url":"https://github.com/HazyResearch/hgcn","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"poincare-embeddings-for-learning-hierarchical","repo_url":"https://github.com/TatsuyaShirakawa/poincare-embedding","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"none","reach":null},{"paper_slug":"poincare-embeddings-for-learning-hierarchical","repo_url":"https://github.com/adsieg/Multi_Text_Classification","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"tf","reach":{"status":"unanswered"}},{"paper_slug":"poincare-embeddings-for-learning-hierarchical","repo_url":"https://github.com/drewwilimitis/hyperbolic-learning","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"poincare-embeddings-for-learning-hierarchical","repo_url":"https://github.com/drewwilimitis/poincare","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"unanswered"}},{"paper_slug":"poincare-embeddings-for-learning-hierarchical","repo_url":"https://github.com/nishnik/poincare_embeddings","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"none","reach":null},{"paper_slug":"poincare-embeddings-for-learning-hierarchical","repo_url":"https://github.com/dalab/hyperbolic_cones","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"none","reach":null},{"paper_slug":"poincare-embeddings-for-learning-hierarchical","repo_url":"https://github.com/facebookresearch/poincare-embeddings","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"graph-embedding","task_name":"Graph Embedding"},{"task_slug":"representation-learning","task_name":"Representation Learning"},{"task_slug":"riemannian-optimization","task_name":"Riemannian optimization"}],"methods":[{"method_slug":"poincare-embeddings","method_name":"Poincaré Embeddings"}],"datasets_introduced":[],"methods_introduced":[{"slug":"poincare-embeddings","name":"Poincaré Embeddings","full_name":"Poincaré Embeddings"}],"results":[{"leaderboard":"/sota/link-prediction-on-wordnet","task":"Link Prediction","dataset":"WordNet","model":"Poincare Embeddings (dim=100)","rank_in_archive_order":2,"of":7,"metrics":{"Accuracy":"77.4"},"uses_additional_data":false},{"leaderboard":"/sota/link-prediction-on-wordnet","task":"Link Prediction","dataset":"WordNet","model":"Poincare Embeddings (dim=50)","rank_in_archive_order":3,"of":7,"metrics":{"Accuracy":"77.0"},"uses_additional_data":false},{"leaderboard":"/sota/link-prediction-on-wordnet","task":"Link Prediction","dataset":"WordNet","model":"Poincare Embeddings (dim=20)","rank_in_archive_order":4,"of":7,"metrics":{"Accuracy":"74.3"},"uses_additional_data":false},{"leaderboard":"/sota/link-prediction-on-wordnet","task":"Link Prediction","dataset":"WordNet","model":"Poincare Embeddings (dim=10)","rank_in_archive_order":5,"of":7,"metrics":{"Accuracy":"68.3"},"uses_additional_data":false}],"syntology":{"syntology_url":"https://syntology.ai/paper/1705.08039","atlas_url":"https://app.syntology.ai/?focus=1705.08039","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"1705.08039"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-25T09:33:49+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/TatsuyaShirakawa/poincare-embedding","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/drewwilimitis/hyperbolic-learning","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/FranxYao/PoincareProbe","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/adsieg/Multi_Text_Classification","reach":{"status":"unanswered"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/HazyResearch/hgcn","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/drewwilimitis/poincare","reach":{"status":"unanswered"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/dalab/hyperbolic_cones","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/facebookresearch/poincare-embeddings","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/nishnik/poincare_embeddings","reach":null}],"summary":{"ran_violates":1,"ran_honours":1,"ran_draft_wrong":2,"ran_fixture":2,"unverified":8},"by_repo_kind":{"listed":{"samples":14,"ran":6,"repositories":4}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":6,"samples":[{"code_sha256_prefix":"286b2d4f46b065fb","entry":"dist","repo":"nishnik/poincare_embeddings","repo_kind":"listed","path":"poincare.py","file_url":"https://github.com/nishnik/poincare_embeddings/blob/HEAD/poincare.py","link_basis":"first_harvest_node","language":"python","status":"ran_violates","verification_level":1,"contract_check":"VIOLATES","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"286b2d4f46b065fb"}},{"code_sha256_prefix":"b786803c03387b43","entry":"recover_tree_from_transitive_closure","repo":"dalab/hyperbolic_cones","repo_kind":"listed","path":"animation_train.py","file_url":"https://github.com/dalab/hyperbolic_cones/blob/HEAD/animation_train.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"b786803c03387b43"}},{"code_sha256_prefix":"f4913cfd2afb2564","entry":"transitive_closure","repo":"TatsuyaShirakawa/poincare-embedding","repo_kind":"listed","path":"scripts/create_wordnet_noun_hierarchy.py","file_url":"https://github.com/TatsuyaShirakawa/poincare-embedding/blob/HEAD/scripts/create_wordnet_noun_hierarchy.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"f4913cfd2afb2564"}},{"code_sha256_prefix":"5d1f11cf5c981203","entry":"transitive_isometry","repo":"TatsuyaShirakawa/poincare-embedding","repo_kind":"listed","path":"scripts/plot_mammal_subtree.py","file_url":"https://github.com/TatsuyaShirakawa/poincare-embedding/blob/HEAD/scripts/plot_mammal_subtree.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"5d1f11cf5c981203"}},{"code_sha256_prefix":"b61dce6ea5a27ad7","entry":"update","repo":"nishnik/poincare_embeddings","repo_kind":"listed","path":"poincare.py","file_url":"https://github.com/nishnik/poincare_embeddings/blob/HEAD/poincare.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"b61dce6ea5a27ad7"}},{"code_sha256_prefix":"4a4bb7cf81fded2c","entry":"update","repo":"nishnik/poincare_embeddings","repo_kind":"listed","path":"poincare_adam.py","file_url":"https://github.com/nishnik/poincare_embeddings/blob/HEAD/poincare_adam.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"4a4bb7cf81fded2c"}},{"code_sha256_prefix":"4282578708af3132","entry":"exp_map","repo":"drewwilimitis/hyperbolic-learning","repo_kind":"listed","path":"hyperbolic_kmeans/hkmeans.py","file_url":"https://github.com/drewwilimitis/hyperbolic-learning/blob/HEAD/hyperbolic_kmeans/hkmeans.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"4282578708af3132"}},{"code_sha256_prefix":"0d5d822d596da8c9","entry":"grad_fn","repo":"drewwilimitis/hyperbolic-learning","repo_kind":"listed","path":"hyperbolic_svm/hsvm.py","file_url":"https://github.com/drewwilimitis/hyperbolic-learning/blob/HEAD/hyperbolic_svm/hsvm.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"0d5d822d596da8c9"}},{"code_sha256_prefix":"784529646199407c","entry":"is_feasible","repo":"drewwilimitis/hyperbolic-learning","repo_kind":"listed","path":"hyperbolic_svm/hsvm.py","file_url":"https://github.com/drewwilimitis/hyperbolic-learning/blob/HEAD/hyperbolic_svm/hsvm.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"784529646199407c"}},{"code_sha256_prefix":"d580486bed607544","entry":"loss_fn","repo":"drewwilimitis/hyperbolic-learning","repo_kind":"listed","path":"hyperbolic_svm/hsvm.py","file_url":"https://github.com/drewwilimitis/hyperbolic-learning/blob/HEAD/hyperbolic_svm/hsvm.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"d580486bed607544"}},{"code_sha256_prefix":"3e8d29824b777e6a","entry":"minkowski_distance_gradient","repo":"drewwilimitis/hyperbolic-learning","repo_kind":"listed","path":"hyperbolic_kmeans/hkmeans.py","file_url":"https://github.com/drewwilimitis/hyperbolic-learning/blob/HEAD/hyperbolic_kmeans/hkmeans.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"3e8d29824b777e6a"}},{"code_sha256_prefix":"f97c938afe95df01","entry":"minkowski_loss_gradient","repo":"drewwilimitis/hyperbolic-learning","repo_kind":"listed","path":"hyperbolic_kmeans/hkmeans.py","file_url":"https://github.com/drewwilimitis/hyperbolic-learning/blob/HEAD/hyperbolic_kmeans/hkmeans.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"f97c938afe95df01"}},{"code_sha256_prefix":"aeb157936be2be1e","entry":"partial_der","repo":"nishnik/poincare_embeddings","repo_kind":"listed","path":"poincare.py","file_url":"https://github.com/nishnik/poincare_embeddings/blob/HEAD/poincare.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"aeb157936be2be1e"}},{"code_sha256_prefix":"100812a0370f139e","entry":"partial_der","repo":"nishnik/poincare_embeddings","repo_kind":"listed","path":"poincare_adam.py","file_url":"https://github.com/nishnik/poincare_embeddings/blob/HEAD/poincare_adam.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"100812a0370f139e"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}