Me parece que seu problema está no "sparse embedding". Dado que você já realiza enriquecimento nos dados e a segmentação por contexto, a sua necessidade por palavras-chave poderia ser substituída apenas pelo "dense embedding". Ou seja, Tentative zero: Remover o sparse embedding da lógica e testar sua performace empiricamente.
Ademais, se você tem recurso computacional para investir no "dense embedding", faça como tal: injete mais contexto nos metadados e documentos; teste embeddings de tamanhos diferente, e modelos diferentes; teste funções de similaridade distintas.
Me parece ser um projeto interessante. Te desejo uma boa "ciência" de dados! 😁