{"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/network-embedding-as-matrix-factorization","title":"Network Embedding as Matrix Factorization: Unifying DeepWalk, LINE, PTE, and node2vec","arxiv_id":"1710.02971","date":"2017-10-09","proceeding":null,"authors":["Jiezhong Qiu","Yuxiao Dong","Hao Ma","Jian Li","Kuansan Wang","Jie Tang"],"abstract":"Since the invention of word2vec, the skip-gram model has significantly\nadvanced the research of network embedding, such as the recent emergence of the\nDeepWalk, LINE, PTE, and node2vec approaches. In this work, we show that all of\nthe aforementioned models with negative sampling can be unified into the matrix\nfactorization framework with closed forms. Our analysis and proofs reveal that:\n(1) DeepWalk empirically produces a low-rank transformation of a network's\nnormalized Laplacian matrix; (2) LINE, in theory, is a special case of DeepWalk\nwhen the size of vertices' context is set to one; (3) As an extension of LINE,\nPTE can be viewed as the joint factorization of multiple networks' Laplacians;\n(4) node2vec is factorizing a matrix related to the stationary distribution and\ntransition probability tensor of a 2nd-order random walk. We further provide\nthe theoretical connections between skip-gram based network embedding\nalgorithms and the theory of graph Laplacian. Finally, we present the NetMF\nmethod as well as its approximation algorithm for computing network embedding.\nOur method offers significant improvements over DeepWalk and LINE for\nconventional network mining tasks. This work lays the theoretical foundation\nfor skip-gram based network embedding methods, leading to a better\nunderstanding of latent network representation learning.","url_abs":"http://arxiv.org/abs/1710.02971v4","url_pdf":"http://arxiv.org/pdf/1710.02971v4.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":"network-embedding-as-matrix-factorization","repo_url":"https://github.com/xptree/NetMF","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"none","reach":null},{"paper_slug":"network-embedding-as-matrix-factorization","repo_url":"https://github.com/fahrbach/icml-2020-faster-graph-embeddings","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"none","reach":null},{"paper_slug":"network-embedding-as-matrix-factorization","repo_url":"https://github.com/zxhhh97/ABot","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"network-embedding-as-matrix-factorization","repo_url":"https://github.com/benedekrozemberczki/karateclub","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"none","reach":{"status":"ok","spdx":"GPL-3.0"}}],"tasks":[{"task_slug":"network-embedding","task_name":"Network Embedding"},{"task_slug":"representation-learning","task_name":"Representation Learning"}],"methods":[{"method_slug":"deepwalk","method_name":"DeepWalk"},{"method_slug":"netmf","method_name":"NetMF"},{"method_slug":"node2vec","method_name":"node2vec"}],"datasets_introduced":[],"methods_introduced":[{"slug":"netmf","name":"NetMF","full_name":"Network Embedding as Matrix Factorization:"}],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=1710.02971","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"1710.02971"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+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/xptree/NetMF","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/zxhhh97/ABot","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/fahrbach/icml-2020-faster-graph-embeddings","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/benedekrozemberczki/karateclub","reach":{"status":"ok","spdx":"GPL-3.0"}}],"summary":{"ran_draft_wrong":1,"ran_fixture":1,"ran_honours":1},"by_repo_kind":{"official":{"samples":3,"ran":3,"repositories":1}},"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":0,"samples":[{"code_sha256_prefix":"7e00b218570064e4","entry":"approximate_normalized_graph_laplacian","repo":"xptree/NetMF","repo_kind":"official","path":"netmf.py","file_url":"https://github.com/xptree/NetMF/blob/HEAD/netmf.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"none","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"7e00b218570064e4"}},{"code_sha256_prefix":"865115609d5f0079","entry":"deepwalk_filter","repo":"xptree/NetMF","repo_kind":"official","path":"netmf.py","file_url":"https://github.com/xptree/NetMF/blob/HEAD/netmf.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":"865115609d5f0079"}},{"code_sha256_prefix":"61d600be2b025f26","entry":"load_adjacency_matrix","repo":"xptree/NetMF","repo_kind":"official","path":"netmf.py","file_url":"https://github.com/xptree/NetMF/blob/HEAD/netmf.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"well_formed","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"61d600be2b025f26"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}