автор:Лонг Синьчэнь && Хань Сяоян
Время: январь 2016 года.
Источник:
blog.CSDN.net/Korean_Противовоспалительные…
Отказ от ответственности: Все права защищены, пожалуйста, свяжитесь с автором для перепечатки и укажите источник
1. Введение
Байесовский метод — это метод с долгой историей и прочной теоретической основой, который является прямым и эффективным при решении многих проблем одновременно, и на его основе также могут быть разработаны многие передовые модели обработки естественного языка. Таким образом, изучение байесовских методов является очень хорошей отправной точкой для изучения проблем обработки естественного языка.
2. Формула Байеса
Формула Байеса состоит всего из одной строки:
P (Y| X)=P (X | Y )P (Y ) P (X )
И это на самом деле получено из следующей формулы совместной вероятности:
P (Y,X )=P (Y| X)P (X)=P(X | Y)P (Y)
в P(Y) называется априорной вероятностью, P (Y | X) называется апостериорной вероятностью, P(Y,X) называется совместной вероятностью.
Э, эм, нет, это все об основных формулах Байеса.
3. Понять байесовскую формулу с точки зрения машинного обучения
С точки зрения машинного обучения мы полагаем
Х понимается как"имеет особенность",Пучок
Y понимается как"метка категории"(Общие проблемы машинного обученияX=>特征
, Y=>结果
Правильно). В простейшей задаче бинарной классификации (是
и否
решение), будем
Y понимается как"принадлежит», Таким образом, формула Байеса преобразуется в следующее:
P("принадлежит к классу" | "имеет определенную характеристику") = P("имеет определенную характеристику" | "принадлежит к определенному классу") P("принадлежит к определенному классу") P("имеет определенную характеристика")
Попробуем объяснить приведенную выше формулу более разговорным (шуо) языком (жэнь) (хуа):
P («принадлежит к определенному классу» | «имеет определенную характеристику») = вероятность того, что образец «принадлежит к определенному классу» при условии, что известно, что он «имеет определенную характеристику». так называемый«Апостериорная вероятность».
P("имеет определенную характеристику" | "принадлежит к определенному классу") = вероятность того, что образец "имеет определенную характеристику" при условии, что известно, что она "принадлежит к определенному классу".
P («принадлежит к определенному классу») = (при условии, что неизвестно, имеет ли образец «имеет определенную характеристику») вероятность того, что образец «принадлежит к определенному классу». так называемый«Априорная вероятность».
P («имеет определенный признак») = (при условии, что неизвестно, что образец «принадлежит к определенному классу») вероятность того, что образец «имеет определенный признак».
Конечная цель нашей задачи бинарной классификации состоит в том, чтобыОпределить, больше ли P («принадлежит к определенному классу» | «имеет определенную характеристику») 1/2достаточно. Байесовский подход к вычислениям«принадлежность к определенному классу при условии определенного признака»Вероятность превращения в необходимость расчета«имеющий определенный признак при условии принадлежности к определенному классу»Вероятность и метод получения последнего намного проще, нам нужно только найти несколько образцов, содержащих известные метки признаков для обучения. Метки классов образцов понятны, поэтому байесовский метод относится к методу обучения с учителем в машинном обучении.
Чтобы добавить сюда, общее«Априорная вероятность» и «апостериорная вероятность» относительны.появляются, например Р(У) и P (Y | X) составляет около Априорная и апостериорная вероятность Y, Р(Х) и P (X | Y) составляет около Априорная и апостериорная вероятность X.
4. Идентификация спама
В качестве примера. Хорошо, теперь мы собираемся классифицировать электронные письма, определяя спам и обычные электронные письма, если мы решим использовать наивный байесовский классификатор, цель будетОпределить, больше ли P("спам"|"имеет определенную характеристику") больше 1/2. Теперь предположим, что у нас есть 10 000 спам-писем и 10 000 обычных писем в качестве обучающей выборки. Необходимо определить, является ли следующее письмо спамом:
"Наша компания может обрабатывать официальные счета-фактуры (верность) 17% скидка точки счета-фактуры налог на добавленную стоимость!"
этоОпределите, превышает ли вероятность P («спам» | «Наша компания может обрабатывать обычные счета-фактуры (достоверность) 17% скидка в баллах по налогу на добавленную стоимость!») 1/2.
Кашель, открытия нет, вероятность конверсии, метод расчета: напишите счетчик, а потом +1 +1 +1, чтобы подсчитать, сколько раз это предложение встречается во всех спамных и обычных письмах! ! ! Хорошо, если быть точным:
P («Спам» | «Наша компания может обрабатывать обычные счета-фактуры (верность) 17% скидка на баллы счета-фактуры по налогу на добавленную стоимость!»)
= Сколько раз это предложение появляется в спаме Сколько раз это предложение появляется в спаме + Сколько раз это предложение появляется в обычной почте
5. Причастие
Тогда мои одноклассники начали кидать в меня гнилой капустой и тухлыми яйцами: "Списывание бумаг!! Заблуждающиеся люди!! Вы думаете, что IQ спамеров застряли в 20-м веке!! изменить? Содержание!! Откуда столько одинаковых предложений!!».
Кашель-кашель, правда, при таком размере выборки, как у нас, предложений "полного попадания" мало, а то и вовсе нет (закон больших чисел не может быть выполнен), и расчетная вероятность будет сильно искажена. С одной стороны, найти огромную обучающую выборку очень сложно, с другой стороны, для любой обучающей выборки можно построить предложение, которое ни разу не попадало в обучающую выборку как спам (честно говоря, я видел простоту раньше Способность соотечественников Великого Китая создавать (зао) новые (цзя) просто поражает (фа)ах (чжи)).
Печальный, но реальный вывод:
Обучающая выборка конечна, а возможности предложения бесконечны. Таким образом, не существует тренировочного набора, который охватывает все варианты предложений.
Так решение есть?
правильно!Возможности предложений бесконечны, но слов так много! !Есть 2500 общеупотребительных китайских иероглифов и 56000 общеупотребительных слов (наконец-то вы понимаете благие намерения учителей китайского языка в начальной школе). Согласно человеческому опыту, два предложения не обязательно должны иметь одинаковое значение, и каждое слово и слово должны быть одинаковыми. Например"Наша компания может обрабатывать формальные счета, 17% скидки на счет-фактуру по налогу на добавленную стоимость!", это предложение меньше, чем предыдущее"(верность)"Слово, но смысл в основном тот же. Если учесть еще и эти условия, то число увеличится, что нам удобно для расчета.
Поэтому вместо того, чтобы рассматривать предложения как признаки, мы можем рассматривать слова (сочетания) в предложениях как признаки. Например"Формальный счет"как одно слово,"НДС"Его также можно использовать как одно слово и т. д.
приговор«Наша компания может обрабатывать обычные счета-фактуры, скидка 17% по пунктам счета-фактуры по налогу на добавленную стоимость!» может стать («Я», «компания», «могу», «обрабатывать», «обычный счет», «верность», «значение- добавлены "Налог", "Счет", "Баллы", "Льготы")).
Итак, вы соприкоснулись с одной из важнейших технологий китайского НЛП:Причастие! ! ! этоРазделите целое предложение на более мелкие слова для представления. Кашель, кроме того, после причастияУдаление знаков препинания, цифр и даже ненужных компонентов (стоп-слов) — это метод предварительной обработки признаков..
Сегментация китайских слов является специализированной технической областью (я не скажу вам, что конкретная каменщик заводского кода поисковой системы имеет специализированную сегментацию слов!!!), мы обсудим это в следующей статье, здесь мы будем иметь дело с этим как с известным ситуация первый . Подробности см. в следующем
Мы наблюдаем («Я», «Отдел», «Могу», «Обработка», «Формальный счет», «Верность», «НДС», «Счет», «Баллы», «Льготный»),Это можно понимать как вектор: каждое измерение вектора представляет собой наличие характерного слова в определенной позиции в тексте. Такой подход к разделению функций на более мелкие единицы и вынесению суждений на основе этих более гибких и детализированных функций очень распространен и эффективен при обработке естественного языка и машинном обучении.
Таким образом, формула Байеса становится:
P («Спам» | («Я», «Компания», «Могу», «Обработать», «Обычный счет», «Верность», «НДС», «Счет», «Баллы», «Льготный»)))
= P(("Я","Отдел","Можно","Обработка","Формальный счет","Верность","НДС","Счет","Баллы","Льготный")|"Мусорная почта" ) P("Спам") P(( "Я", "Компания", "Может", "Обработка", "Формальный счет", "Верность", "НДС", "Счет", "Баллы" ", "скидка "))
P («Обычная почта» | («Я», «Компания», «Могу», «Обработка», «Обычный счет», «Fidelity», «НДС», «Счет», «Баллы», «Льготный»)))
= P (( "Я", "Компания", "Может", "Обработка", "Формальный счет", "Верность", "НДС", "Счет", "Баллы", "Льготный") | "Обычная почта" ) P ("Обычная почта") P (("Я","Компания","Может","Обработка","Формальный счет","Верность","НДС","Счет","Баллы","скидка "))
6. Допущение условной независимости
Некоторые одноклассники говорили... кажется... кажется... После вышеупомянутого броска вероятность выглядит сложнее -_-||
Итак... тогда давайте упростим...
вероятность P (("Я","Компания","Может","Обработка","Формальный счет","Верность","НДС","Счет","Баллы","Льготный")|"Спам") is еще недостаточно хорошо, мы вводимочень наивное приближение. Чтобы сделать формулу более компактной, пусть буква S будет обозначать «спам», а буква H — «обычная почта». Приблизительная формула выглядит следующим образом:
P (("Я","Компания","Может","Обработка","Обычный счет","Верность","НДС","Счет","Баллы","Льготный")|S)
= P("I"|S) ×P("Компания"|S) ×P("Май"|S) ×P("Обработка"|S) ×P("Обычный счет-фактура"|S)
× P («Верность» | S) × P («НДС» | S) × P («Счет» | S) × P («Баллы» | S) × P («Рекламные акции» | S)
Это легендагипотеза условной независимости. Формула, основанная на допущении условной независимости «обычной почты», аналогична приведенной выше формуле и здесь не приводится. Затем замените гипотезу условной независимости в байесовскую формулировку для двух противоположных событий выше.
Поэтому нам нужно только сравнить размер следующих двух формул:
C =P("I"|S)P("Компания"|S)P("Май"|S)P("Обработка"|S)P("Обычный счет-фактура"|S)
× P("Верность" | S)P("НДС" | S)P("Счет" | S)P("Баллы" | S)P("Реклама" | S)P("Спам")
C ¯ ¯ =P("I"|H)P("Компания"|H)P("Май"|H)P("Обработка"|H)P("Обычный счет"|H)
× P("Верность" | H)P("НДС" | H)P("Счет" | H)P("Баллы" | H)P("Акция" | H)P("Обычная почта")
Ли (во) вред (цао)! После обработки соевым соусомКаждый пункт в формуле особенно хорош! нужно всего лишьПодсчитайте вероятность появления ключевого слова в разных типах электронных писем по отдельности.Вот и все! ! ! Например:
P("invoice" | S) = сколько раз все "счета" встречаются в спам-сообщениях Сколько раз все слова встречаются в спам-сообщениях
Количество статистик очень удобное, а объем выборки достаточно большой, расчетная вероятность ближе к реальной. Таким образом, проблема идентификации спама может быть решена.
7. Наивный Байес, где «Наивный»?
Байесовский метод, который добавляет предположение об условной независимости, называется наивным байесовским методом.Naive произносится как «Наивный», что означает «простой», «ребяческий»,"тупой". Кашель, то есть великие боги назвали этот метод относительно глупым методом, почему?
Поменяйте местами («I», «Отдел») и («Обычный счет») в предложении («I», «Отдел», «Может», «Ручка», «Обычный счет»), и оно станет A новое предложение ("обычный счет", "может", "обработать", "я", "компания"). Новое предложение имеет совершенно иное значение, чем старое предложение.Однако из-за коммутативного закона умножения условная вероятность двух вычислений в методе Наивного Байеса абсолютно одинакова!Процесс расчета выглядит следующим образом:
P(("Я","Компания","Может","Обработка","Обычный счет")|S)
= P("I" | S)P("Компания" | S)P("Май" | S)P("Транзакция" | S)P("Обычный счет" | S)
= P("Обычный счет-фактура" | S)P("Май" | S)P("Обработка" | S)P("Я" | S)P("Компания" | S)
= P(("Обычный счет","Может","Обработка","I","Отдел")|S)
Другими словами, в глазах Наивного Байеса «наша компания может обрабатывать обычные счета» — это то же самое, что и «обычные счета могут обрабатываться нашей компанией». Наивный Байес теряет информацию о порядке между словами.Это равносильно тому, что вы бросаете все слова в мешок и перемешиваете их, а байесовцы думают, что это одно и то же. Поэтому эту ситуацию еще называютмешок слов.
Модель мешка слов полностью отличается от повседневного опыта людей. Например, в предположении условной независимости«Вусун убил тигра» и «тигр убил Ву Сун» имеют одно и то же значение.Что ж, Наивный Байес такой простой и прямолинейный, по сравнению с другими классификаторами он кажется немного глуповатым.
8. Простая и эффективная контратака с висящей проволокой
Хотя метод Наивного Байеса глуп, практика показала, что применение идентификации спама все ещеудивительно хорошо. Сам г-н Пол Грэм просто сделал наивный байесовский классификатор,«1000 писем со спамом можно отфильтровать 995 без единого ложного срабатывания».(Пол Грэм, Хакеры и художники)
Это... почему эффект хороший?
«Кто-то выдвинул теоретическое объяснение этого и установил необходимые и достаточные условия для того, когда эффект наивного Байеса может быть эквивалентен ненаивному Байесу, ядром этого объяснения являются: некоторые независимые предположения между категориями Распределения равномерны и, следовательно, не влияют на относительную величину вероятности; даже если это не так, существует высокая вероятностьОтрицательные или положительные эффекты отдельных предположений нейтрализуют друг друга, что приводит к незначительному влиянию на результаты.. Пожалуйста, обратитесь к конкретной математической формулеЭта бумага. (Лю Вейпэн ": Обычный и волшебный байесовский метод")
Что ж, в этом классификаторе самый простой и прямолинейный и, казалось бы, глупый маленький друг «Наивный Байес» на самом делеПростой, практичный и мощныйиз.
9. Три способа борьбы с повторяющимися словами
мыПредыдущий вектор спама («Я», «Компания», «Могу», «Обработка», «Обычный счет», «Верность», «НДС», «Счет», «Баллы», «Льготный»), каждый из этих слова не повторяются.А это на самом деле редкость в реальности. Потому что, если длина текста увеличится или изменится метод токенизации,Там обязательно будет много повторений слов, так что эта ситуация нуждается в дальнейшем изучении. Например, это электронное письмо:
«Счета-фактуры от имени других. Счета-фактуры налога на добавленную стоимость, обычные счета-фактуры».
После сегментации слов это вектор:
(«Счет-фактура», «Счет-фактура», «НДС», «Счет-фактура», «Формальный», «Счет-фактура»)
«Счет-фактура» повторяется трижды.
9.1 Полиномиальная модель:
Если мы рассмотрим случай повторяющихся слов, т.Повторяющиеся слова считаются множественными вхождениями, непосредственно выводимого из предположения об условной независимости, то имеем
P (("Счет","Счет","НДС","Счет","Обычный","Счет")|S)
= P("Счет"| S)P("Счет"| S)P("НДС"| S)P("Счет"| S)P("Обычный"| S)
= P("Счет" | S)P 3("Счет" | S)P("НДС" | S)P("Обычный" | S)
Обратите внимание на это: P3("Счет" | S).
При статистическом расчете P("invoice"|S) повторяющиеся слова в каждом учитываемом образце спама также учитываются несколько раз.
P("Счет" | S) = Сумма вхождений "Счет" в спам-сообщении Сумма всех вхождений слова в каждом спам-сообщении (с учетом дубликатов)
Вы смотрите на этот многократный результат, появляющийся на показателе/степени вероятности, поэтому такая модель называетсяполиномиальная модель.
9.2 Модель Бернулли
Другой более упрощенный способ -Относитесь к повторяющимся словам так, как если бы они встречались только один раз,
P (("Счет","Счет","НДС","Счет","Обычный","Счет")|S)
= P("Счет" | S)P("Выставление счетов" | S)P("НДС" | S)P("Обычный" | S)
Расчеты То же верно и для P("слово" | S).
P("invoice" | S) = количество спам-сообщений с появляющимся "invoice" Сумма количества вхождений всех слов в каждом спам-сообщении (вхождения учитываются только один раз)
Такая модель называетсямодель Бернулли(Также известен какБиномиальная модель независимости). Этот способ более упрощен и удобен. Конечно, при этом теряется информация о частоте слов, поэтому эффект может быть хуже.
9.3 Смешанные модели
Третий способ заключается в том, что при вычислении вероятности предложения не учитывается количество вхождений повторяющихся слов, но учитывается количество вхождений повторяющихся слов при вычислении вероятности слова P("word"|S). модель можно назватьсмешанная модель.
Мы показываем взаимосвязь трех моделей на следующем рисунке.
Какую модель использовать на практике, зависит от конкретного бизнес-сценария. Мой простой опыт заключается в том, чтоСмешанные модели лучше подходят для идентификации спама.
10. Удалите стоп-слова и выберите ключевые слова
мы продолжаем наблюдать(«Я», «Компания», «Может», «Обработка», «Обычный счет», «Верность», «НДС», «Счет», «Баллы», «Льготный»)Это предложение. На самом деле, как"Я могу"Подобные слова на самом деле представляют собой очень нейтральную, полезную информацию, которая не помогает судить о том, попадает ли она в спам или нет. Таким образом, эти типичные слова можно игнорировать напрямую. Эти слова, которые не помогают нам классифицировать, называются«Стоп-слова». это хорошоСокращение времени, которое мы тратим на обучение моделей и оценку классификации.
Таким образом, предыдущее предложение становится(«Компания», «Ручка», «Формальный счет», «Верность», «НДС», «Счет», «Баллы», «Льготный»).
Анализируем дальше. На самом деле в человеческом опыте«Формальный счет», «Счет-фактура»Если появляются такие слова, вероятность того, что электронное письмо является спамом, очень высока, и мы можем использовать его как способ отличить спам.«Ключевые слова». И нравится«Компания», «Ручка», «Льготный»Подобные слова немного банальны и могут помочь с категоризацией, но не так сильно. Если вы хотите избежать проблем и создать простой классификатор, вы можете напрямую использовать «ключевые слова» для статистики и оценки, а остальные слова можно игнорировать. Таким образом, предыдущее спам-предложение становится(«Формальный счет-фактура», «Счет-фактура»). Таким образом, время на обучение модели и оценку классификации еще больше сокращается, а скорость очень высока.
«Стоп-слова» и «ключевые слова» обычно можно указать заранее вручную.. Эффекты классификаторов, обученных по разным «стоп-словам» и «ключевым словам», также будут несколько отличаться. Итак, существует ли какой-либо количественный показатель для оценки различительной способности разных слов? в наших предыдущих статьях«Серия машинного обучения (6) _ Выбор и предварительная обработка признаков на свидании вслепую Бай Фумэя (часть 2)»На самом деле существует метод оценки, на который вы можете сослаться. Я не буду здесь вдаваться в подробности.
11. Говоря о технологии сглаживания
Давайте поговорим о проблеме (в китайском НЛП так много проблем, плачущий слепой Т_Т), например, о вычислении вероятности следующих независимых условных предположений:
P(("Я","Компания","Может","Обработка","Обычный счет")|S)
= P("I" | S)P("Компания" | S)P("Май" | S)P("Обработка" | S)P("Обычный счет" | S)
Просканируем обучающую выборку и найдемСлово "обычный счет" никогда не появлялось! ! !,тогда
P ("обычный счет" | S) = 0... Проблема серьезная, вся вероятность стала 0! ! ! Наивные байесовские методы с треском проваливаются перед кучей нулей... еще более жестокоЭто на самом деле довольно часто, потому что независимо от того, насколько велика обучающая выборка, могут быть слова, которые невозможно охватить. По существу все ещеКоличество выборок слишком мало, чтобы удовлетворить закону больших чисел, и вычисленная вероятность искажается.. Чтобы решить такую проблему, аналитическая идея состоит в том, чтобы напрямую игнорировать такие слова, но этот метод эквивалентен присвоению значения 1 для P("обычный счет-фактура"|S) по умолчанию. На самом деле эффект не очень хороший, и много статистической информации теряется. Давайте дальше разберем, раз ему по умолчанию можно присвоить 1, то почему по умолчанию ему нельзя присвоить маленькое число? Это основная идея технологии сглаживания, которая до сих пор поддерживает единый стиль.朴实/土
но直接而有效
.
Для модели Бернулли алгоритм сглаживания P («обычный счет» | S):
P("обычный счет" | S) = количество спам-сообщений с "обычным счетом-фактурой" +1 сумма количества вхождений всех слов в каждом спам-сообщении (вхождения учитываются только один раз) +2
Для полиномиальной модели алгоритм сглаживания для P("обычный счет" | S):
P («Счет» | S) = Сумма вхождений «Счета» в одном спаме + 1 Сумма вхождений всех слов в каждом спаме (с учетом дубликатов) + Количество подсчитанных словарных слов
Кстати говоря, видов техник сглаживания на самом деле много, если вам интересно, мы еще вернемся и поговорим об этом в специальной теме. Просто упомянуть здесь, вот и всеМетоды сглаживания дают оценку вероятности слов, которые не появляются в обучающем наборе, и соответствующим образом корректируют вероятность появления других слов..
Техника сглаживания является реальной необходимостью, потому что набор данных слишком мал.Если набор данных достаточно велик, методы сглаживания окажут меньшее влияние на результаты.
12. Резюме
Мы нашли самый простой и распространенный пример: идентификация спама, и объяснили процесс классификации текста по Наивному Байесу. Основная идея состоит в том, чтобы сначала отличить обучающий набор от тестового набора, выполнить операции предварительной обработки признаков, такие как сегментация слов и удаление пунктуации в текстовом наборе, а затем использовать гипотезу условной независимости для преобразования исходной вероятности в произведение вероятности слова, и затем выполните последующую обработку.
Байесовская формула + предположение условной независимости = наивный байесовский метод
Основываясь на трех различных способах обработки повторяющихся слов на этапе обучения и этапе суждения (тестирования), у нас есть модели Бернулли, полиномиальные модели и смешанные модели соответственно. На этапе обучения, если выборка слишком мала и некоторые слова не появляются, мы можем использовать методы сглаживания, чтобы дать оценку их вероятности. И не все слова нужно считать, мы можем дополнительно упростить модель в соответствии с соответствующими «стоп-словами» и «ключевыми словами», чтобы повысить скорость обучения и суждения.
Поскольку существует много формул, чтобы предотвратить ситуацию, когда формулу берет собака, мы пытаемся выразить формулу так, как говорят (шуо) на языке (жэнь) и (хуа), пожалуйста, простите меня, если это так. не строго, и приветствую всех, если есть какие-либо ошибки.