Различия между встраиванием предложений BERT и встраиванием LSA

BERT как услуга (https://github.com/hanxiao/bert-as-service) позволяет извлекать вложения на уровне предложений. Предполагая, что у меня есть предварительно обученная модель LSA, которая дает мне 300-мерный вектор слов, я пытаюсь понять, в каком сценарии модель LSA будет работать лучше, чем BERT, когда я пытаюсь сравнить два предложения на семантическую согласованность?

Я не могу придумать причину, по которой LSA было бы лучше для этого варианта использования, поскольку LSA - это просто сжатие большой матрицы слов.


person Samarth    schedule 02.03.2020    source источник


Ответы (1)


BERT требует квадратичной памяти с длиной последовательности и обучается только парам на разделенных предложениях. Это может быть неудобно при обработке очень длинных предложений.

Для LSA вам нужен только вектор пакета слов, который действительно имеет постоянный размер по длине документа. Для действительно длинных документов LSA может быть лучшим вариантом.

person Jindřich    schedule 03.03.2020
comment
Но если предположить, что я работаю с короткими абзацами и память не является проблемой - BERT должен превосходить LSA для измерения чего-то вроде семантической согласованности, верно? Кроме того, знаете ли вы о каких-либо современных предварительно обученных моделях LSA? - person Samarth; 03.03.2020
comment
Да, я ожидал, что BERT будет лучше для коротких абзацев. Я не знаю деталей bert-as-service, но пакет Transformers Hugingface ограничивает длину ввода до 512 токенов. Я не знаю ни о каких предварительно обученных LSA, но, в отличие от BERT, результат обычно настолько специфичен для набора данных, что я сомневаюсь, что стоит использовать предварительно обученную модель. - person Jindřich; 04.03.2020