тексте не много токенов то в качестве эмбединга всего текста можно просто брать средние эмбедингов отдельных слов (в2в, глов, т.д.). А не много - это сколько? 100 токенов? 500 токенов? После какого числа токенов лучше начать использовать какие то другие методы для эмбединга текста? Для примера возьмём стандартный размер вектора слова - 512
А если снижать размерность для слов через t-SNE, например? На мой взгляд, это более адекватно чем простое усреднение
Не понял мысль. Объединить эмбединги слов в один вектор, а потом применить алгоритм снижения размерности?
А какая изначально была идея?
500 токенов - это очень много, это уже размер окна в BERT (т.е. для текстов длиннее 500 уже может не хватить обычных трансформеров и могут быть нужны лонгформеры и пр.) По опыту - от десятков до сотни слов норм, но очень сильно зависит от конечной задачи. Рекомендую пробовать разные подходы. Основная прелесть усредненных эмбеддингов - интерпретируемость - можно прикинуть, какие ключевые слова наиболее близки к к векторам внутри классификатора и пр.
Допустим, свернул все вектора до 2 значений, а дальше что? Просто контактировать? Не хочу брать тяжёлые модели, типо Элмо и берта
Дык, от конкретной конечно задачи зависит. )) Свертка, в данном случае, не самоцель, это инструмент. Что до "тяжести", то приведенная мной реализация Элмо очень даже легковесна. Я ее использовал на домашнем буке.
Цель просто создать ембединги не длинных текстов, которые потом будут использоваться в моделях регрессии вместе с другими фичами. Сколько памяти требует эта елма?
В догонку. Тогда я бы не парился, брал бы эту элму, загонял бы предложение целиком, получал бы свернутый эмбендинг, ну и дальше регрессия и вот это вот все
Обсуждают сегодня