CINXE.COM

Announcing ScaNN: Efficient Vector Similarity Search

<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8" /> <meta name="description" content="Posted by Philip Sun, Software Engineer, Google Research Suppose one wants to search through a large dataset of literary works using queries that r..."><meta name="keywords" content="Information Retrieval,Recommender Systems,Machine Learning"><link rel="canonical" href="https://research.google/blog/announcing-scann-efficient-vector-similarity-search/" /><meta property="og:title" content="Announcing ScaNN: Efficient Vector Similarity Search"><meta property="og:url" content="https://research.google/blog/announcing-scann-efficient-vector-similarity-search/"><meta property="og:description" content="Posted by Philip Sun, Software Engineer, Google Research Suppose one wants to search through a large dataset of literary works using queries that r..."><meta property="og:image" content="https://storage.googleapis.com/gweb-research2023-media/images/a844cf4c4ee0a326f5b303e6840b142a-S.width-800.format-jpeg.jpg"><meta property="og:image:secure_url" content="https://storage.googleapis.com/gweb-research2023-media/images/a844cf4c4ee0a326f5b303e6840b142a-S.width-800.format-jpeg.jpg"><meta property="og:type" content="Website"> <title>Announcing ScaNN: Efficient Vector Similarity Search</title> <meta name="description" content="Posted by Philip Sun, Software Engineer, Google Research Suppose one wants to search through a large dataset of literary works using queries that r..." /> <meta name="viewport" content="width=device-width, initial-scale=1 viewport-fit=cover"/> <link rel="icon" type="image/png" href="/gr/static/assets/favicon.ico"> <link rel="preconnect" href="https://fonts.googleapis.com"> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> <link rel="preload" href="https://fonts.googleapis.com/css2?family=Product+Sans&family=Google+Sans+Display:ital@0;1&family=Google+Sans:ital,wght@0,400;0,500;0,700;1,400;1,500;1,700&family=Google+Sans+Text:ital,wght@0,400;0,500;0,700;1,400;1,500;1,700&display=swap" as="style"> <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Product+Sans&family=Google+Sans+Display:ital@0;1&family=Google+Sans:ital,wght@0,400;0,500;0,700;1,400;1,500;1,700&family=Google+Sans+Text:ital,wght@0,400;0,500;0,700;1,400;1,500;1,700&display=swap"> <link href="https://fonts.googleapis.com/css2?family=Roboto+Mono:wght@400;700&display=swap" rel="stylesheet"> <link href="https://www.gstatic.com/glue/cookienotificationbar/cookienotificationbar.min.css" rel="stylesheet" /> <link href="https://www.gstatic.com/glue/v27_1/glue-material.min.css" rel="stylesheet"> <link rel="stylesheet" type="text/css" href="/gr/static/css/googleresearch.css?id=0c26ea1fed8bdd0324f9f4fad1f6a470"> <script> window.dataLayer = window.dataLayer || []; dataLayer.push({ publishDate: '20200728', wordCount: '1323' }); </script> <!-- Google Tag Manager --> <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-K8QBZ7Q'); </script> <!-- End Google Tag Manager --> </head> <body class=" js-google-tag-wrapper" data-gt-page-path="https://research.google/blog/announcing-scann-efficient-vector-similarity-search/" data-env="production"> <!-- Google Tag Manager (noscript) --> <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-K8QBZ7Q" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <!-- End Google Tag Manager (noscript) --> <header class="global-header glue-header glue-header--single not-glue"> <a href="#page-content" class="glue-header__skip-content">Jump to Content</a> <div class="glue-header__bar glue-header__bar--mobile not-glue"> <div class="glue-header__tier not-glue"> <!-- mobile lockup component --> <div class="glue-header__container"> <div class="glue-header__lock-up"> <!-- Hamburger button component --> <div class="glue-header__hamburger"> <button class="glue-header__drawer-toggle-btn" aria-label="Open the navigation drawer"> <svg class="glue-icon glue-icon--24px" role="presentation" aria-hidden="true"> <use href="/gr/static/assets/icons/glue-icons.svg#menu"></use> </svg> </button> </div> <div class="glue-header__logo"> <a class="glue-header__logo-link" href="/" title="Google Research"> <!-- Logo component --> <div class="glue-header__logo-container"> <svg role="presentation" aria-hidden="true" alt='Google' class="glue-icon glue-icon glue-header__logo-svg"> <use href="/gr/static/assets/icons/glue-icons.svg#google-color-logo"></use> </svg> </div> <span class="glue-header__logo--product">Research</span> </a> </div> </div> </div> </div> </div> <div class="glue-header__bar glue-header__bar--desktop glue-header__drawer"> <div class="glue-header__tier"> <!-- desktop lockup component --> <div class="glue-header__container"> <div class="glue-header__lock-up"> <div class="glue-header__logo"> <a class="glue-header__logo-link" href="/" title="Google Research"> <!-- Logo component --> <div class="glue-header__logo-container"> <svg role="presentation" aria-hidden="true" alt='Google' class="glue-icon glue-icon glue-header__logo-svg not-glue --dark-logo"> <use href="/gr/static/assets/icons/glue-icons.svg#google-solid-logo"></use> </svg> <svg role="presentation" aria-hidden="true" alt='Google' class="glue-icon glue-icon glue-header__logo-svg --light-logo"> <use href="/gr/static/assets/icons/glue-icons.svg#google-color-logo"></use> </svg> </div> <span class="glue-header__logo--product">Research</span> </a> </div> </div> </div> <!-- linkbar component --> <div class="glue-header__container glue-header__container--linkbar"> <nav class="glue-header__link-bar navigation js-gt-global-nav-wrapper"> <ul class="glue-header__list"> <li class="glue-header__item js-sub-nav-parent --parent" data-gt-primary="Who we are" > <button class="glue-header__link js-sub-nav-target" aria-haspopup="true" aria-expanded="false" > <span class=""> Who we are <span class="icon icon--caret"></span> </span> </button> <div class="navigation__sub js-sub-nav" role="menu"> <div class="navigation__sub__container"> <div class="navigation__sub__mobile-heading"> <button class="glue-header__link js-sub-nav-close-mobile"> <span class="sr-text">Back to</span> <span class="icon icon--caret"></span> Who we are <span class="sr-text">menu</span> </button> <hr/> </div> <div class="block-nav_drawer_columns_content"> <div class="navigation__sub--content" data-gt-secondary="Defining the technology of today and tomorrow."> <div class="navigation__sub__wrapper"> <div class="navigation__sub__heading"> <h2 class="headline-3">Defining the technology of today and tomorrow.</h2> </div> <ul class="navigation__sub__columns"> <li data-gt-secondary="Philosophy"> <div class="navigation__sub__columns__desktop"> <h2 class="headline-6 navigation__sub__columns__heading"> Philosophy </h2> <p class="navigation__sub__columns__description caption">We strive to create an environment conducive to many different types of research across many different time scales and levels of risk.</p> <a href="https://research.google/philosophy/" class="glue-inline-link js-drawer-link" > <span class="sr-text">Learn more about our Philosophy</span> <span aria-hidden="true">Learn more</span> </a> </div> <div class="navigation__sub__columns__mobile"> <a class="glue-header__link" href="https://research.google/philosophy/" > Philosophy </a> </div> </li> <li data-gt-secondary="People"> <div class="navigation__sub__columns__desktop"> <h2 class="headline-6 navigation__sub__columns__heading"> People </h2> <p class="navigation__sub__columns__description caption">Our researchers drive advancements in computer science through both fundamental and applied research.</p> <a href="https://research.google/people/" class="glue-inline-link js-drawer-link" > <span class="sr-text">Learn more about our People</span> <span aria-hidden="true">Learn more</span> </a> </div> <div class="navigation__sub__columns__mobile"> <a class="glue-header__link" href="https://research.google/people/" > People </a> </div> </li> </ul> </div> </div> </div> </div> </div> </li> <li class="glue-header__item js-sub-nav-parent --parent" data-gt-primary="Research areas" > <button class="glue-header__link js-sub-nav-target" aria-haspopup="true" aria-expanded="false" > <span class=""> Research areas <span class="icon icon--caret"></span> </span> </button> <div class="navigation__sub js-sub-nav" role="menu"> <div class="navigation__sub__container"> <div class="navigation__sub__mobile-heading"> <button class="glue-header__link js-sub-nav-close-mobile"> <span class="sr-text">Back to</span> <span class="icon icon--caret"></span> Research areas <span class="sr-text">menu</span> </button> <hr/> </div> <div class="block-nav_drawer_columns_link_list"> <div class="navigation__sub--list"> <div class="navigation__sub__wrapper"> <ul class="navigation__sub__columns"> <li data-gt-secondary="Research areas"> <div class="navigation__sub__columns__desktop"> <h2 class="headline-6 navigation__sub__columns__heading">Research areas</h2> <ul> <li> <a class="navigation__sub__columns__list-link caption js-drawer-link" href="https://research.google/research-areas/" > Explore all research areas </a> </li> </ul> </div> <div class="navigation__sub__columns__mobile"> <button class="glue-header__link js-sub-nav-target" data-panel="nested" role="menuitem" aria-haspopup="true"> Research areas <span class="icon icon--caret"></span> </button> <div class="navigation__nested-sub js-sub-nav-parent"> <div class="navigation__sub__mobile-heading"> <button class="glue-header__link js-sub-nav-close-mobile" role="menuitem" aria-haspopup="true"> <span class="sr-text">Back to</span> <span class="icon icon--caret"></span> Research areas <span class="sr-text">menu</span> </button> <hr/> </div> <ul> <li role="menuitem"> <a href="https://research.google/research-areas/" class="navigation__sub__columns__mobile__link" > Explore all research areas <span> </span> </a> </li> </ul> </div> </div> </li> <li data-gt-secondary="Foundational ML &amp; Algorithms"> <div class="navigation__sub__columns__desktop"> <h2 class="headline-6 navigation__sub__columns__heading">Foundational ML &amp; Algorithms</h2> <ul> <li> <a class="navigation__sub__columns__list-link caption js-drawer-link" href="https://research.google/research-areas/algorithms-and-theory/" > Algorithms &amp; Theory </a> </li> <li> <a class="navigation__sub__columns__list-link caption js-drawer-link" href="https://research.google/research-areas/data-management/" > Data Management </a> </li> <li> <a class="navigation__sub__columns__list-link caption js-drawer-link" href="https://research.google/research-areas/data-mining-and-modeling/" > Data Mining &amp; Modeling </a> </li> <li> <a class="navigation__sub__columns__list-link caption js-drawer-link" href="https://research.google/research-areas/information-retrieval-and-the-web/" > Information Retrieval &amp; the Web </a> </li> <li> <a class="navigation__sub__columns__list-link caption js-drawer-link" href="https://research.google/research-areas/machine-intelligence/" > Machine Intelligence </a> </li> <li> <a class="navigation__sub__columns__list-link caption js-drawer-link" href="https://research.google/research-areas/machine-perception/" > Machine Perception </a> </li> <li> <a class="navigation__sub__columns__list-link caption js-drawer-link" href="https://research.google/research-areas/machine-translation/" > Machine Translation </a> </li> <li> <a class="navigation__sub__columns__list-link caption js-drawer-link" href="https://research.google/research-areas/natural-language-processing/" > Natural Language Processing </a> </li> <li> <a class="navigation__sub__columns__list-link caption js-drawer-link" href="https://research.google/research-areas/speech-processing/" > Speech Processing </a> </li> </ul> </div> <div class="navigation__sub__columns__mobile"> <button class="glue-header__link js-sub-nav-target" data-panel="nested" role="menuitem" aria-haspopup="true"> Foundational ML &amp; Algorithms <span class="icon icon--caret"></span> </button> <div class="navigation__nested-sub js-sub-nav-parent"> <div class="navigation__sub__mobile-heading"> <button class="glue-header__link js-sub-nav-close-mobile" role="menuitem" aria-haspopup="true"> <span class="sr-text">Back to</span> <span class="icon icon--caret"></span> Foundational ML &amp; Algorithms <span class="sr-text">menu</span> </button> <hr/> </div> <ul> <li role="menuitem"> <a href="https://research.google/research-areas/algorithms-and-theory/" class="navigation__sub__columns__mobile__link" > Algorithms &amp; Theory <span> </span> </a> </li> <li role="menuitem"> <a href="https://research.google/research-areas/data-management/" class="navigation__sub__columns__mobile__link" > Data Management <span> </span> </a> </li> <li role="menuitem"> <a href="https://research.google/research-areas/data-mining-and-modeling/" class="navigation__sub__columns__mobile__link" > Data Mining &amp; Modeling <span> </span> </a> </li> <li role="menuitem"> <a href="https://research.google/research-areas/information-retrieval-and-the-web/" class="navigation__sub__columns__mobile__link" > Information Retrieval &amp; the Web <span> </span> </a> </li> <li role="menuitem"> <a href="https://research.google/research-areas/machine-intelligence/" class="navigation__sub__columns__mobile__link" > Machine Intelligence <span> </span> </a> </li> <li role="menuitem"> <a href="https://research.google/research-areas/machine-perception/" class="navigation__sub__columns__mobile__link" > Machine Perception <span> </span> </a> </li> <li role="menuitem"> <a href="https://research.google/research-areas/machine-translation/" class="navigation__sub__columns__mobile__link" > Machine Translation <span> </span> </a> </li> <li role="menuitem"> <a href="https://research.google/research-areas/natural-language-processing/" class="navigation__sub__columns__mobile__link" > Natural Language Processing <span> </span> </a> </li> <li role="menuitem"> <a href="https://research.google/research-areas/speech-processing/" class="navigation__sub__columns__mobile__link" > Speech Processing <span> </span> </a> </li> </ul> </div> </div> </li> <li data-gt-secondary="Computing Systems &amp; Quantum AI"> <div class="navigation__sub__columns__desktop"> <h2 class="headline-6 navigation__sub__columns__heading">Computing Systems &amp; Quantum AI</h2> <ul> <li> <a class="navigation__sub__columns__list-link caption js-drawer-link" href="https://research.google/research-areas/distributed-systems-and-parallel-computing/" > Distributed Systems &amp; Parallel
Computing </a> </li> <li> <a class="navigation__sub__columns__list-link caption js-drawer-link" href="https://research.google/research-areas/hardware-and-architecture/" > Hardware &amp; Architecture </a> </li> <li> <a class="navigation__sub__columns__list-link caption js-drawer-link" href="https://research.google/research-areas/mobile-systems/" > Mobile Systems </a> </li> <li> <a class="navigation__sub__columns__list-link caption js-drawer-link" href="https://research.google/research-areas/networking/" > Networking </a> </li> <li> <a class="navigation__sub__columns__list-link caption js-drawer-link" href="https://research.google/research-areas/quantum-computing/" > Quantum Computing </a> </li> <li> <a class="navigation__sub__columns__list-link caption js-drawer-link" href="https://research.google/research-areas/robotics/" > Robotics </a> </li> <li> <a class="navigation__sub__columns__list-link caption js-drawer-link" href="https://research.google/research-areas/security-privacy-and-abuse-prevention/" > Security, Privacy, &amp; Abuse
Prevention </a> </li> <li> <a class="navigation__sub__columns__list-link caption js-drawer-link" href="https://research.google/research-areas/software-engineering/" > Software Engineering </a> </li> <li> <a class="navigation__sub__columns__list-link caption js-drawer-link" href="https://research.google/research-areas/software-systems/" > Software Systems </a> </li> </ul> </div> <div class="navigation__sub__columns__mobile"> <button class="glue-header__link js-sub-nav-target" data-panel="nested" role="menuitem" aria-haspopup="true"> Computing Systems &amp; Quantum AI <span class="icon icon--caret"></span> </button> <div class="navigation__nested-sub js-sub-nav-parent"> <div class="navigation__sub__mobile-heading"> <button class="glue-header__link js-sub-nav-close-mobile" role="menuitem" aria-haspopup="true"> <span class="sr-text">Back to</span> <span class="icon icon--caret"></span> Computing Systems &amp; Quantum AI <span class="sr-text">menu</span> </button> <hr/> </div> <ul> <li role="menuitem"> <a href="https://research.google/research-areas/distributed-systems-and-parallel-computing/" class="navigation__sub__columns__mobile__link" > Distributed Systems &amp; Parallel
Computing <span> </span> </a> </li> <li role="menuitem"> <a href="https://research.google/research-areas/hardware-and-architecture/" class="navigation__sub__columns__mobile__link" > Hardware &amp; Architecture <span> </span> </a> </li> <li role="menuitem"> <a href="https://research.google/research-areas/mobile-systems/" class="navigation__sub__columns__mobile__link" > Mobile Systems <span> </span> </a> </li> <li role="menuitem"> <a href="https://research.google/research-areas/networking/" class="navigation__sub__columns__mobile__link" > Networking <span> </span> </a> </li> <li role="menuitem"> <a href="https://research.google/research-areas/quantum-computing/" class="navigation__sub__columns__mobile__link" > Quantum Computing <span> </span> </a> </li> <li role="menuitem"> <a href="https://research.google/research-areas/robotics/" class="navigation__sub__columns__mobile__link" > Robotics <span> </span> </a> </li> <li role="menuitem"> <a href="https://research.google/research-areas/security-privacy-and-abuse-prevention/" class="navigation__sub__columns__mobile__link" > Security, Privacy, &amp; Abuse
Prevention <span> </span> </a> </li> <li role="menuitem"> <a href="https://research.google/research-areas/software-engineering/" class="navigation__sub__columns__mobile__link" > Software Engineering <span> </span> </a> </li> <li role="menuitem"> <a href="https://research.google/research-areas/software-systems/" class="navigation__sub__columns__mobile__link" > Software Systems <span> </span> </a> </li> </ul> </div> </div> </li> <li data-gt-secondary="Science, AI &amp; Society"> <div class="navigation__sub__columns__desktop"> <h2 class="headline-6 navigation__sub__columns__heading">Science, AI &amp; Society</h2> <ul> <li> <a class="navigation__sub__columns__list-link caption js-drawer-link" href="https://research.google/research-areas/climate-and-sustainability/" > Climate &amp; Sustainability </a> </li> <li> <a class="navigation__sub__columns__list-link caption js-drawer-link" href="https://research.google/research-areas/economics-and-electronic-commerce/" > Economics &amp; Electronic Commerce </a> </li> <li> <a class="navigation__sub__columns__list-link caption js-drawer-link" href="https://research.google/research-areas/education-innovation/" > Education Innovation </a> </li> <li> <a class="navigation__sub__columns__list-link caption js-drawer-link" href="https://research.google/research-areas/general-science/" > General Science </a> </li> <li> <a class="navigation__sub__columns__list-link caption js-drawer-link" href="https://research.google/research-areas/health-bioscience/" > Health &amp; Bioscience </a> </li> <li> <a class="navigation__sub__columns__list-link caption js-drawer-link" href="https://research.google/research-areas/human-computer-interaction-and-visualization/" > Human-Computer Interaction and Visualization </a> </li> </ul> </div> <div class="navigation__sub__columns__mobile"> <button class="glue-header__link js-sub-nav-target" data-panel="nested" role="menuitem" aria-haspopup="true"> Science, AI &amp; Society <span class="icon icon--caret"></span> </button> <div class="navigation__nested-sub js-sub-nav-parent"> <div class="navigation__sub__mobile-heading"> <button class="glue-header__link js-sub-nav-close-mobile" role="menuitem" aria-haspopup="true"> <span class="sr-text">Back to</span> <span class="icon icon--caret"></span> Science, AI &amp; Society <span class="sr-text">menu</span> </button> <hr/> </div> <ul> <li role="menuitem"> <a href="https://research.google/research-areas/climate-and-sustainability/" class="navigation__sub__columns__mobile__link" > Climate &amp; Sustainability <span> </span> </a> </li> <li role="menuitem"> <a href="https://research.google/research-areas/economics-and-electronic-commerce/" class="navigation__sub__columns__mobile__link" > Economics &amp; Electronic Commerce <span> </span> </a> </li> <li role="menuitem"> <a href="https://research.google/research-areas/education-innovation/" class="navigation__sub__columns__mobile__link" > Education Innovation <span> </span> </a> </li> <li role="menuitem"> <a href="https://research.google/research-areas/general-science/" class="navigation__sub__columns__mobile__link" > General Science <span> </span> </a> </li> <li role="menuitem"> <a href="https://research.google/research-areas/health-bioscience/" class="navigation__sub__columns__mobile__link" > Health &amp; Bioscience <span> </span> </a> </li> <li role="menuitem"> <a href="https://research.google/research-areas/human-computer-interaction-and-visualization/" class="navigation__sub__columns__mobile__link" > Human-Computer Interaction and Visualization <span> </span> </a> </li> </ul> </div> </div> </li> </ul> </div> </div></div> </div> </div> </li> <li class="glue-header__item js-sub-nav-parent --parent" data-gt-primary="Our work" > <button class="glue-header__link js-sub-nav-target" aria-haspopup="true" aria-expanded="false" > <span class=""> Our work <span class="icon icon--caret"></span> </span> </button> <div class="navigation__sub js-sub-nav" role="menu"> <div class="navigation__sub__container"> <div class="navigation__sub__mobile-heading"> <button class="glue-header__link js-sub-nav-close-mobile"> <span class="sr-text">Back to</span> <span class="icon icon--caret"></span> Our work <span class="sr-text">menu</span> </button> <hr/> </div> <div class="block-nav_drawer_columns_content"> <div class="navigation__sub--content" data-gt-secondary=""> <div class="navigation__sub__wrapper"> <ul class="navigation__sub__columns"> <li data-gt-secondary="Projects"> <div class="navigation__sub__columns__desktop"> <h2 class="headline-6 navigation__sub__columns__heading"> Projects </h2> <p class="navigation__sub__columns__description caption">We regularly open-source projects with the broader research community and apply our developments to Google products.</p> <a href="https://research.google/resources/our-projects/" class="glue-inline-link js-drawer-link" > <span class="sr-text">Learn more about our Projects</span> <span aria-hidden="true">Learn more</span> </a> </div> <div class="navigation__sub__columns__mobile"> <a class="glue-header__link" href="https://research.google/resources/our-projects/" > Projects </a> </div> </li> <li data-gt-secondary="Publications"> <div class="navigation__sub__columns__desktop"> <h2 class="headline-6 navigation__sub__columns__heading"> Publications </h2> <p class="navigation__sub__columns__description caption">Publishing our work allows us to share ideas and work collaboratively to advance the field of computer science.</p> <a href="https://research.google/pubs/" class="glue-inline-link js-drawer-link" > <span class="sr-text">Learn more about our Publications</span> <span aria-hidden="true">Learn more</span> </a> </div> <div class="navigation__sub__columns__mobile"> <a class="glue-header__link" href="https://research.google/pubs/" > Publications </a> </div> </li> <li data-gt-secondary="Resources"> <div class="navigation__sub__columns__desktop"> <h2 class="headline-6 navigation__sub__columns__heading"> Resources </h2> <p class="navigation__sub__columns__description caption">We make products, tools, and datasets available to everyone with the goal of building a more collaborative ecosystem.</p> <a href="https://research.google/resources/" class="glue-inline-link js-drawer-link" > <span class="sr-text">Learn more about our Resources</span> <span aria-hidden="true">Learn more</span> </a> </div> <div class="navigation__sub__columns__mobile"> <a class="glue-header__link" href="https://research.google/resources/" > Resources </a> </div> </li> </ul> </div> </div> </div> </div> </div> </li> <li class="glue-header__item js-sub-nav-parent --parent" data-gt-primary="Programs &amp; events" > <button class="glue-header__link js-sub-nav-target" aria-haspopup="true" aria-expanded="false" > <span class=""> Programs &amp; events <span class="icon icon--caret"></span> </span> </button> <div class="navigation__sub js-sub-nav" role="menu"> <div class="navigation__sub__container"> <div class="navigation__sub__mobile-heading"> <button class="glue-header__link js-sub-nav-close-mobile"> <span class="sr-text">Back to</span> <span class="icon icon--caret"></span> Programs &amp; events <span class="sr-text">menu</span> </button> <hr/> </div> <div class="block-nav_drawer_columns_content"> <div class="navigation__sub--content" data-gt-secondary="Shaping the future, together."> <div class="navigation__sub__wrapper"> <div class="navigation__sub__heading"> <h2 class="headline-3">Shaping the future, together.</h2> <a href="https://research.google/programs-and-events/" class="js-drawer-link" > Collaborate with us </a> </div> <ul class="navigation__sub__columns"> <li data-gt-secondary="Student programs"> <div class="navigation__sub__columns__desktop"> <h2 class="headline-6 navigation__sub__columns__heading"> Student programs </h2> <p class="navigation__sub__columns__description caption">Supporting the next generation of researchers through a wide range of programming.</p> <a href="https://research.google/programs-and-events/student-engagement/" class="glue-inline-link js-drawer-link" > <span class="sr-text">Learn more about our Student programs</span> <span aria-hidden="true">Learn more</span> </a> </div> <div class="navigation__sub__columns__mobile"> <a class="glue-header__link" href="https://research.google/programs-and-events/student-engagement/" > Student programs </a> </div> </li> <li data-gt-secondary="Faculty programs"> <div class="navigation__sub__columns__desktop"> <h2 class="headline-6 navigation__sub__columns__heading"> Faculty programs </h2> <p class="navigation__sub__columns__description caption">Participating in the academic research community through meaningful engagement with university faculty.</p> <a href="https://research.google/programs-and-events/faculty-engagement/" class="glue-inline-link js-drawer-link" > <span class="sr-text">Learn more about our Faculty programs</span> <span aria-hidden="true">Learn more</span> </a> </div> <div class="navigation__sub__columns__mobile"> <a class="glue-header__link" href="https://research.google/programs-and-events/faculty-engagement/" > Faculty programs </a> </div> </li> <li data-gt-secondary="Conferences &amp; events"> <div class="navigation__sub__columns__desktop"> <h2 class="headline-6 navigation__sub__columns__heading"> Conferences &amp; events </h2> <p class="navigation__sub__columns__description caption">Connecting with the broader research community through events is essential for creating progress in every aspect of our work.</p> <a href="https://research.google/conferences-and-events/" class="glue-inline-link js-drawer-link" > <span class="sr-text">Learn more about our Conferences &amp; events</span> <span aria-hidden="true">Learn more</span> </a> </div> <div class="navigation__sub__columns__mobile"> <a class="glue-header__link" href="https://research.google/conferences-and-events/" > Conferences &amp; events </a> </div> </li> </ul> <div class="navigation__sub__cta"> <a class="glue-button glue-button--high-emphasis js-drawer-link" href="https://research.google/programs-and-events/" target="_blank" rel="noreferrer noopener" > Collaborate with us </a> </div> </div> </div> </div> </div> </div> </li> <li class="glue-header__item " data-gt-primary="Careers" > <a class="glue-header__link " href="https://research.google/careers/" > <span class=""> Careers </span> </a> </li> <li class="glue-header__item " data-gt-primary="Blog" > <a class="glue-header__link " href="https://research.google/blog/" > <span class=""> Blog </span> </a> </li> </ul> </nav> </div> <!-- search (hide on search page) --> <div class="glue-header__search js-header-search"> <div class="glue-header__search__input"> <div class="search-input " data-type="header"> <input type="search" class="caption --empty-search js-search-bar js-gt-search-input" placeholder="Search"> <button class="search-input__button --search js-gt-search-btn"> <svg role="presentation" aria-hidden="true" class="glue-icon glue-icon--18px "> <use href="/gr/static/assets/icons/glue-icons.svg#search"></use> </svg> </button> <button class="search-input__button --clear"> <svg role="presentation" aria-hidden="true" class="glue-icon glue-icon--18px "> <use href="/gr/static/assets/icons/glue-icons.svg#close"></use> </svg> </button> </div> </div> <button class="glue-header__search__btn js-header-search-btn"> <svg role="presentation" aria-hidden="true" aria-hidden="true" class="glue-icon glue-icon--24px search"> <use href="/gr/static/assets/icons/glue-icons.svg#search"></use> </svg> <svg role="presentation" aria-hidden="true" aria-hidden="true" class="glue-icon glue-icon--24px close"> <use href="/gr/static/assets/icons/glue-icons.svg#close"></use> </svg> <span class="sr-text js-header-search-sr-text">Search</span> </button> </div> </div> </div> <div class="glue-header__drawer-backdrop"> <div class="glue-header__mobile_close"> <button class="glue-header__drawer-toggle-btn js-mobile-nav-close" aria-label="Close the navigation drawer"> <svg class="glue-icon glue-icon--24px" role="presentation" aria-hidden="true"> <use href="/gr/static/assets/icons/glue-icons.svg#close"></use> </svg> </button> </div> </div> </header> <main id="page-content"> <div class="blog-detail-page --legacy " > <section class="basic-hero bhoig --theme-dark --large-image" data-gt-id="basic_hero" data-gt-component-name=""> <div class="glue-page"> <div class="glue-grid"> <div class="bhoig__image-wrapper glue-grid__col--span-4 glue-grid__col--span-5-md glue-grid__col--span-4-lg"> <div class="bhoig__image-bg" style=""> <picture> <img src="https://storage.googleapis.com/gweb-research2023-media/original_images/a844cf4c4ee0a326f5b303e6840b142a-ScaNN2Btom2Bexport.gif" alt="" class=""/> </picture> </div> </div> <div class="bhoig__breadcrumb-wrapper glue-grid__col--span-10 glue-grid__col--span-9-md glue-grid__col--span-10-lg"> <nav class="glue-breadcrumbs" aria-label="Breadcrumbs"> <ol class="glue-breadcrumbs__list"> <li class="glue-breadcrumbs__item"> <a class="glue-breadcrumbs__link attribution" href="/">Home</a> <svg role="presentation" aria-hidden="true" class="glue-icon "> <use href="/gr/static/assets/icons/glue-icons.svg#chevron-right"></use> </svg> </li> <li class="glue-breadcrumbs__item"> <a class="glue-breadcrumbs__link attribution" href="/blog/">Blog</a> <svg role="presentation" aria-hidden="true" class="glue-icon "> <use href="/gr/static/assets/icons/glue-icons.svg#chevron-right"></use> </svg> </li> </ol> </nav> </div> <h1 class="headline-1 bhoig__headline glue-grid__col--span-8 glue-grid__col--span-7-md glue-grid__col--span-8-lg">Announcing ScaNN: Efficient Vector Similarity Search</h1> <div class="basic-hero__description bhoig__description glue-grid__col--span-8 glue-grid__col--span-7-md glue-grid__col--span-8-lg"> <div class="basic-hero--blog-detail__description"><p>July 28, 2020</p><span class="dot-separator"></span><p>Posted by Philip Sun, Software Engineer, Google Research</p></div> </div> <div class="bhoig__cta glue-grid__col--span-8 glue-grid__col--span-7-md glue-grid__col--span-8-lg"> </div> </div> </div> </section> <div class="glue-page"> <div class="glue-grid blog-detail-page__grid"> <div class="glue-grid__col glue-grid__col--span-4-sm glue-grid__col--span-12-md glue-grid__col--span-9-lg"> <div class="quicklinks-wrapper--mobile"> <div class="block-quick_links"> <section class="quicklinks"> <h2 class="eyebrow">Quick links</h2> <ul class="quicklinks__list"> <li class="quicklinks__item quicklinks__item--share js-quicklinks-share"> <button class="quicklinks__share-button js-quicklinks-share__button" aria-expanded="false" aria-controls="js-quicklinks-share__list"> <span class="icon icon--share"></span> <span class="quicklinks__item__text">Share</span> </button> <section class="glue-social glue-social--monochrome quicklinks__share-list js-quicklinks-share__list glue-elevation-level-1 js-gt-share-wrapper"> <div class="glue-social__group"> <ul class="glue-social__list" role="list"> <li class="glue-social__item"> <a class="glue-social__link" href="https://twitter.com/intent/tweet?text=https%3A//research.google/blog/announcing-scann-efficient-vector-similarity-search/" title="Share on Twitter" target="_blank" rel="noopener" data-gt-method="x"> <svg role="presentation" aria-hidden="true" class="glue-icon glue-icon--social glue-icon--24px"> <use href="/gr/static/assets/icons/twitter-x.svg#twitter-x"></use> </svg> </a> </li> <li class="glue-social__item"> <a class="glue-social__link" href="https://www.facebook.com/sharer/sharer.php?u=https%3A//research.google/blog/announcing-scann-efficient-vector-similarity-search/" title="Share on Facebook" target="_blank" rel="noopener" data-gt-method="facebook"> <svg role="presentation" aria-hidden="true" class="glue-icon glue-icon--social glue-icon--color-facebook glue-icon--24px"> <use href="/gr/static/assets/icons/facebook.svg#facebook"></use> </svg> </a> </li> <li class="glue-social__item"> <a class="glue-social__link" href="https://www.linkedin.com/shareArticle?url=https%3A//research.google/blog/announcing-scann-efficient-vector-similarity-search/&amp;mini=true" title="Share on LinkedIn" target="_blank" rel="noopener" data-gt-method="linkedin"> <svg role="presentation" aria-hidden="true" class="glue-icon glue-icon--social glue-icon--color-linkedin glue-icon--24px"> <use href="/gr/static/assets/icons/glue-icons.svg#post-linkedin"></use> </svg> </a> </li> <li class="glue-social__item"> <a class="glue-social__link" href="mailto:name@example.com?subject=Check%20out%20this%20site&body=Check%20out%20https%3A//research.google/blog/announcing-scann-efficient-vector-similarity-search/" title="Send via Email" data-gt-method="email"> <svg role="presentation" aria-hidden="true" class="glue-icon glue-icon--social glue-icon--color-sharemail glue-icon--24px"> <use href="/gr/static/assets/icons/glue-icons.svg#email"></use> </svg> </a> </li> <li class="glue-social__item"> <div class="glue-social__popover"> <div class="glue-social__icon-trigger" aria-label="Get shareable link" title="Get shareable link" id="share-static-popover-trigger"> <svg role="presentation" aria-hidden="true" class="glue-icon glue-icon--social glue-icon--color-sharelink glue-icon--24px"> <use href="/gr/static/assets/icons/glue-icons.svg#link"></use> </svg> </div> <div class="glue-social__dialog" id="share-popover-dialog"> <svg role="presentation" aria-hidden="true" class="glue-icon glue-icon--social glue-icon--color-sharelink glue-icon--24px"> <use href="/public/icons/glue-icons.svg#link"></use> </svg> <div class="glue-social__copy" glue-copy-success="Copied to clipboard" glue-copy-fail="Press Ctrl+C or ⌘+C to copy"> <input class="glue-social__copy-input" readonly="" type="text" value="https://research.google/blog/announcing-scann-efficient-vector-similarity-search/" aria-label="URL"> <button class="glue-social__copy-btn" id="share-copy-btn" data-gt-method="link-copied">Copy link</button> </div> <div aria-label="Close" class="glue-social__close-btn"> × </div> </div> </div> </li> </ul> </div> </section> </li> </ul> </section> </div> </div> <div class="blog-detail-wrapper js-gt-blog-detail-wrapper" data-gt-publish-date="20200728"> <div class="rich-text --theme- --mode-" data-gt-id="rich_text" data-gt-component-name=""> <p> Suppose one wants to search through a large dataset of literary works using queries that require an exact match of title, author, or other easily machine-indexable criteria. Such a task would be well suited for a relational database using a language such as SQL. However, if one wants to support more abstract queries, such as “Civil War poem,” it is no longer possible to rely on naive similarity metrics such as the number of words in common between two phrases. For example, the query “science fiction” is more related to “future” than it is to “earth science” despite the former having zero, and the latter having one, word in common with the query.</p> <p> Machine learning (ML) has greatly improved computers’ abilities to understand language semantics and therefore answer these abstract queries. Modern ML models can transform inputs such as text and images into embeddings, high dimensional vectors trained such that more similar inputs cluster closer together. For a given query, we can therefore compute its embedding, and find the literary works whose embeddings are closest to the query’s. In this manner, ML has transformed an abstract and previously difficult-to-specify task into a rigorous mathematical one. However, a computational challenge remains: for a given query embedding, how does one quickly find the nearest dataset embeddings? The set of embeddings is often too large for exhaustive search and its high dimensionality makes pruning difficult. </p> <p> In our <a href="https://icml.cc/Conferences/2020" target="_blank" rel="noopener noreferrer">ICML 2020</a> paper, “<a href="https://arxiv.org/abs/1908.10396" target="_blank" rel="noopener noreferrer">Accelerating Large-Scale Inference with Anisotropic Vector Quantization,”</a> we address this problem by focusing on how to compress the dataset vectors to enable fast approximate distance computations, and propose a new compression technique that significantly boosts accuracy compared to prior works. This technique is utilized in our recently open-sourced <a href="https://github.com/google-research/google-research/tree/master/scann" target="_blank" rel="noopener noreferrer">vector similarity search library</a> (ScaNN), and enables us to outperform other vector similarity search libraries by a factor of two, as measured on <a href="http://ann-benchmarks.com" target="_blank" rel="noopener noreferrer">ann-benchmarks.com</a>.</p> <div style="line-height:40%;"> <br> </div> <h2>The Importance of Vector Similarity Search</h2> <p> Embedding-based search is a technique that is effective at answering queries that rely on semantic understanding rather than simple indexable properties. In this technique, machine learning models are trained to map the queries and database items to a common vector embedding space, such that the distance between embeddings carries semantic meaning, i.e., similar items are closer together.</p> <table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody> <tr><td style="text-align: center;"><a href="https://1.bp.blogspot.com/-Rsymb9XvPOE/Xx8rfRnmTHI/AAAAAAAAGRQ/U2n_bBNXS4IBstYrx2IalrFXufLUvmn2gCLcBGAsYHQ/s1600/ScaNN%2Btom%2Bexport.gif" target="_blank" rel="noopener noreferrer"><img border="0" data-original-height="245" data-original-width="512" height="306" src="https://1.bp.blogspot.com/-Rsymb9XvPOE/Xx8rfRnmTHI/AAAAAAAAGRQ/U2n_bBNXS4IBstYrx2IalrFXufLUvmn2gCLcBGAsYHQ/s640/ScaNN%2Btom%2Bexport.gif" width="640" /></a></td></tr> <tr><td class="tr-caption" style="text-align: center;">The two-tower neural network model, illustrated above, is a specific type of embedding-based search where queries and database items are mapped to the embedding space by two respective neural networks. In this example the model responds to natural-language queries for a hypothetical literary database.</td></tr> </tbody></table> <p> To answer a query with this approach, the system must first map the query to the embedding space. It then must find, among all database embeddings, the ones closest to the query; this is the <a href="https://en.wikipedia.org/wiki/Nearest_neighbor_search" target="_blank" rel="noopener noreferrer">nearest neighbor search</a> problem. One of the most common ways to define the query-database embedding similarity is by their <a href="https://en.wikipedia.org/wiki/Dot_product" target="_blank" rel="noopener noreferrer">inner product</a>; this type of nearest neighbor search is known as <a href="https://papers.nips.cc/paper/5329-asymmetric-lsh-alsh-for-sublinear-time-maximum-inner-product-search-mips.pdf" target="_blank" rel="noopener noreferrer">maximum inner-product search</a> (MIPS).</p> <p> Because the database size can easily be in the millions or even billions, MIPS is often the computational bottleneck to inference speed, and exhaustive search is impractical. This necessitates the use of approximate MIPS algorithms that exchange some accuracy for a significant speedup over brute-force search.</p> <div style="line-height:40%;"> <br> </div> <h2>A New Quantization Approach for MIPS</h2> <p> <a href="https://github.com/erikbern/ann-benchmarks#evaluated" target="_blank" rel="noopener noreferrer">Several state-of-the-art solutions</a> for MIPS are based on compressing the database items so that an approximation of their inner product can be computed in a fraction of the time taken by brute-force. This compression is commonly done with <a href="https://en.wikipedia.org/wiki/Vector_quantization" target="_blank" rel="noopener noreferrer">learned quantization</a>, where a <em>codebook</em> of vectors is trained from the database and is used to approximately represent the database elements.</p> <p> Previous vector quantization schemes quantized database elements with the aim of minimizing the average distance between each vector <em>x</em> and its quantized form <em>x̃</em>. While this is a useful metric, optimizing for this is not equivalent to optimizing nearest-neighbor search accuracy. The key idea behind our paper is that encodings with <em>higher</em> average distance may actually result in superior MIPS accuracy.</p> <p> The intuition for our result is illustrated below. Suppose we have two database embeddings <em>x</em><sub>1</sub> and <em>x</em><sub>2</sub>, and must quantize each to one of two centers: <em>c</em><sub>1</sub> or <em>c</em><sub>2</sub>. Our goal is to quantize each <em>x<sub>i</sub></em> to <em>x̃<sub>i</sub></em> such that the inner product &lt;<em>q</em>, <em>x̃<sub>i</sub></em>&gt; is as similar to the original inner product &lt;<em>q</em>, <em>x<sub>i</sub></em>&gt; as possible. This can be visualized as making the magnitude of the projection of <em>x̃<sub>i</sub></em> onto <em>q</em> as similar as possible to the projection of <em>x<sub>i</sub></em> onto <em>q</em>. In the traditional approach to quantization (left), we would pick the closest center for each <em>x<sub>i</sub></em>, which leads to an incorrect relative ranking of the two points: &lt;<em>q</em>, <em>x̃<sub>1</sub></em>&gt; is <em>greater</em> than &lt;<em>q</em>, <em>x̃</em><sub>2</sub>&gt;, even though &lt;<em>q</em>, <em>x</em><sub>1</sub>&gt; is <em>less</em> than &lt;<em>q</em>, <em>x</em><sub>2</sub>&gt;! If we instead assign <em>x</em><sub>1</sub> to <em>c</em><sub>1</sub> and <em>x</em><sub>2</sub> to <em>c</em><sub>2</sub>, we get the correct ranking. This is illustrated in the figure below.</p> <table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody> <tr><td style="text-align: center;"><a href="https://1.bp.blogspot.com/-0HxtiXvnyTU/Xx8xNOgfUSI/AAAAAAAAGRc/Vgf0gK50N9cIG1aA9TWFLx7nqAYwuP5TQCLcBGAsYHQ/s1600/image2.png" target="_blank" rel="noopener noreferrer"><img border="0" data-original-height="557" data-original-width="1600" height="222" src="https://1.bp.blogspot.com/-0HxtiXvnyTU/Xx8xNOgfUSI/AAAAAAAAGRc/Vgf0gK50N9cIG1aA9TWFLx7nqAYwuP5TQCLcBGAsYHQ/s640/image2.png" width="640" /></a></td></tr> <tr><td class="tr-caption" style="text-align: center;">The goal is to quantize each <i>x<sub>i</sub></i> to <i>x̃<sub>i</sub></i> = <i>c</i><sub>1</sub> or <i>x̃<sub>i</sub></i> = <i>c</i><sub>2</sub>. Traditional quantization (left) results in the incorrect ordering of <em>x</em><sub>1</sub> and <em>x</em><sub>2</sub> for this query. Even though our approach (right) chooses centers farther away from the data points, this in fact leads to lower inner product error and higher accuracy.</td></tr> </tbody></table> <p> It turns out that direction matters as well as magnitude--even though <em>c</em><sub>1</sub> is farther from <em>x</em><sub>1</sub> than <em>c</em><sub>2</sub>, <em>c</em><sub>1</sub> is offset from <em>x</em><sub>1</sub> in a direction almost entirely orthogonal to <em>x</em><sub>1</sub>, while <em>c</em><sub>2</sub>’s offset is parallel (for <em>x</em><sub>2</sub>, the same situation applies but flipped). Error in the parallel direction is much more harmful in the MIPS problem because it disproportionately impacts high inner products, which by definition are the ones that MIPS is trying to estimate accurately.</p> <p> Based on this intuition, we more heavily penalize quantization error that is parallel to the original vector. We refer to our novel quantization technique as <em>anisotropic vector quantization</em> due to the directional dependence of its loss function. The ability of this technique to trade increased quantization error of lower inner products in exchange for superior accuracy for high inner products is the key innovation and the source of its performance gains.</p> <table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody> <tr><td style="text-align: center;"><a href="https://1.bp.blogspot.com/-l4VY-q1YcEE/XxsvREuIEvI/AAAAAAAAGQs/zzJNUHTZ9SU8LtKzm2rgl0oQCuiJ9fhIwCLcBGAsYHQ/s1600/image1.png" target="_blank" rel="noopener noreferrer"><img border="0" data-original-height="513" data-original-width="1600" height="204" src="https://1.bp.blogspot.com/-l4VY-q1YcEE/XxsvREuIEvI/AAAAAAAAGQs/zzJNUHTZ9SU8LtKzm2rgl0oQCuiJ9fhIwCLcBGAsYHQ/s640/image1.png" width="640" /></a></td></tr> <tr><td class="tr-caption" style="text-align: center;">In the above diagrams, ellipses denote contours of equal loss. In anisotropic vector quantization, error parallel to the original data point x is penalized more.</td></tr> </tbody></table> <h2>Anisotropic Vector Quantization in ScaNN</h2> <p> Anisotropic vector quantization allows ScaNN to better estimate inner products that are likely to be in the top-<em>k</em> MIPS results and therefore achieve higher accuracy. On the <a href="http://ann-benchmarks.com/glove-100-angular_10_angular.html" target="_blank" rel="noopener noreferrer">glove-100-angular benchmark</a> from <a href="http://ann-benchmarks.com" target="_blank" rel="noopener noreferrer">ann-benchmarks.com</a>, ScaNN outperformed eleven other carefully tuned vector similarity search libraries, handling roughly twice as many queries per second for a given accuracy as the next-fastest library.<a href="#1" name="top1"><sup>*</sup></a></p> <table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody> <tr><td style="text-align: center;"><a href="https://1.bp.blogspot.com/--mbMV8fQY28/XxsvbGL_l-I/AAAAAAAAGQ0/Br9B3XGnBa07barUxC4XTi8hSDxYzwAEgCLcBGAsYHQ/s1600/image5.png" target="_blank" rel="noopener noreferrer"><img border="0" data-original-height="943" data-original-width="1600" height="376" src="https://1.bp.blogspot.com/--mbMV8fQY28/XxsvbGL_l-I/AAAAAAAAGQ0/Br9B3XGnBa07barUxC4XTi8hSDxYzwAEgCLcBGAsYHQ/s640/image5.png" width="640" /></a></td></tr> <tr><td class="tr-caption" style="text-align: center;">Recall@k is a commonly used metric for nearest neighbor search accuracy, which measures the proportion of the true nearest k neighbors that are present in an algorithm’s returned k neighbors. ScaNN (upper purple line) consistently achieves superior performance across various points of the speed-accuracy trade-off.</td></tr> </tbody></table> <p> ScaNN is open-source software and you can try it yourself at <a href="https://github.com/google-research/google-research/tree/master/scann" target="_blank" rel="noopener noreferrer">GitHub</a>. The library can be directly installed via Pip and has interfaces for both TensorFlow and Numpy inputs. Please see the GitHub repository for further instructions on installing and configuring ScaNN.</p> <div style="line-height:40%;"> <br> </div> <h2>Conclusion</h2> <p> By modifying the vector quantization objective to align with the goals of MIPS, we achieve <a href="http://ann-benchmarks.com/" target="_blank" rel="noopener noreferrer">state-of-the-art performance</a> on nearest neighbor search benchmarks, a key indicator of embedding-based search performance. Although anisotropic vector quantization is an important technique, we believe it is just one example of the performance gains achievable by optimizing algorithms for the end goal of improving search accuracy rather than an intermediate goal such as compression distortion.</p> <div style="line-height:40%;"> <br> </div> <h2>Acknowledgements</h2> <p> <em>This post reflects the work of the entire ScaNN team: David Simcha, Erik Lindgren, Felix Chern, Nathan Cordeiro, Ruiqi Guo, Sanjiv Kumar, and Zonglin Li. We’d also like to thank Dan Holtmann-Rice, Dave Dopson, and Felix Yu.</em></p> <hr width="100%"><p><span class="Apple-style-span" style="font-size: x-small;"><br /> <a name="1"><b>* </b></a>ScaNN performs similarly well on the other datasets of <a href="http://ann-benchmarks.com" target="_blank" rel="noopener noreferrer">ann-benchmarks.com</a>, but the website currently shows outdated, lower numbers. See this <a href="https://github.com/erikbern/ann-benchmarks/pull/172" target="_blank" rel="noopener noreferrer">pull request</a> for more representative performance figures on other datasets. <a href="#top1">↩</a><br /> </span> </div> </div> <section aria-label="List of footnotes" data-gt-id="footnotes" data-gt-component-name="Footnotes"> <ol class="js-footnotes footnotes"> </ol> </section> <section class="blog-labels" data-gt-id="blog_labels" data-gt-component-name="Blog Labels"> <ul class="blog-labels__list"> <span class="caption">Labels:</span> <li class="caption"> <a class="caption" href="/blog/label/data-mining-modeling">Data Mining &amp; Modeling</a> <div class="blog-labels__spacer"></div> </li> <li class="caption"> <a class="caption" href="/blog/label/machine-intelligence">Machine Intelligence</a> </li> </ul> </section> </div> <div class="glue-grid__col glue-grid__col--span-4-sm glue-grid__col--span-12-md glue-grid__col--span-3-lg"> <div class="quicklinks-wrapper--desktop quicklinks-wrapper--sticky"> <div class="block-quick_links"> <section class="quicklinks"> <h2 class="eyebrow">Quick links</h2> <ul class="quicklinks__list"> <li class="quicklinks__item quicklinks__item--share js-quicklinks-share"> <button class="quicklinks__share-button js-quicklinks-share__button" aria-expanded="false" aria-controls="js-quicklinks-share__list"> <span class="icon icon--share"></span> <span class="quicklinks__item__text">Share</span> </button> <section class="glue-social glue-social--monochrome quicklinks__share-list js-quicklinks-share__list glue-elevation-level-1 js-gt-share-wrapper"> <div class="glue-social__group"> <ul class="glue-social__list" role="list"> <li class="glue-social__item"> <a class="glue-social__link" href="https://twitter.com/intent/tweet?text=https%3A//research.google/blog/announcing-scann-efficient-vector-similarity-search/" title="Share on Twitter" target="_blank" rel="noopener" data-gt-method="x"> <svg role="presentation" aria-hidden="true" class="glue-icon glue-icon--social glue-icon--24px"> <use href="/gr/static/assets/icons/twitter-x.svg#twitter-x"></use> </svg> </a> </li> <li class="glue-social__item"> <a class="glue-social__link" href="https://www.facebook.com/sharer/sharer.php?u=https%3A//research.google/blog/announcing-scann-efficient-vector-similarity-search/" title="Share on Facebook" target="_blank" rel="noopener" data-gt-method="facebook"> <svg role="presentation" aria-hidden="true" class="glue-icon glue-icon--social glue-icon--color-facebook glue-icon--24px"> <use href="/gr/static/assets/icons/facebook.svg#facebook"></use> </svg> </a> </li> <li class="glue-social__item"> <a class="glue-social__link" href="https://www.linkedin.com/shareArticle?url=https%3A//research.google/blog/announcing-scann-efficient-vector-similarity-search/&amp;mini=true" title="Share on LinkedIn" target="_blank" rel="noopener" data-gt-method="linkedin"> <svg role="presentation" aria-hidden="true" class="glue-icon glue-icon--social glue-icon--color-linkedin glue-icon--24px"> <use href="/gr/static/assets/icons/glue-icons.svg#post-linkedin"></use> </svg> </a> </li> <li class="glue-social__item"> <a class="glue-social__link" href="mailto:name@example.com?subject=Check%20out%20this%20site&body=Check%20out%20https%3A//research.google/blog/announcing-scann-efficient-vector-similarity-search/" title="Send via Email" data-gt-method="email"> <svg role="presentation" aria-hidden="true" class="glue-icon glue-icon--social glue-icon--color-sharemail glue-icon--24px"> <use href="/gr/static/assets/icons/glue-icons.svg#email"></use> </svg> </a> </li> <li class="glue-social__item"> <div class="glue-social__popover"> <div class="glue-social__icon-trigger" aria-label="Get shareable link" title="Get shareable link" id="share-static-popover-trigger"> <svg role="presentation" aria-hidden="true" class="glue-icon glue-icon--social glue-icon--color-sharelink glue-icon--24px"> <use href="/gr/static/assets/icons/glue-icons.svg#link"></use> </svg> </div> <div class="glue-social__dialog" id="share-popover-dialog"> <svg role="presentation" aria-hidden="true" class="glue-icon glue-icon--social glue-icon--color-sharelink glue-icon--24px"> <use href="/public/icons/glue-icons.svg#link"></use> </svg> <div class="glue-social__copy" glue-copy-success="Copied to clipboard" glue-copy-fail="Press Ctrl+C or ⌘+C to copy"> <input class="glue-social__copy-input" readonly="" type="text" value="https://research.google/blog/announcing-scann-efficient-vector-similarity-search/" aria-label="URL"> <button class="glue-social__copy-btn" id="share-copy-btn" data-gt-method="link-copied">Copy link</button> </div> <div aria-label="Close" class="glue-social__close-btn"> × </div> </div> </div> </li> </ul> </div> </section> </li> </ul> </section> </div> </div> </div> </div> </div> <section class="related-posts offset-two-up --theme-dark" data-gt-id="related_blog_posts" data-gt-component-name="Related Blog Posts"> <div class="glue-page glue-grid"> <div class="offset-two-up__left-col glue-grid__col glue-grid__col--span-4-sm glue-grid__col--span-12-md glue-grid__col--span-3-lg"> <h3 class="offset-two-up__headline headline-3">Other posts of interest</h3> </div> <div class="glue-grid__col glue-grid__col--span-4-sm glue-grid__col--span-12-md glue-grid__col--span-9-lg"> <ul class="card-stack--basic nested-glue-grid-override"> <li class="glue-grid__col glue-grid__col--span-4-md glue-grid__col--span-4-sm"> <a class="glue-card not-glue " href="/blog/chain-of-agents-large-language-models-collaborating-on-long-context-tasks/" aria-label="" > <div class="glue-card__inner"> <div class="related-posts__image"> <img src="https://storage.googleapis.com/gweb-research2023-media/original_images/CoA-5-HotpotQA.png" alt="" /> </div> <div class="glue-card__content --no-media"> <p class="glue-label glue-spacer-1-bottom">January 23, 2025</p> <span class="headline-5 js-gt-item-id"> Chain of Agents: Large language models collaborating on long-context tasks </span> </div> <ul class="glue-card__link-list"> <li class="glue-card__link-list__item"> <span class="not-glue caption"> Generative AI <span class="glue-card__link-list__spacer">&#183;</span> </span> </li> <li class="glue-card__link-list__item"> <span class="not-glue caption"> Machine Intelligence <span class="glue-card__link-list__spacer">&#183;</span> </span> </li> <li class="glue-card__link-list__item"> <span class="not-glue caption"> Natural Language Processing </span> </li> </ul> </div> </a> </li> <li class="glue-grid__col glue-grid__col--span-4-md glue-grid__col--span-4-sm"> <a class="glue-card not-glue " href="/blog/understanding-transformer-reasoning-capabilities-via-graph-algorithms/" aria-label="" > <div class="glue-card__inner"> <div class="related-posts__image"> <img src="https://storage.googleapis.com/gweb-research2023-media/original_images/TFGraphs_Preview.png" alt="" /> </div> <div class="glue-card__content --no-media"> <p class="glue-label glue-spacer-1-bottom">December 20, 2024</p> <span class="headline-5 js-gt-item-id"> Understanding Transformer reasoning capabilities via graph algorithms </span> </div> <ul class="glue-card__link-list"> <li class="glue-card__link-list__item"> <span class="not-glue caption"> Algorithms &amp; Theory <span class="glue-card__link-list__spacer">&#183;</span> </span> </li> <li class="glue-card__link-list__item"> <span class="not-glue caption"> Data Mining &amp; Modeling </span> </li> </ul> </div> </a> </li> <li class="glue-grid__col glue-grid__col--span-4-md glue-grid__col--span-4-sm"> <a class="glue-card not-glue " href="/blog/google-research-2024-breakthroughs-for-impact-at-every-scale/" aria-label="" > <div class="glue-card__inner"> <div class="related-posts__image"> <img src="https://storage.googleapis.com/gweb-research2023-media/original_images/2024YiR-0-Hero.png" alt="" /> </div> <div class="glue-card__content --no-media"> <p class="glue-label glue-spacer-1-bottom">December 19, 2024</p> <span class="headline-5 js-gt-item-id"> Google Research 2024: Breakthroughs for impact at every scale </span> </div> <ul class="glue-card__link-list"> <li class="glue-card__link-list__item"> <span class="not-glue caption"> Algorithms &amp; Theory <span class="glue-card__link-list__spacer">&#183;</span> </span> </li> <li class="glue-card__link-list__item"> <span class="not-glue caption"> Climate &amp; Sustainability <span class="glue-card__link-list__spacer">&#183;</span> </span> </li> <li class="glue-card__link-list__item"> <span class="not-glue caption"> General Science <span class="glue-card__link-list__spacer">&#183;</span> </span> </li> <li class="glue-card__link-list__item"> <span class="not-glue caption"> Generative AI <span class="glue-card__link-list__spacer">&#183;</span> </span> </li> <li class="glue-card__link-list__item"> <span class="not-glue caption"> Health &amp; Bioscience <span class="glue-card__link-list__spacer">&#183;</span> </span> </li> <li class="glue-card__link-list__item"> <span class="not-glue caption"> Machine Intelligence <span class="glue-card__link-list__spacer">&#183;</span> </span> </li> <li class="glue-card__link-list__item"> <span class="not-glue caption"> Quantum <span class="glue-card__link-list__spacer">&#183;</span> </span> </li> <li class="glue-card__link-list__item"> <span class="not-glue caption"> Year in Review </span> </li> </ul> </div> </a> </li> </ul> </div> </div> </section> </div> </main> <footer class="glue-footer"> <div class="glue-page"> <section class="glue-social"> <div class="glue-social__group glue-social--monochrome"> <p class="glue-social__title glue-social__title--inline"> Follow us </p> <nav class="js-gt-follow-us-wrapper" aria-label="Social media links"> <ul class="glue-social__list" role="list"> <li class="glue-social__item"> <a class="glue-social__link" href="https://twitter.com/GoogleAI" title="Follow us on x" target="_blank" rel="noopener" data-gt-method="x"" > <svg role="presentation" aria-hidden="true" class="glue-icon glue-icon--social glue-icon--24px"> <use href="/gr/static/assets/icons/twitter-x.svg#twitter-x"></use> </svg> </a> </li> <li class="glue-social__item"> <a class="glue-social__link" href="https://www.linkedin.com/showcase/googleresearch/" title="Follow us on linkedin" target="_blank" rel="noopener" data-gt-method="linkedin"" > <svg role="presentation" aria-hidden="true" class="glue-icon glue-icon--social glue-icon--24px"> <use href="/gr/static/assets/icons/glue-icons.svg#post-linkedin"></use> </svg> </a> </li> <li class="glue-social__item"> <a class="glue-social__link" href="https://www.youtube.com/c/GoogleResearch" title="Follow us on youtube" target="_blank" rel="noopener" data-gt-method="youtube"" > <svg role="presentation" aria-hidden="true" class="glue-icon glue-icon--social glue-icon--24px"> <use href="/gr/static/assets/icons/glue-icons.svg#video-youtube"></use> </svg> </a> </li> <li class="glue-social__item"> <a class="glue-social__link" href="https://github.com/google-research" title="Follow us on github" target="_blank" rel="noopener" data-gt-method="github"" > <svg role="presentation" aria-hidden="true" class="glue-icon glue-icon--social glue-icon--24px"> <use href="/gr/static/assets/icons/github.svg#github"></use> </svg> </a> </li> </ul> </nav> </div> </section> </div> <div class="glue-fullbleed"></div> <section class="glue-page"> <nav class="glue-footer__global" aria-label="Footer resource links"> <div class="glue-footer__logo"> <a href="https://www.google.com" title="Google" class="glue-footer__link"> <svg role="presentation" aria-hidden="true" class="glue-icon glue-footer__logo-img"> <use href="/gr/static/assets/icons/glue-icons.svg#google-solid-logo"></use> </svg> </a> </div> <ul class="glue-footer__global-links glue-no-bullet js-gt-global-nav-wrapper" role="list"> <li class="glue-footer__global-links-list-item" data-gt-primary="About Google"> <a class="glue-footer__link" href="https://about.google/" target="_blank" rel="noopener"> About Google </a> </li> <li class="glue-footer__global-links-list-item" data-gt-primary="Google Products"> <a class="glue-footer__link" href="https://about.google/intl/en/products/" target="_blank" rel="noopener"> Google Products </a> </li> <li class="glue-footer__global-links-list-item" data-gt-primary="Privacy"> <a class="glue-footer__link" href="https://policies.google.com/privacy" target="_blank" rel="noopener"> Privacy </a> </li> <li class="glue-footer__global-links-list-item" data-gt-primary="Terms"> <a class="glue-footer__link" href="https://policies.google.com/terms" target="_blank" rel="noopener"> Terms </a> </li> </ul> <ul class="glue-footer__global-links glue-footer__global-links--extra glue-no-bullet" role="list"> <li class="glue-footer__global-links-list-item glue-footer__global-links-list-item--extra"> <a class="glue-footer__link" href="https://support.google.com/?hl=en"> <svg role="presentation" aria-hidden="true" aria-hidden="true" class="glue-icon glue-icon--24px glue-icon--footer-help"> <use href="/gr/static/assets/icons/glue-icons.svg#help"></use> </svg> Help </a> </li> <li class="glue-footer__global-links-list-item glue-footer__global-links-list-item--extra"> <button class="glue-footer__link google-feedback js-feedback-button" href="" data-product-id="5137383" > Submit feedback </button> </li> </ul> </nav> </section> </footer> <script src="https://www.gstatic.com/glue/v27_1/material-components-web.min.js"></script> <script src="https://www.youtube.com/player_api"></script> <script type="text/javascript" src="/gr/static/js/googleresearch.js?id=b70549917812130af912601ad763f13e"></script> <script type="text/javascript" src="https://support.google.com/inapp/api.js"></script> <script src="https://www.gstatic.com/glue/cookienotificationbar/cookienotificationbar.min.js" data-glue-cookie-notification-bar-category="2B"> </script> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10