Моделі CBOW та Skip-gram
Для цього розділу рекомендується базове розуміння нейронних мереж. Якщо ви не знайомі з цією темою, ознайомтеся з наступним курсом:
Обидві архітектури — CBoW та Skip-gram — навчають векторні подання слів за допомогою нейронної мережі, яка складається з наступних шарів:
- вхідний шар;
- один прихований шар;
- вихідний шар.
Матриця ваг між вхідним і прихованим шарами, позначена як W1 або E, виконує роль матриці векторних подань. Кожен рядок цієї матриці відповідає вектору подання для відповідного слова, де i-ий рядок відповідає i-ому слову у словнику.
Ця матриця містить V (розмір словника) векторів подань, кожен з яких має розмір N, який ми задаємо. Множення транспонованої цієї матриці (N×V матриця) на one-hot вектор (V×1 вектор) дозволяє отримати вектор подання для конкретного слова, утворюючи N×1 вектор.
Друга матриця ваг, між прихованим і вихідним шарами, має розмір N×V. Множення транспонованої цієї матриці (матриця V×N) на вектор прихованого шару розміром N×1 дає вектор розміром V×1.
CBoW
Розгляньте приклад використання моделі CBoW:
Спочатку транспонована матриця ембедінгів множиться на one-hot вектори контекстних слів для отримання їх ембедінгів. Ці ембедінги потім сумуються або усереднюються залежно від реалізації для формування одного вектора. Цей вектор множиться на матрицю W2, у результаті чого отримується вектор розміром V×1.
Нарешті, цей вектор проходить через активаційну функцію softmax, яка перетворює його на розподіл ймовірностей, де кожен елемент представляє ймовірність того, що слово зі словника є цільовим словом.
Після цього обчислюється функція втрат, і обидві матриці ваг оновлюються для мінімізації цієї втрати. Ідеально, ймовірність цільового слова має бути близькою до 1, тоді як ймовірності для всіх інших слів мають наближатися до нуля. Цей процес повторюється для кожної комбінації цільового слова та його контекстних слів.
Після обробки всіх комбінацій завершується епоха. Зазвичай нейронну мережу навчають протягом кількох епох для забезпечення точного навчання. Нарешті, рядки отриманої матриці ембеддінгів можна використовувати як векторні представлення слів. Кожен рядок відповідає вектору певного слова у словнику, ефективно відображаючи його семантичні властивості у навчальній моделі.
Skip-gram
Розглянемо тепер модель skip-gram:
Як видно, процес здебільшого подібний до CBoW. Він починається з отримання ембеддінгу цільового слова, який потім використовується у прихованому шарі. Далі формується вектор V×1 на вихідному шарі. Цей вектор, отриманий шляхом множення ембеддінгу цільового слова на матрицю ваг вихідного шару, далі перетворюється softmax-активаційною функцією у вектор ймовірностей.
Хоча цей отриманий вектор ймовірностей є однаковим для всіх контекстних слів, пов'язаних з одним цільовим словом під час одного кроку навчання, втрата для кожного контекстного слова обчислюється окремо.
Втрати для кожного контекстного слова підсумовуються, і вагові матриці оновлюються відповідно на кожній ітерації для мінімізації загальної втрати. Після завершення заданої кількості епох матриця векторних представлень може бути використана для отримання векторів слів.
На практиці, особливо при великих словниках, функція softmax може бути надто обчислювально затратною. Тому часто використовують апроксимації, такі як негативне семплювання, щоб зробити обчислення ефективнішими.
1. Заповніть пропуски
2. Що представляє перша матриця ваг W1 у нейронній мережі?
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
Can you explain the main difference between CBoW and Skip-gram?
How does the softmax function work in these models?
What is the purpose of the embeddings matrix in these architectures?
Awesome!
Completion rate improved to 3.45
Моделі CBOW та Skip-gram
Свайпніть щоб показати меню
Для цього розділу рекомендується базове розуміння нейронних мереж. Якщо ви не знайомі з цією темою, ознайомтеся з наступним курсом:
Обидві архітектури — CBoW та Skip-gram — навчають векторні подання слів за допомогою нейронної мережі, яка складається з наступних шарів:
- вхідний шар;
- один прихований шар;
- вихідний шар.
Матриця ваг між вхідним і прихованим шарами, позначена як W1 або E, виконує роль матриці векторних подань. Кожен рядок цієї матриці відповідає вектору подання для відповідного слова, де i-ий рядок відповідає i-ому слову у словнику.
Ця матриця містить V (розмір словника) векторів подань, кожен з яких має розмір N, який ми задаємо. Множення транспонованої цієї матриці (N×V матриця) на one-hot вектор (V×1 вектор) дозволяє отримати вектор подання для конкретного слова, утворюючи N×1 вектор.
Друга матриця ваг, між прихованим і вихідним шарами, має розмір N×V. Множення транспонованої цієї матриці (матриця V×N) на вектор прихованого шару розміром N×1 дає вектор розміром V×1.
CBoW
Розгляньте приклад використання моделі CBoW:
Спочатку транспонована матриця ембедінгів множиться на one-hot вектори контекстних слів для отримання їх ембедінгів. Ці ембедінги потім сумуються або усереднюються залежно від реалізації для формування одного вектора. Цей вектор множиться на матрицю W2, у результаті чого отримується вектор розміром V×1.
Нарешті, цей вектор проходить через активаційну функцію softmax, яка перетворює його на розподіл ймовірностей, де кожен елемент представляє ймовірність того, що слово зі словника є цільовим словом.
Після цього обчислюється функція втрат, і обидві матриці ваг оновлюються для мінімізації цієї втрати. Ідеально, ймовірність цільового слова має бути близькою до 1, тоді як ймовірності для всіх інших слів мають наближатися до нуля. Цей процес повторюється для кожної комбінації цільового слова та його контекстних слів.
Після обробки всіх комбінацій завершується епоха. Зазвичай нейронну мережу навчають протягом кількох епох для забезпечення точного навчання. Нарешті, рядки отриманої матриці ембеддінгів можна використовувати як векторні представлення слів. Кожен рядок відповідає вектору певного слова у словнику, ефективно відображаючи його семантичні властивості у навчальній моделі.
Skip-gram
Розглянемо тепер модель skip-gram:
Як видно, процес здебільшого подібний до CBoW. Він починається з отримання ембеддінгу цільового слова, який потім використовується у прихованому шарі. Далі формується вектор V×1 на вихідному шарі. Цей вектор, отриманий шляхом множення ембеддінгу цільового слова на матрицю ваг вихідного шару, далі перетворюється softmax-активаційною функцією у вектор ймовірностей.
Хоча цей отриманий вектор ймовірностей є однаковим для всіх контекстних слів, пов'язаних з одним цільовим словом під час одного кроку навчання, втрата для кожного контекстного слова обчислюється окремо.
Втрати для кожного контекстного слова підсумовуються, і вагові матриці оновлюються відповідно на кожній ітерації для мінімізації загальної втрати. Після завершення заданої кількості епох матриця векторних представлень може бути використана для отримання векторів слів.
На практиці, особливо при великих словниках, функція softmax може бути надто обчислювально затратною. Тому часто використовують апроксимації, такі як негативне семплювання, щоб зробити обчислення ефективнішими.
1. Заповніть пропуски
2. Що представляє перша матриця ваг W1 у нейронній мережі?
Дякуємо за ваш відгук!