я понял, сколько бы аттеншен-голов у трансформера ни было, их специально выученным кодером сколлапсит в вектор меньшей размерности, который имеет такой же шейп, как у входа слоя.
в illustrated transformer этому далось объяснение в духе не бей лежачего - "так как слой ожидает, что ему дадут по одному вектору эмбеддинга на каждое слово, а не по (количество-голов) векторов, их нужно сколлапсить". при том говорится, что каждая голова аттеншена тренируется отдельно с рандомно инициализированными параметрами, т.е. какой-то магии ассоциированной с головами нет, это простой ансамбль
поэтому вопрос - не происходит ли утери данных при понижении размерности с большого количества голов? и есть ли какие-то причины, почему не передавать в следующий слой в качестве скрытого состояния выхлоп всех голов в виде конкатенированной матрицы?
я так понимаю, одна из причин - это как раз уменьшение количества оптимизируемых параметров, но не в ущерб ли качеству это происходит?
Эксперименты говорят что ок работает, если ставить меньше голов и больше размерность эмбеддинга будет работать хуже
Обсуждают сегодня