Вопрос или проблема
Изучая сглаживание Add-1, я заметил, что мы каким-то образом добавляем 1 к каждому слову в нашем словаре, но не учитываем начало и конец предложения как два слова в словаре. Позвольте мне привести пример для объяснения.
Пример:
Предположим, у нас есть корпус из трех предложений:
“Джон прочитал Моби Дика
“, “Мэри прочитала другую книгу
” и “Она прочитала книгу от Шер
“.
После обучения нашей биграммной модели на этом корпусе из трех предложений, нам нужно оценить вероятность предложения “Джон прочитал книгу”, то есть найти $P(Джон\; прочитал\; книгу)$
Чтобы различить, как Джон появляется где угодно в предложении и его появление в начале, и аналогично для книги, appearing at the end, мы лучше пытаемся найти $P(<s>Джон\; прочитал\; книгу<\backslash s>)$, после введения двух дополнительных слов $<s>$ и $<\backslash s>$, указывая начало предложения и конец предложения соответственно.
Наконец, мы приходим к
$P(<s>Джон\; прочитал\; книгу<\backslash s>)$ как
$P(Джон|<s>)P(прочитал|Джон)P(книгу|прочитал)P(<\backslash s>|книгу)=\frac{1}{3}\frac{1}{1}\frac{2}{3}\frac{1}{2}\frac{1}{2}$
Мой вопрос:
Теперь, чтобы найти $P(Шер\; прочитал\; книгу)$, используя сглаживание Add-1 (сглаживание Лапласа), разве нам не следует добавить слово ‘Шер’, которое появляется в начале предложения? И к этому, мы должны добавить $<s>$ и $<\backslash s>$ в наш словарь. С этим наше вычисление становится:
$P(Шер|<s>)P(прочитал|Шер)P(книгу|прочитал)P(<\backslash s>|книгу)=\frac{0+1}{3+13}\frac{0+1}{1+13}\frac{2+1}{3+13}\frac{1+1}{2+13}\frac{1+1}{2+13}$
Число 13, добавленное к каждому числителю, связано с количеством уникальных слов в словаре, в котором 11 английских слов из нашего корпуса из 3 предложений плюс 2 токена – начало и конец предложения. В некоторых местах я вижу, что к числителю добавляется 11 вместо 13. Явно что-то упускаю здесь.
Это зависит от определения словаря (V).
Большинство учебных примеров включает только слова в словаре для простоты. Теги начала и конца предложений также могут быть включены в словарь.
Словарь также может включать знаки препинания, или стоп-слова могут быть удалены из словаря.
Ответ или решение
Сглаживание модели n-грамм в NLP, особенно с использованием метода добавления 1 (сглаживание Лапласа), является важным шагом в решении проблем, связанных с низкой частотой или отсутствием определенных последовательностей слов в обучающем корпусе. В вашем вопросе поднимается очень важный момент, касающийся обработки токенов начала и конца предложения, которые мы иногда не учитываем в определении словаря.
Ответ на вопрос
Во-первых, определение словаря (V) в контексте n-грамм моделирования может варьироваться в зависимости от подхода, который использует исследователь или разработчик. В простых учебных примерах и базовых реализациях часто рассматриваются только словоформы, встречающиеся в корпусе, чтобы избежать усложнения. Однако это не означает, что токены <s>
(начало предложения) и </s>
(конец предложения) не могут быть включены в словарь.
Почему не рассматриваются токены начала и конца предложения
-
Сложность моделирования: Если токены
<s>
и</s>
включаются в словарь, это может привести к большему количеству вычислений и усложнению модели, особенно при оценке вероятностей, где основное внимание уделяется словам. Простой подход часто используется для первоначальной иллюстрации принципов работы n-грамм. -
Вариативность определения словаря: В некоторых системах n-грамм можно просто игнорировать
<s>
и</s>
при вычислении вероятности, рассматривая их как служебные элементы. Если они не играют критической роли для задачи, это может облегчить реализацию и понимание. -
Альтернативные подходы: В некоторых случаях исследователи могут использовать различные методы обработки, включая другие техники смягчения, которые менее чувствительны к значению начала и конца предложения, такие как сглаживание Кудера-Рича или более продвинутые нейросетевые модели.
Учет токенов в словаре
Если вы решите учитывать токены <s>
и </s>
в словаре, вы должны гарантировать, что они правильно включены в процесс обучения. Это значит, что ваша формула для расчета вероятностей станет более комплексной, как вы и описали. В таком случае количество уникальных слов в словаре будет включать все слова корпуса плюс два дополнительных токена, что даст вам 11 (в вашем примере) + 2 = 13.
Почему может возникнуть путаница с числом 11 и 13
Если в некоторых случаях вы видите, что к числителю добавляется 11 вместо 13, это может быть связано с неявным исключением токенов <s>
и </s>
из учета в конкретном контексте. Нужно убедиться, что в каждом конкретном случае четко обозначено, какие токены были включены в словарь.
Заключение
В зависимости от цели и сложности вашего проекта вы можете выбрать, использовать ли токены начала и конца предложения в словаре. Сглаживание Лапласа может быть распределено более очевидным образом, но при этом важно поддерживать последовательность в определении слова и выборке токенов, чтобы избежать путаницы в расчетах.