Видео проигрыватель загружается.Воспроизвести видеоВоспроизвестиБез звукаТекущее время 0:00/Продолжительность 5:08Загрузка: 0.00%0:00Тип потока ОНЛАЙНSeek to live, currently behind liveОНЛАЙНОставшееся время -5:08 1xСкорость воспроизведения2x1.75x1.5x1.25x1x, выбрано0.75x0.5xГлавыГлавыОписанияОтключить описания, выбраноСубтитрынастройки субтитров, откроется диалог настройки субтитровСубтитры выкл., выбраноЗвуковая дорожкаPicture-in-PictureПолноэкранный режимThis is a modal window.Начало диалоговго окна. Кнопка Escape закроет или отменит окноТекстColorБелыйЧерныйКрасныйЗеленыйСинийЖелтыйПурпурныйГолубойTransparencyПрозрачностьПолупрозрачныйФонColorЧерныйБелыйКрасныйЗеленыйСинийЖелтыйПурпурныйГолубойTransparencyПрозрачностьПолупрозрачныйПрозрачныйОкноColorЧерныйБелыйКрасныйЗеленыйСинийЖелтыйПурпурныйГолубойTransparencyПрозрачныйПолупрозрачныйПрозрачностьРазмер шрифта50%75%100%125%150%175%200%300%400%Стиль края текстаНичегоПоднятыйПониженныйОдинаковыйТеньШрифтПропорциональный без засечекМоноширинный без засечекПропорциональный с засечкамиМоноширинный с засечкамиСлучайныйПисьменныйМалые прописныеСбросить сбросить все найстройки по умолчаниюГотовоЗакрыть модальное окноКонец диалогового окна.
Всем привет! Давайте поговорим о первой операции в нейросетях: векторизации. Существует множество способов получить векторы для элементов текста (символов или токенов), но в этой лекции мы сфокусируемся на дистрибутивно-семантических моделях. Напомню, что текст сначала разбивается на базовые элементы — символы или токены, они нумеруются, заменяются на идентификаторы, а затем по этим идентификаторам мы вытаскиваем из таблицы эмбеддингов нужные вектора. В этой лекции мы рассмотрим, какие способы построения такой таблицы существуют. Раз уж мы работаем с нейросетями (дифференцируемыми моделями, которые настраиваются градиентным спуском), то самый естественный вариант — это считать таблицу эмбеддингов параметрами нейросети и обучать вместе с остальной сетью. В этом случае мы будем уверены, что эмбеддинги будут подобраны наилучшим образом для решения конечной задачи. Так как этот способ использует обучение с учителем, у него есть существенный недостаток: нам нужна очень большая размеченная обучающая выборка, в которой будет достаточно разнообразная лексика, чтобы настроить эмбеддинги всех слов и чтобы модель в итоге хорошо работала на новых данных. Помните распределение Ципфа? У нас очень много редких слов и нам нужно набрать статистику даже для них, если мы хотим чтобы модель хорошо обобщалась. Обучение с учителем — это наиболее стабильная и практичная постановка задачи машинного обучения. Надо стремиться всегда все задачи сводить к обучению с учителем. Для этого нам нужно найти разметку, то есть некоторую целевую переменную, которую мы будем предсказывать. Оказывается, в текстах такая целевая переменная существует: это следующее слово. Например, если вы увидите фрагмент фразы "шла Саша по...", какое следующее слово вы будете ожидать? Скорее всего, многие из вас будут ожидать слово "шоссе". Задача предсказания следующего слова по известному началу фразы называется "моделированием языка". Эта тема сейчас очень бурно развивается, придумываются эффективные архитектуры, прогресс впечатляет. Есть и более экономичная постановка задачи моделирования языка. В этом случае, входом нашей модели является не целая фраза, а одно лишь слово — обозначим его "x". Целевых переменных сразу несколько — это вероятности употребления всех остальных слов рядом со словом "x". Такие модели относятся к отрасли дистрибутивной семантики. О них и пойдёт речь в этой лекции. Из названия отрасли "дистрибутивная семантика" мы можем понять, что она занимается изучением смыслов слов. В центре этой области науки лежит дистрибутивная гипотеза, которая заключается в том, что смысл слова, в значительной мере, описывается тем контекстом, в котором слово обычно употребляется.[1] Контекст можно понимать по-разному. Чаще всего, это просто соседние слова — соседние в предложении, или соседние в целом документе. Ключевой объект, характеризующий контекст — это матрица совместной встречаемости слов. Элементы этой матрицы — это счётчики, то есть натуральные числа, обозначающие количество раз, когда два слова встретились в рамках одного контекста. Что мы можем сказать про эту матрицу? Во-первых, размер словаря для достаточно большого корпуса текстов имеет порядок сотен тысяч. Матрица встречаемости — квадратная и симметричная, то есть в ней — порядка 10 в десятой степени элементов. Это очень много. Хорошая новость в том, что матрица очень разреженная, то есть почти все её элементы нулевые и их можно хотя бы не хранить. Как мы знаем, есть небольшое количество слов (союзов, предлогов общеупотребимой лексики), которые встречаются намного чаще, чем все остальные слова. Значение матрицы в строках и столбцах соответствующих таким словам, существенно выше, чем в остальных. Это создаёт некоторый дисбаланс. Итак, матрица гигантская, распределение элементов сильно скошенное. Как же с этим всем работать?
[1] You shall know a word by the company it keeps (Фёрс, Джон Руперт 1957)
К сожалению, у нас пока нет статистики ответов на данный вопрос,
но мы работаем над этим.