{"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/ponet-pooling-network-for-efficient-token","title":"PoNet: Pooling Network for Efficient Token Mixing in Long Sequences","arxiv_id":"2110.02442","date":"2021-10-06","proceeding":"ICLR 2022 4","authors":["Chao-Hong Tan","Qian Chen","Wen Wang","Qinglin Zhang","Siqi Zheng","Zhen-Hua Ling"],"abstract":"Transformer-based models have achieved great success in various NLP, vision, and speech tasks. However, the core of Transformer, the self-attention mechanism, has a quadratic time and memory complexity with respect to the sequence length, which hinders applications of Transformer-based models to long sequences. Many approaches have been proposed to mitigate this problem, such as sparse attention mechanisms, low-rank matrix approximations and scalable kernels, and token mixing alternatives to self-attention. We propose a novel Pooling Network (PoNet) for token mixing in long sequences with linear complexity. We design multi-granularity pooling and pooling fusion to capture different levels of contextual information and combine their interactions with tokens. On the Long Range Arena benchmark, PoNet significantly outperforms Transformer and achieves competitive accuracy, while being only slightly slower than the fastest model, FNet, across all sequence lengths measured on GPUs. We also conduct systematic studies on the transfer learning capability of PoNet and observe that PoNet achieves 95.7% of the accuracy of BERT on the GLUE benchmark, outperforming FNet by 4.5% relative. Comprehensive ablation analysis demonstrates effectiveness of the designed multi-granularity pooling and pooling fusion for token mixing in long sequences and efficacy of the designed pre-training tasks for PoNet to learn transferable contextualized language representations.","url_abs":"https://arxiv.org/abs/2110.02442v4","url_pdf":"https://arxiv.org/pdf/2110.02442v4.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":"ponet-pooling-network-for-efficient-token","repo_url":"https://github.com/lxchtan/ponet","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"Apache-2.0"}}],"tasks":[{"task_slug":"transfer-learning","task_name":"Transfer Learning"}],"methods":[{"method_slug":"absolute-position-encodings","method_name":"Absolute Position Encodings"},{"method_slug":"adam","method_name":"Adam"},{"method_slug":"attention","method_name":"Attention"},{"method_slug":"attention-dropout","method_name":"Attention Dropout"},{"method_slug":"bert","method_name":"BERT"},{"method_slug":"bpe","method_name":"BPE"},{"method_slug":"dense-connections","method_name":"Dense Connections"},{"method_slug":"dropout","method_name":"Dropout"},{"method_slug":"label-smoothing","method_name":"Label Smoothing"},{"method_slug":"layer-normalization","method_name":"Layer Normalization"},{"method_slug":"linear-layer","method_name":"Linear Layer"},{"method_slug":"linear-warmup-with-linear-decay","method_name":"Linear Warmup With Linear Decay"},{"method_slug":"multi-head-attention","method_name":"Multi-Head Attention"},{"method_slug":"position-wise-feed-forward-layer","method_name":"Position-Wise Feed-Forward Layer"},{"method_slug":"residual-connection","method_name":"Residual Connection"},{"method_slug":"softmax","method_name":"Softmax"},{"method_slug":"transformer","method_name":"Transformer"},{"method_slug":"weight-decay","method_name":"Weight Decay"},{"method_slug":"wordpiece","method_name":"WordPiece"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2110.02442","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2110.02442"}},"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":"deterministic:regex_extraction","url":"https://github.com/lxchtan/PoNet","reach":{"status":"ok","spdx":"Apache-2.0"}},{"provenance":"deterministic:regex_extraction","url":"https://github.com/erksch/fnet-pytorch","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/lxchtan/ponet","reach":{"status":"ok","spdx":"Apache-2.0"}}],"summary":{"unverified":11},"by_repo_kind":{"found_in_text":{"samples":11,"ran":0,"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":11,"samples":[{"code_sha256_prefix":"7a5d3cdb6ed5812d","entry":"concat_lines_until_max","repo":"erksch/fnet-pytorch","repo_kind":"found_in_text","path":"training/data_preparation.py","file_url":"https://github.com/erksch/fnet-pytorch/blob/HEAD/training/data_preparation.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":false,"mcp_get_code":{"code_sha256":"7a5d3cdb6ed5812d"}},{"code_sha256_prefix":"aed785e96913727a","entry":"convert_encoder","repo":"erksch/fnet-pytorch","repo_kind":"found_in_text","path":"convert_jax_checkpoint.py","file_url":"https://github.com/erksch/fnet-pytorch/blob/HEAD/convert_jax_checkpoint.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":false,"mcp_get_code":{"code_sha256":"aed785e96913727a"}},{"code_sha256_prefix":"eb505d6b0c682ecf","entry":"get_config_from_statedict","repo":"erksch/fnet-pytorch","repo_kind":"found_in_text","path":"fnet.py","file_url":"https://github.com/erksch/fnet-pytorch/blob/HEAD/fnet.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":false,"mcp_get_code":{"code_sha256":"eb505d6b0c682ecf"}},{"code_sha256_prefix":"b4a5c940a3986725","entry":"get_hits","repo":"erksch/fnet-pytorch","repo_kind":"found_in_text","path":"training/pretraining.py","file_url":"https://github.com/erksch/fnet-pytorch/blob/HEAD/training/pretraining.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":false,"mcp_get_code":{"code_sha256":"b4a5c940a3986725"}},{"code_sha256_prefix":"5eccccd396511ac2","entry":"get_input","repo":"erksch/fnet-pytorch","repo_kind":"found_in_text","path":"verify_conversion.py","file_url":"https://github.com/erksch/fnet-pytorch/blob/HEAD/verify_conversion.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":false,"mcp_get_code":{"code_sha256":"5eccccd396511ac2"}},{"code_sha256_prefix":"8f2cc35ebde28dfb","entry":"get_loss","repo":"erksch/fnet-pytorch","repo_kind":"found_in_text","path":"training/pretraining.py","file_url":"https://github.com/erksch/fnet-pytorch/blob/HEAD/training/pretraining.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":false,"mcp_get_code":{"code_sha256":"8f2cc35ebde28dfb"}},{"code_sha256_prefix":"afb6a62075edd740","entry":"jax_init_params","repo":"erksch/fnet-pytorch","repo_kind":"found_in_text","path":"verify_conversion.py","file_url":"https://github.com/erksch/fnet-pytorch/blob/HEAD/verify_conversion.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":false,"mcp_get_code":{"code_sha256":"afb6a62075edd740"}},{"code_sha256_prefix":"b25c0106e8a92528","entry":"load_config","repo":"erksch/fnet-pytorch","repo_kind":"found_in_text","path":"training/load_config.py","file_url":"https://github.com/erksch/fnet-pytorch/blob/HEAD/training/load_config.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":false,"mcp_get_code":{"code_sha256":"b25c0106e8a92528"}},{"code_sha256_prefix":"aafd51fb0aa641e2","entry":"load_jax_checkpoint","repo":"erksch/fnet-pytorch","repo_kind":"found_in_text","path":"convert_jax_checkpoint.py","file_url":"https://github.com/erksch/fnet-pytorch/blob/HEAD/convert_jax_checkpoint.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":false,"mcp_get_code":{"code_sha256":"aafd51fb0aa641e2"}},{"code_sha256_prefix":"8b2a4406d6a846ad","entry":"samples_to_batch","repo":"erksch/fnet-pytorch","repo_kind":"found_in_text","path":"training/data_preparation.py","file_url":"https://github.com/erksch/fnet-pytorch/blob/HEAD/training/data_preparation.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":false,"mcp_get_code":{"code_sha256":"8b2a4406d6a846ad"}},{"code_sha256_prefix":"7fb57f0edc23a95b","entry":"to_torch","repo":"erksch/fnet-pytorch","repo_kind":"found_in_text","path":"convert_jax_checkpoint.py","file_url":"https://github.com/erksch/fnet-pytorch/blob/HEAD/convert_jax_checkpoint.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":false,"mcp_get_code":{"code_sha256":"7fb57f0edc23a95b"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}