Как BERT улавливает семантическую схожесть между разными по написанию, но одинаковыми по смыслу предложениями
Что проверяют
Понимаете ли вы разницу между контекстными векторами токенов и векторами предложений, пригодными для сравнения. Ловушка в том, что предобученный BERT без дообучения плохо меряет схожесть предложений. Следом спрашивают, как бы вы построили семантический поиск или дедупликацию текстов.
Как отвечать
Начните с того, откуда берётся понимание смысла:
- self-attention: каждый токен на каждом слое смотрит на все остальные сразу, слева и справа. Поэтому «банк» в разных контекстах получает разные векторы;
- предобучение MLM: модель угадывает замаскированные токены по контексту и учится, что «приобрёл» и «купил» стоят в похожих окружениях, значит и векторы у них близки;
- WordPiece: редкие слова разбиваются на подслова, и незнакомая словоформа не ломает разбор.
Затем главное. Если взять [CLS] или усреднить токены предобученного BERT и сравнить косинусом, качество на задачах семантической схожести слабое, иногда хуже усреднённых векторов GloVe. Пространство анизотропно: почти любые пары выглядят похожими. Поэтому модель дообучают именно на схожесть:
- Sentence-BERT (bi-encoder): сиамская схема, предложения кодируются по отдельности, затем пулинг и обучение на парах NLI или парафразах с контрастивной функцией потерь. Векторы считаются заранее и кладутся в векторный индекс;
- cross-encoder: пара подаётся в модель целиком через
[SEP], точность выше, но каждое сравнение стоит прогона сети, поэтому его ставят на переранжирование top-k.
Для русского языка назовите готовые модели: LaBSE, multilingual-e5. Оценивают корреляцией Спирмена на STS или recall@k на своих парах.
Где спотыкаются
Говорят, что BERT читает текст слева направо и справа налево. Это описание ELMo, у BERT двунаправленность возникает из маскирования и внимания ко всем позициям одновременно.
Предлагают сравнивать [CLS] предобученной модели без дообучения. Интервьюер именно этого и ждёт как ошибки.
Приписывают схожесть задаче NSP. В RoBERTa от неё отказались без потери качества, смысловые векторы дают MLM и дообучение на парах.