>>1.00<<>>1.00<<Видео проигрыватель загружается.Воспроизвести видеоВоспроизвестиБез звукаТекущее время 0:00/Продолжительность 2:13Загрузка: 0.00%0:00Тип потока ОНЛАЙНSeek to live, currently behind liveОНЛАЙНОставшееся время -2:13 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%Стиль края текстаНичегоПоднятыйПониженныйОдинаковыйТеньШрифтПропорциональный без засечекМоноширинный без засечекПропорциональный с засечкамиМоноширинный с засечкамиСлучайныйПисьменныйМалые прописныеСбросить сбросить все найстройки по умолчаниюГотовоЗакрыть модальное окноКонец диалогового окна.
Давайте немного подробнее остановимся на варианте Skip Gram. Мы моделируем соседние слова в окне при условии известного центрального слова. В отличие от предыдущей модели, вот эта суммы идёт не по всем уникальным словам, а по всем возможным окнам в корпусе, то есть по всем словоупотреблениям — каждое словоупотребление становится центром окна, мы берём контекст в этом окне, оцениваем его правдоподобие и обновляем веса. Чтобы было удобнее работать с таким распределением, мы предполагаем, что соседние слова условно независимы друг от друга, когда мы уже пронаблюдали центральное слово. Тогда наше распределение факторизуется, то есть его можно представить в виде произведения более простых распределений. Дальше мы моделируем такие распределения по-отдельности, независимо друг от друга. Моделируем мы их с помощью старого доброго друга — софтмакса. Внутри софтмакса мы используем скалярное произведение вектора текущего центрального слова с векторами остальных слов. Всё вроде бы хорошо, но в знаменателе у нас стоит сумма по всему словарю, а градиентные шаги нам нужно делать для каждого окна. Это очень дорого с вычислительной точки зрения. Томаш не растерялся и предложил аппроксимировать честный софтмакс более дешёвыми вариантами — один такой способ называется "отрицательным сэмплированием" (или "negative sampling"). Идея в том, что сумму в знаменателе мы считаем не по всему словарю, а по небольшому числу случайно выбранных слов. Эти слова мы выбираем каждый раз заново. Проблема снижения вычислительной сложности софтмакса является очень насущной, поэтому были предложены и другие варианты — например, иерархический софтмакс[1]. Но, пока что, мы не будем их рассматривать.
[1] Hierarchical softmax and negative sampling: short notes worth telling
К сожалению, у нас пока нет статистики ответов на данный вопрос,
но мы работаем над этим.