mirror of
https://github.com/hanzoai/papers.git
synced 2026-11-03 02:27:30 +00:00
Every author block and the authorship standard said Los Angeles; Hanzo has been in San Francisco since at least 2016. The five catalogue PDFs whose sources changed are rebuilt so papers.hanzo.ai says so too. Co-authored-by: Hanzo Dev <[email protected]>
101 lines
4.5 KiB
TeX
101 lines
4.5 KiB
TeX
% Hops Do Not Fix Multi-Hop Retrieval
|
|
\documentclass[11pt]{article}
|
|
\usepackage{../shared/hanzocover}
|
|
\usepackage{amsmath, amssymb}
|
|
\usepackage{booktabs}
|
|
\usepackage{graphicx}
|
|
\usepackage{xcolor}
|
|
\usepackage{enumitem}
|
|
\usepackage{array}
|
|
\usepackage{listings}
|
|
\input{../shared/lstlang}
|
|
\usepackage{hyperref}
|
|
\hypersetup{colorlinks=true,linkcolor=black,citecolor=blue,urlcolor=blue}
|
|
|
|
\newcommand{\meas}{\textcolor{blue!60!black}{\small[measured]}}
|
|
\newcommand{\cited}{\textcolor{purple!70!black}{\small[cited]}}
|
|
|
|
\newcommand{\ph}{\textbf{XXX}}
|
|
\newcommand{\rQsingle}{\ph} \newcommand{\rQmulti}{\ph}
|
|
\newcommand{\rSearchMs}{\ph}
|
|
\newcommand{\rSallFive}{\ph} \newcommand{\rSallTen}{\ph}
|
|
\newcommand{\rSallTwenty}{\ph} \newcommand{\rSanyFive}{\ph}
|
|
\newcommand{\rSanyTen}{\ph} \newcommand{\rSanyTwenty}{\ph}
|
|
\newcommand{\rMallFive}{\ph} \newcommand{\rMallTen}{\ph}
|
|
\newcommand{\rMallTwenty}{\ph} \newcommand{\rManyFive}{\ph}
|
|
\newcommand{\rManyTen}{\ph} \newcommand{\rManyTwenty}{\ph}
|
|
\newcommand{\rPolSingleS}{\ph} \newcommand{\rPolSingleM}{\ph}
|
|
\newcommand{\rPolSingleMs}{\ph} \newcommand{\rPolPrfS}{\ph}
|
|
\newcommand{\rPolPrfM}{\ph} \newcommand{\rPolPrfMs}{\ph}
|
|
\newcommand{\rPolMultiS}{\ph} \newcommand{\rPolMultiM}{\ph}
|
|
\newcommand{\rPolMultiMs}{\ph} \newcommand{\rPolChainS}{\ph}
|
|
\newcommand{\rPolChainM}{\ph} \newcommand{\rPolChainMs}{\ph}
|
|
\newcommand{\rBestDelta}{\ph} \newcommand{\rWorstDelta}{\ph}
|
|
\newcommand{\rGoldAvg}{\ph} \newcommand{\rGoldMax}{\ph}
|
|
\newcommand{\rSpanSessions}{\ph}\newcommand{\rMedRank}{\ph}
|
|
\newcommand{\rMedWorst}{\ph} \newcommand{\rBeyondTwenty}{\ph}
|
|
\newcommand{\rBeyondHundred}{\ph}
|
|
\input{results-data}
|
|
|
|
\title{Hops Do Not Fix Multi-Hop Retrieval\\[0.3em]
|
|
{\large A Negative Result on Long-Horizon Conversational Memory,\\
|
|
and What the Failure Actually Is}}
|
|
\author{
|
|
Hanzo AI Research\thanks{Corresponding author: [email protected]} \\
|
|
\textit{Hanzo Industries Inc (Techstars '17)} \\
|
|
San Francisco, California \\
|
|
\texttt{https://hanzo.ai}
|
|
}
|
|
\date{Measurement pass: 2026-09-07 (LoCoMo, \texttt{zen-embedding-0.6b})}
|
|
|
|
\begin{document}
|
|
|
|
\hanzocoverpage
|
|
\maketitle
|
|
|
|
\begin{abstract}
|
|
Retrieval over a long conversation fails in a specific and reproducible way, and
|
|
the standard remedy does not work. On LoCoMo~\cite{locomo}, a dense retriever
|
|
answering \emph{single-hop} questions finds every required turn
|
|
\rSallTwenty{}\% of the time at $k{=}20$ \meas{}. On \emph{multi-hop} questions
|
|
the same retriever over the same index finds every required turn
|
|
\rMallTwenty{}\% of the time --- but finds \emph{at least one} of them
|
|
\rManyTwenty{}\% of the time, which is essentially the single-hop rate. The
|
|
retriever is not failing to understand the question. It reliably finds a
|
|
relevant turn and reliably misses the rest.
|
|
|
|
The textbook fix is to search more than once and let the first result inform the
|
|
second~\cite{rocchio,ircot}. We implemented four retrieval policies over one
|
|
index --- a single search, pseudo-relevance feedback, a union over neighbours of
|
|
the top hits, and a two-deep chain of those --- so that the only variable is the
|
|
policy. \textbf{None of them fixes it.} The best gained
|
|
\rBestDelta{}\,percentage points on multi-hop at double the latency; two were
|
|
\emph{worse} than a single search; and the one that gained on multi-hop lost
|
|
\rWorstDelta{}\,points on single-hop, so it is not a free choice either.
|
|
|
|
A diagnostic says why, and it is not subtle. Multi-hop questions need
|
|
\rGoldAvg{} gold turns on average (up to \rGoldMax{}), and
|
|
\textbf{\rSpanSessions{}\% of that evidence spans more than one conversation
|
|
session}. The median gold turn sits at rank \rMedRank{}; the median
|
|
\emph{worst} gold turn sits at rank \rMedWorst{}, beyond $k{=}20$ for
|
|
\rBeyondTwenty{}\% of questions and beyond $k{=}100$ for
|
|
\rBeyondHundred{}\%. Additional hops re-search the same similarity space, and a
|
|
turn that is far away in that space stays far no matter how many times it is
|
|
queried. The missing signal is not similarity and cannot be recovered by
|
|
spending more of it. It is \emph{linkage} --- which turns concern the same
|
|
entity across sessions --- and that is a structure to be built, not a search to
|
|
be repeated. We publish this because the negative result is the useful part: it
|
|
rules out the cheap fix and names the expensive one.
|
|
\end{abstract}
|
|
|
|
\input{sections/01-introduction}
|
|
\input{sections/02-setup}
|
|
\input{sections/03-baseline}
|
|
\input{sections/04-policies}
|
|
\input{sections/05-diagnostic}
|
|
\input{sections/06-implications}
|
|
\input{sections/07-limits}
|
|
\input{sections/99-conclusion}
|
|
|
|
\end{document}
|