Atirando agulhas em palheiros

Jan 19 2023
A busca por resultados relevantes foi comparada a encontrar uma agulha no palheiro. Felizmente, a maioria dos pesquisadores tem mais facilidade do que isso, já que os palheiros não indexam suas necessidades para torná-los mais fáceis de encontrar.

A busca por resultados relevantes foi comparada a encontrar uma agulha no palheiro . Felizmente, a maioria dos pesquisadores tem mais facilidade do que isso, já que os palheiros não indexam suas necessidades para torná-los mais fáceis de encontrar.

Ironicamente, às vezes parece que os aplicativos de pesquisa jogam agulhas no palheiro e depois tentam encontrá-las. Isso deve soar para você como uma má ideia, e é! Então, vamos descompactar a metáfora e explorá-la.

Representações de conteúdo esparso e denso

Um índice de pesquisa representa o conteúdo com o objetivo de torná-lo localizável. Existem três estratégias comuns:

  • Texto não estruturado. Para produtos e documentos compostos principalmente por texto, é natural indexá-los como pacotes de palavras armazenadas em um índice invertido . O índice invertido mapeia palavras para os produtos ou documentos que contêm essas palavras. Como cada parte do conteúdo contém apenas um pequeno subconjunto de palavras disponíveis, o pacote de palavras tem uma representação vetorial esparsa .
  • Dados estruturados. O conteúdo geralmente contém informações estruturadas explícitas na forma de categorias, como tipos de produtos ou tópicos, ou atributos, como marca ou cor. Essa representação é ainda mais esparsa do que um saco de palavras, já que categorias e atributos carregam mais sinais do que a maioria das palavras. Os dados estruturados são tão úteis que os aplicativos de pesquisa geralmente empregam técnicas de compreensão de conteúdo para obtê-los.
  • Incorporações. As incorporações de palavras são representações densas de conteúdo, mapeando o conteúdo para vetores densos em um espaço vetorial de alta dimensão . Esses vetores são densos no sentido de serem preenchidos com valores diferentes de zero. Os vetores são armazenados em índices especializados para recuperação eficiente do vizinho mais próximo , geralmente usando similaridade de cosseno como métrica.

A intenção de pesquisa geralmente começa na forma de uma consulta de pesquisa, que geralmente contém não mais do que algumas palavras. Apesar da empolgação com a linguagem natural, voz, imagem e outras modalidades de interface, nada parece ter substituído palavras-chave simples como a forma padrão de expressar a intenção de pesquisa.

Dado que a maioria das consultas são curtas, não surpreende que muitas delas sejam mapeadas diretamente para categorias e atributos. Afinal, categorias e atributos representam algumas das palavras e frases mais ricas em informações.

Como um aplicativo de pesquisa deve lidar com essas consultas? Assim como na representação de conteúdo, existem três estratégias comuns:

  • Pesquisa de texto completo. Isso é o que a maioria dos aplicativos de pesquisa faz: corresponder a todos os campos que contêm as palavras da consulta (geralmente após alguma reescrita da consulta , como derivação e expansão da consulta ) usando o índice invertido e, em seguida, classificar os resultados usando fatores dependentes e independentes da consulta .
  • Mapear para dados estruturados. Por meio do entendimento da consulta , muitas vezes é possível mapear as consultas para categorias, atributos ou combinações dos dois. Essa abordagem oferece uma recuperação precisa e coerente; mas corre o risco de perder a recuperação que poderia ter sido recuperada pela pesquisa de texto completo.
  • Recuperação densa. Essa abordagem mapeia a consulta para um vetor e, em seguida, executa uma pesquisa de vizinho mais próximo para recuperar os resultados com base na similaridade do cosseno. Como a similaridade de cosseno mede apenas a relevância dependente da consulta, a classificação também considera fatores independentes da consulta. Essa abordagem tende a favorecer a recordação , uma vez que a recuperação densa é liberal em relação às palavras de consulta correspondentes, mas a precisão pode ser um desafio.

Algumas tarefas de pesquisa são difíceis. Por exemplo, é muito difícil encontrar uma música quando você não consegue se lembrar do nome ou do artista, mas apenas algumas letras no meio da música que você pode ter confundido. Esse é um problema genuíno de agulha no palheiro. Mas a maioria das tarefas de pesquisa não é tão desafiadora.

Por exemplo, se você estiver interessado em uma determinada música, artista ou gênero, sua interação com um mecanismo de pesquisa deve ser bastante direta. Se você pode expressar uma intenção de pesquisa simples usando palavras que mapeiam diretamente para dados estruturados, deve esperar que o aplicativo de pesquisa entenda o que você quer dizer e recupere os resultados de acordo.

Para necessidades de pesquisa que não mapeiam para categorias, atributos ou combinações dos dois, como o exemplo de letra acima, a pesquisa de texto completo oferece o potencial de ainda recuperar resultados relevantes. Mas, para consultas mais simples, é improvável que a pesquisa de texto completo ofereça muita recuperação adicional - pelo menos se o conteúdo for indexado corretamente - e pode causar estragos na precisão, por exemplo, recuperar a música dos Beatles "Lady Madonna" quando você pesquisa o artista Madonna .

E então há recuperação densa. Conforme observado anteriormente, a recuperação densa favorece a recordação, uma vez que recupera com base na similaridade, e não na correspondência de palavras de consulta, quanto mais em dados estruturados. Isso faz sentido para consultas longas ou difíceis, e a recuperação densa é especialmente útil para necessidades de pesquisa orientadas à recuperação, como encontrar resultados semelhantes a conteúdo indisponível ou raro.

Mas para a pesquisa mais orientada para a precisão normalmente abordada pela pesquisa de texto completo hoje, é difícil ver como a recuperação densa pode ajudar - e fácil ver como isso pode prejudicar. Por exemplo, se você estiver procurando por camisas masculinas, o aplicativo de pesquisa deve recuperar todas as camisas masculinas como resultados, de preferência usando dados estruturados. É difícil ver o benefício de uma pesquisa no vizinho mais próximo usando vetores densos; afinal, ser camisa masculina é algo binário, não um grau de semelhança com algum ideal platônico .

Compreensão da Consulta vs. Recuperação

Os defensores da recuperação densa podem objetar que eu omiti um detalhe importante: mesmo quando as consultas de pesquisa são mapeadas para dados estruturados, elas nem sempre o fazem de forma clara. Pode haver uma categoria de camisas masculinas ou pode haver uma categoria de camisas e um atributo de gênero independente. A consulta pode ser “camisas masculinas”, “camisas masculinas” ou alguma outra variante que expresse a mesma intenção. A pesquisa de texto completo luta com esse tipo de variação, e a recuperação densa, pelo menos de forma holística, representa a intenção de pesquisa em um único vetor.

Mas a recuperação não é o lugar para abordar a compreensão da consulta. “Camisas masculinas” e “camisas masculinas” devem recuperar resultados idênticos — e devem fazê-lo independentemente de os resultados serem indexados usando uma categoria de camisas masculinas ou usando uma categoria de camisas combinada com um atributo de gênero independente. A maneira certa de conseguir isso é através da compreensão da consulta e, especificamente, reconhecendo a similaridade da consulta .

Uma vez estabelecido que o pesquisador está procurando por camisas masculinas, a recuperação deve ser trivial e a classificação, embora talvez não seja trivial, não tem nada a ver com a relevância dependente da consulta.

Pode haver um papel para a recuperação densa aqui. Mas é uma recuperação densa de consultas, não de resultados. De fato, podemos usar similaridade de consulta para identificar uma representação canônica da intenção do pesquisador em um conjunto de consultas para as quais estabelecemos uma estratégia robusta de recuperação e classificação.

Não jogue agulhas em palheiros!

A maioria das buscas hoje são consultas de palavras-chave curtas, correspondendo a uma categoria ou atributo, ou talvez uma combinação dos dois. Essas são consultas simples e merecem estratégias de recuperação simples. Se houver complexidade, é principalmente nas nuances do entendimento da consulta. Portanto, não se apresse em aplicar a recuperação densa. Não jogue agulhas em palheiros!