Size: a a a

Natural Language Processing

2020 December 26

BS

Bogdan Salyp in Natural Language Processing
Krep Kospit
А такой вопрос: прочитал, что one-hot кодирование уже неактуально, т.к. есть во фреймворках Embedding - слои. И можно не заниматься созданием гигантских таблиц, а, скажем, пронумеровать все уникальные слова или символы. Это так?
Ну тк концептуально это немного разные вещи
One-hot encoding - это ортогональные друг другу вектора, то есть между закодированными таким образом районами "Soho", "Central park" и "Little Italy" нет никакой связи, так как это будут вектора [1,0,0],[0,1,0],[0,0,1]
В эмбеддинге это будут вектора, например, [0.1,0.2,0.8],[0.2,0.3,0.9] и [0.7,-0.5,0.3] и тут уже можно сказать, что Сохо ближе к центральному парку, чем маленькая Италия
источник

BS

Bogdan Salyp in Natural Language Processing
Точнее если совсем буквоедствовать, то не разные вещи, а one-hot encoding - это особый случай эмбеддинга, когда размерность вектора == количеству классов, вектора ортогональны друг другу, ну и бонусом много нулей в матрице
источник

DD

David Dale in Natural Language Processing
Bogdan Salyp
Ну тк концептуально это немного разные вещи
One-hot encoding - это ортогональные друг другу вектора, то есть между закодированными таким образом районами "Soho", "Central park" и "Little Italy" нет никакой связи, так как это будут вектора [1,0,0],[0,1,0],[0,0,1]
В эмбеддинге это будут вектора, например, [0.1,0.2,0.8],[0.2,0.3,0.9] и [0.7,-0.5,0.3] и тут уже можно сказать, что Сохо ближе к центральному парку, чем маленькая Италия
Эта разница сохраняется до первого полносвязного слоя.
Как только ты умножишь one-hot векторы на очередную матрицу весов, на выходе будут dense векторы. И они будут в точности эквивалентны эмбеддингам.
То есть one-hot encoder + линейный слой = label encoder + слой эмбеддингов
источник

BS

Bogdan Salyp in Natural Language Processing
Угу
источник

BS

Bogdan Salyp in Natural Language Processing
Сейчас, мне очень нравится вот эта статья
источник

FF

Futorio Franklin in Natural Language Processing
David Dale
Эта разница сохраняется до первого полносвязного слоя.
Как только ты умножишь one-hot векторы на очередную матрицу весов, на выходе будут dense векторы. И они будут в точности эквивалентны эмбеддингам.
То есть one-hot encoder + линейный слой = label encoder + слой эмбеддингов
Ну тогда по сути этот линейный слой и есть матрица эмбеддингов
источник

BS

Bogdan Salyp in Natural Language Processing
источник

BS

Bogdan Salyp in Natural Language Processing
Вот тут прям нарисовано, как после одного слоя one-hot становится эмбеддингом
источник

DD

David Dale in Natural Language Processing
Futorio Franklin
Ну тогда по сути этот линейный слой и есть матрица эмбеддингов
Да, математически так и есть.
Вычислительно второй вариант эффективнее, т.к. мы не тратим ресурсы процессора на умножение на ноль, а просто выбираем нужную строку в матрице по номеру.
источник

A

Aragaer in Natural Language Processing
но просто и получается, что обученный embedding слой это перевод из one-hot кодирования в эмбеддинг. А "готовый словарь" это ровно то же самое
источник

BS

Bogdan Salyp in Natural Language Processing
Готовый словарь - это когда прогнал заранее через этот слой и сохранил, чтобы потом не считать
источник

A

Aragaer in Natural Language Processing
ну или искусственным образом подобрал эти вектора. Может на бумажке посчитал.
источник

BS

Bogdan Salyp in Natural Language Processing
Да
источник

ДС

Дмитрий Симаков... in Natural Language Processing
David Dale
Эта разница сохраняется до первого полносвязного слоя.
Как только ты умножишь one-hot векторы на очередную матрицу весов, на выходе будут dense векторы. И они будут в точности эквивалентны эмбеддингам.
То есть one-hot encoder + линейный слой = label encoder + слой эмбеддингов
По опыту оно к сильно разным вещам сходится и эмбеддинг слой работает гораздо лучше. (Ну и есть нюансы с памятью).

Интересно было бы понять, почему.
источник

DD

David Dale in Natural Language Processing
Дмитрий Симаков
По опыту оно к сильно разным вещам сходится и эмбеддинг слой работает гораздо лучше. (Ну и есть нюансы с памятью).

Интересно было бы понять, почему.
Скорее всего, инициализация разная. Математика градиентного спуска точно не должна отличаться.
источник

DD

David Dale in Natural Language Processing
источник

B

Banof in Natural Language Processing
🔫 van der velde erna кикнут — вернуть этого пользователя можно только разбаном в настройках чата.

Проголосовавшие за кик:
@cointegrated, @motonarola, @dzhkn42, Ilya Naumov, @wooferclaw
При поддержке Золота Бородача
источник

Б

Баирто in Natural Language Processing
кто нибудь знает модель spacy ru работает с библиотекой rasa
источник

YB

Yuri Baburov in Natural Language Processing
Баирто
кто нибудь знает модель spacy ru работает с библиотекой rasa
Работает, люди пользуются.
источник

SP

Sebastian Pereira in Natural Language Processing
Yuri Baburov
Работает, люди пользуются.
+
источник