{"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/self-supervised-video-similarity-learning","title":"Self-Supervised Video Similarity Learning","arxiv_id":"2304.03378","date":"2023-04-06","proceeding":null,"authors":["Giorgos Kordopatis-Zilos","Giorgos Tolias","Christos Tzelepis","Ioannis Kompatsiaris","Ioannis Patras","Symeon Papadopoulos"],"abstract":"We introduce S$^2$VS, a video similarity learning approach with self-supervision. Self-Supervised Learning (SSL) is typically used to train deep models on a proxy task so as to have strong transferability on target tasks after fine-tuning. Here, in contrast to prior work, SSL is used to perform video similarity learning and address multiple retrieval and detection tasks at once with no use of labeled data. This is achieved by learning via instance-discrimination with task-tailored augmentations and the widely used InfoNCE loss together with an additional loss operating jointly on self-similarity and hard-negative similarity. We benchmark our method on tasks where video relevance is defined with varying granularity, ranging from video copies to videos depicting the same incident or event. We learn a single universal model that achieves state-of-the-art performance on all tasks, surpassing previously proposed methods that use labeled data. The code and pretrained models are publicly available at: https://github.com/gkordo/s2vs","url_abs":"https://arxiv.org/abs/2304.03378v2","url_pdf":"https://arxiv.org/pdf/2304.03378v2.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":"self-supervised-video-similarity-learning","repo_url":"https://github.com/gkordo/s2vs","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":null,"task_name":"ISVR"},{"task_slug":"retrieval","task_name":"Retrieval"},{"task_slug":"self-supervised-learning","task_name":"Self-Supervised Learning"},{"task_slug":"video-retrieval","task_name":"Video Retrieval"},{"task_slug":null,"task_name":"Video Retrieval (frame-level)"},{"task_slug":"video-similarity","task_name":"Video Similarity"}],"methods":[{"method_slug":"infonce","method_name":"InfoNCE"}],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/video-retrieval-on-fivr-200k","task":"Video Retrieval","dataset":"FIVR-200K","model":"S2VS","rank_in_archive_order":1,"of":17,"metrics":{"mAP (CSVR)":"0.879","mAP (DSVR)":"0.927","mAP (ISVR)":"0.746"},"uses_additional_data":false},{"leaderboard":"/sota/video-retrieval-on-fivr-200k","task":"Video Retrieval","dataset":"FIVR-200K","model":"S2VS","rank_in_archive_order":3,"of":17,"metrics":{"mAP (CSVR)":"0.878","mAP (DSVR)":"0.925","mAP (ISVR)":"0.739"},"uses_additional_data":false}],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2304.03378","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2304.03378"}},"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/gkordo/s2vs","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"unverified":6},"by_repo_kind":{"official":{"samples":6,"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":0,"samples":[{"code_sha256_prefix":"dd36ba4ee27a2ca8","entry":"collate_eval","repo":"gkordo/s2vs","repo_kind":"official","path":"utils.py","file_url":"https://github.com/gkordo/s2vs/blob/HEAD/utils.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":true,"mcp_get_code":{"code_sha256":"dd36ba4ee27a2ca8"}},{"code_sha256_prefix":"c8660bcd79c1032d","entry":"gem","repo":"gkordo/s2vs","repo_kind":"official","path":"model/pooling.py","file_url":"https://github.com/gkordo/s2vs/blob/HEAD/model/pooling.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":true,"mcp_get_code":{"code_sha256":"c8660bcd79c1032d"}},{"code_sha256_prefix":"2b10d244238ec0cb","entry":"is_parallel","repo":"gkordo/s2vs","repo_kind":"official","path":"utils.py","file_url":"https://github.com/gkordo/s2vs/blob/HEAD/utils.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":true,"mcp_get_code":{"code_sha256":"2b10d244238ec0cb"}},{"code_sha256_prefix":"cf2d32f293ea8590","entry":"load_model","repo":"gkordo/s2vs","repo_kind":"official","path":"utils.py","file_url":"https://github.com/gkordo/s2vs/blob/HEAD/utils.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":true,"mcp_get_code":{"code_sha256":"cf2d32f293ea8590"}},{"code_sha256_prefix":"8e8ae8e4af71f8cd","entry":"mac","repo":"gkordo/s2vs","repo_kind":"official","path":"model/pooling.py","file_url":"https://github.com/gkordo/s2vs/blob/HEAD/model/pooling.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":true,"mcp_get_code":{"code_sha256":"8e8ae8e4af71f8cd"}},{"code_sha256_prefix":"4d63b08254046717","entry":"spoc","repo":"gkordo/s2vs","repo_kind":"official","path":"model/pooling.py","file_url":"https://github.com/gkordo/s2vs/blob/HEAD/model/pooling.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":true,"mcp_get_code":{"code_sha256":"4d63b08254046717"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}