Это 25-й день моего участия в ноябрьском испытании обновлений. Узнайте подробности события:Вызов последнего обновления 2021 г.
Сказать, что самые популярные работы по НЛП в первой половине 2021 года, нельзя.SimCSE: простое сравнительное изучение вложений предложенийНикто. Полное название SimCSE:Simple Contrastive Sentence Embedding
Sentence Embedding
Встраивание предложений всегда было острой проблемой в области NLP, в основном из-за его широкого спектра приложений и краеугольного камня многих задач. Существует множество способов получения векторов предложений.Обычные из них включают прямое использование выходных данных позиции [CLS] в качестве вектора предложений или суммирование или усреднение выходных данных всех слов. Однако было доказано, что вышеупомянутые методы имеют проблему анизотропии. Вообще говоря, проблема непоследовательного представления Word Embedding в различных измерениях будет возникать в процессе обучения модели, поэтому полученные векторы предложений нельзя сравнивать напрямую.
Наиболее популярными способами решения этой проблемы являются:
- Линейные преобразования: BERT-поток, BERT-отбеливание. Эти два больше похожи на постобработку, которая облегчает проблему анизотропии, выполняя определенные преобразования векторов предложений, извлеченных BERT.
- Контрастное обучение: SimCSE. Идея контрастного обучения состоит в том, чтобы закрыть похожие образцы и оттолкнуть разнородные образцы, тем самым улучшив способность модели к представлению предложений.
Unsupervised SimCSE
SimCSE использует самоконтролируемое обучение для улучшения представления предложений. Поскольку SimCSE не имеет размеченных данных (неконтролируемых), каждое предложение рассматривается как похожее предложение. Грубо говоря, по существуВ качестве положительного примера,в качестве негативных примеров для обучения модели контрастивного обучения. Конечно, это далеко не просто: если в качестве положительных примеров использовать только два одинаковых образца, то способность к обобщению будет сильно снижена. Вообще говоря, мы будем использовать некоторые методы увеличения данных, чтобы сделать два образца положительного примера разными, но как сделать увеличение данных в НЛП, также является проблемой SimCSE предлагает очень простое и элегантное решение:Думайте о Dropout как о расширении данных!
Конкретно,Предложения получают вектор через Encoder с Dropout, а затем снова пропустите пакет предложений через Encoder (на этот раз еще один случайный Dropout), чтобы получить вектор, мы можем положитьрассматривается как пара (немного отличающихся) положительных примеров, то цель обучения
в,. В самом деле, если формула (1) не виднаичасть, остальное очень нравится. установить в диссертации, что касается этогоЧто он делает, я видел некоторые объяснения в Интернете:
- Если вы используете косинусное сходство непосредственно в качестве входных логитов для, поскольку диапазон сходства косинусов равен, диапазон слишком малДать достаточно большой разрыв между положительными и отрицательными образцами невозможно, и в итоге получается, что модель недостаточно обучена, поэтому ее нужно корректировать, делить на достаточно малый параметрУвеличьте значение
- ГиперпараметрыОсновное внимание в обновлении модели будет сосредоточено на сложных отрицательных примерах, и они будут соответственно наказаны.Чем больше сложность, тем сложнее.Чем ближе, тем больше выделение к наказанию. На самом деле, это лучше понять, мы будемразделить наЭто эквивалентно увеличению логит-значения отрицательной выборки из года в год, еслидостаточно малы, то теОтрицательные образцы ближе к 1, послебудет доминировать при увеличении