{"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/on-the-origins-of-memes-by-means-of-fringe","title":"On the Origins of Memes by Means of Fringe Web Communities","arxiv_id":"1805.12512","date":"2018-05-31","proceeding":null,"authors":["Savvas Zannettou","Tristan Caulfield","Jeremy Blackburn","Emiliano De Cristofaro","Michael Sirivianos","Gianluca Stringhini","Guillermo Suarez-Tangil"],"abstract":"Internet memes are increasingly used to sway and manipulate public opinion. This prompts the need to study their propagation, evolution, and influence across the Web. In this paper, we detect and measure the propagation of memes across multiple Web communities, using a processing pipeline based on perceptual hashing and clustering techniques, and a dataset of 160M images from 2.6B posts gathered from Twitter, Reddit, 4chan's Politically Incorrect board (/pol/), and Gab, over the course of 13 months. We group the images posted on fringe Web communities (/pol/, Gab, and The_Donald subreddit) into clusters, annotate them using meme metadata obtained from Know Your Meme, and also map images from mainstream communities (Twitter and Reddit) to the clusters. Our analysis provides an assessment of the popularity and diversity of memes in the context of each community, showing, e.g., that racist memes are extremely common in fringe Web communities. We also find a substantial number of politics-related memes on both mainstream and fringe Web communities, supporting media reports that memes might be used to enhance or harm politicians. Finally, we use Hawkes processes to model the interplay between Web communities and quantify their reciprocal influence, finding that /pol/ substantially influences the meme ecosystem with the number of memes it produces, while \\td has a higher success rate in pushing them to other communities.","url_abs":"http://arxiv.org/abs/1805.12512v3","url_pdf":"http://arxiv.org/pdf/1805.12512v3.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":"links_only","authors_date_abstract":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license), from the Kaggle arXiv metadata snapshot of 2026-09-12"},"code_links":[{"paper_slug":"on-the-origins-of-memes-by-means-of-fringe","repo_url":"https://github.com/memespaper/memes_pipeline","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"tf","reach":{"status":"ok"}},{"paper_slug":"on-the-origins-of-memes-by-means-of-fringe","repo_url":"https://github.com/zsavvas/memes_pipeline","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"tf","reach":null}],"tasks":[],"methods":[],"datasets_introduced":[{"slug":"on-the-origins-of-memes-by-means-of-fringe","name":"On the Origins of Memes by Means of Fringe Web Communities","full_name":""}],"methods_introduced":[],"results":[],"syntology":{"syntology_url":null,"atlas_url":"https://app.syntology.ai/?focus=1805.12512","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"1805.12512"}},"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/zsavvas/memes_pipeline","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/memespaper/memes_pipeline","reach":{"status":"ok"}}],"summary":{"ran_violates":1,"ran_draft_wrong":4},"by_repo_kind":{"listed":{"samples":5,"ran":5,"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":5,"samples":[{"code_sha256_prefix":"38125eed57573d72","entry":"hex_to_hash","repo":"zsavvas/memes_pipeline","repo_kind":"listed","path":"annotate_via_kym.py","file_url":"https://github.com/zsavvas/memes_pipeline/blob/HEAD/annotate_via_kym.py","link_basis":"first_harvest_node","language":"python","status":"ran_violates","verification_level":1,"contract_check":"VIOLATES","metamorphic_tier":"deterministic","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"38125eed57573d72"}},{"code_sha256_prefix":"d0c664616ad7e200","entry":"list_files","repo":"zsavvas/memes_pipeline","repo_kind":"listed","path":"calculate_phashes.py","file_url":"https://github.com/zsavvas/memes_pipeline/blob/HEAD/calculate_phashes.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"d0c664616ad7e200"}},{"code_sha256_prefix":"6c0c46d400923054","entry":"load_phashes","repo":"zsavvas/memes_pipeline","repo_kind":"listed","path":"clustering_phashes.py","file_url":"https://github.com/zsavvas/memes_pipeline/blob/HEAD/clustering_phashes.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":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"6c0c46d400923054"}},{"code_sha256_prefix":"f30f48c213fea945","entry":"process_clusters_file","repo":"zsavvas/memes_pipeline","repo_kind":"listed","path":"annotate_via_kym.py","file_url":"https://github.com/zsavvas/memes_pipeline/blob/HEAD/annotate_via_kym.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":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"f30f48c213fea945"}},{"code_sha256_prefix":"4d12677cb120dfbc","entry":"process_kym_files","repo":"zsavvas/memes_pipeline","repo_kind":"listed","path":"annotate_via_kym.py","file_url":"https://github.com/zsavvas/memes_pipeline/blob/HEAD/annotate_via_kym.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":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"4d12677cb120dfbc"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}