Этот пост хотелось бы написать скорее в философском ключе, нежели в математическом (точнее алгебраическом): не что это за страшный зверь — ЛСА, а какая от него может быть польза «нашему колхозу», т.е. ИИ.
Ни для кого уже не секрет, что ИИ состоит из многих взаимонепересекающихся или слабо пересекающихся областей: распознавание образов, распознавание речи, реализации моторных функций в пространстве и пр. Но одной из главных целей ИИ – научить «железо» думать, что включает в себя не только процессы понимания, но и генерирование новой информации: свободного или творческого мышления. В связи с этим возникают вопросы не столько разработки методов обучения систем, сколько осмысления процессов мышления, возможности их реализации.
На основах работы ЛСА, как уже упоминалось в начале статьи, я не буду сейчас останавливаться (планирую в следующем посте), а пока отошлю к Википедии, лучше даже английской (LSA). А вот основную идею этого метода постараюсь изложить на словах.
Формально:
ЛСА используется для выявления латентных (скрытых) ассоциативно-семантических связей между термами (словами, н-граммами) путем сокращения факторного пространства термы-на-документы. Термами могут выступать как слова, так и их комбинации, т.наз. н-граммы, документами – в идеале: наборы тематически однородных текстов, либо просто любой желательно объемный текст (несколько млн. словоформ), произвольно разбитый на куски, например абзацы.
«На пальцах»:
Основная идея латентно-семантического анализа состоит в следующем: если в исходном вероятностном пространстве, состоящим из векторов слов (вектор = предложение, абзац, документ и т.п.), между двумя любыми словами из двух разных векторов может не наблюдаться никакой зависимости, то после некоторого алгебраического преобразования данного векторного пространства эта зависимость может появиться, причем величина этой зависимости будет определять силу ассоциативно-семантической связи между этими двумя словами.
Например, рассмотрим два простых сообщения из разных источников (просто пример для наглядности):
Поскольку лексика блогов и рекламы не сильно пересекается, то слова «аккумулятор» и «батарейка» получат разный вес, скажем, первое маленький, а второе, наоборот, большой. Тогда эти сообщения можно объединить только на основе названия «XXX» (сильный критерий), но подробности про батарею (назовем его слабым критерием) пропадет.
Однако, если мы проведем ЛСА, то веса у «аккумулятора» и «батарейки» выровняются, и эти сообщения можно будет объединить на основе хотя и слабого критерия, но наиболее важного для товара критерия.
Таким образом, ЛСА «стягивает» вместе слова разные по написанию, но близкие по смыслу.
Спрашивается, а зачем это надо, причем тут ассоциативно-семантическая связь и ИИ? Обратимся к истории.
Одним из вопросов, которым задаются великие мыслители человечества со времен Платона, является вопрос о нашей возможности познаваемости мира. В XX веке известный американский лингвист Ноам Хомский сформулировал так называемую проблему Платона (Plato's problem): почему объем знаний отдельного человека намного больше, чем он может извлечь из своего повседневного опыта? Иначе говоря, как информация, получаемая из последовательности относительно небольшой вариативности событий, может корректно использоваться и адаптироваться к потенциально бесконечному числу ситуаций?
Например, лексикон детей в среднем ежедневно увеличивается на 3-8 слов. При этом, как говорят лингвисты, не всегда денотат имеет свой строго определенный референт, или человеческими словами — не каждое слово имеет соотнесение с реально существующими вещами или выполняемыми действиями (например, абстрактные понятия, слова, несущие неинформативную нагрузку и пр.).
Возникает вопрос: как ребенок определяет каждое новое значение слова и его соотношение с другими значениями или почему образуются новые «смыслы» (денотаты) и как они соотносятся между собой?
Работу «смысловых» механизмов концептуально можно сравнить с процессами категоризации или кластеризации. При таком подходе возникает проблема определения изначальных концептов или первичных кластеров, их границ и их числа.
ЛСА, его разновидности (PLSA, GLSA) и ему подобные (LDA – небезызвестное латентное размещение Дирихле) позволяет моделировать ассоциативно-семантические связи между словами, что с одной стороны позволяет отказаться от жесткой привязки лексической единицы к какому либо из кластеров, а с другой представить целостную систему связей между словами.
Это значит, что слова в нашем мозгу не классифицированы по понятиям (не лежат по полочкам-кластерам), а образуют сложную систему связей между собой, причем связи эти могут динамически меняться в зависимости от множества причин: контекста, эмоций, знаний о внешнем мире и пр., и пр. А алгоритмы, подобные ЛСА, дают нам возможность моделировать простейшие элементы «понимания». Но, возразят мне, как доказать, что мозг работает по принципу ЛСА. Скорее всего никак, ибо в этом нет необходимости: самолеты тоже летают, но крыльями не машут. ЛСА – это лишь один из методов, позволяющий моделировать простейшие системы «мышления» для их использования как в практических целях (интеллектуальные системы), так и для дальнейших исследованиях когнитивных функций человека.
Очевидным недостатком ЛСА является ненормальность (негаусовость) вероятностного распределения слов в любом естественном языке. Но эту проблему можно решить сглаживанием выборки (например, применив фонетические слова: распределение становится более «нормальным»). Либо используют вероятностный ЛСА, т.наз. PLSA, основанный на мультиноминальном распределении.
Другим, менее очевидным недостаткам ЛСА (и ему подобных методов) применительно к обработке неструктурированной информации можно отнести «туманность» самого метода (в частности, выбора кол-ва сингулярных значений диагональной матрицы) и интерпретации результата, не говоря уже о проблеме сбалансированности обучающего текста.
Как правило, для качественного построения модели оставляют менее 1-2 процента от общего числа диагональных значений (после SVD преобразования, но об это в следующем посте). И, как показывает практика, увеличение числа факторов приводит к ухудшению результата. Но дойдя примерно до 10 процентов от общего числа диагональных значений, опять может быть всплеск, аналогичный результату, полученному при 1%.
Сбалансированность корпуса – вечная проблема, которая не имеет хорошего решения на сегодняшний день. Поэтому про нее приято помалкивать.
Интерпретируемость результатов ЛСА (как и DLA) также затруднительна: человек еще может понять, что за тематику будет содержать топик, полученный в результате анализа, а вот машине не понять (не аннотировать) тематику без привлечения большого числа хороших и разных тезаурусов.
Таким образом, несмотря на трудоемкость и непрозрачность ЛСА, он может успешно применяться для разного рада задач, где важно поймать семантику сообщения, обобщить или расширить «смыслы» поискового запроса.
Поскольку этот пост написан в идеологическом плане (а зачем это надо?), то следующий пост хотелось бы посвятить практическим вещам (а как это работает?).
Литература:
1. Landauer T.K., Dumais S.T. A solution to Plato’s problem: The Latent Semantic Analysis theory of the acquisition, induction, and representation of knowledge // Psychological Review. 1997. 104. – P.211-240.
2. Landauer T.K., Foltz P., Laham D. An Introduction to Latent Semantic Analysis. Discours Processes, 25, 1998 — P.259-284.
3. www-timc.imag.fr/Benoit.Lemaire/lsa.html – Readings in Latent Semantic Analysis for Cognitive Science and Education. – Сборник статей и ссылок о ЛСА.
4. lsa.colorado.edu – сайт, посвященный моделированию ЛСА.
Ни для кого уже не секрет, что ИИ состоит из многих взаимонепересекающихся или слабо пересекающихся областей: распознавание образов, распознавание речи, реализации моторных функций в пространстве и пр. Но одной из главных целей ИИ – научить «железо» думать, что включает в себя не только процессы понимания, но и генерирование новой информации: свободного или творческого мышления. В связи с этим возникают вопросы не столько разработки методов обучения систем, сколько осмысления процессов мышления, возможности их реализации.
На основах работы ЛСА, как уже упоминалось в начале статьи, я не буду сейчас останавливаться (планирую в следующем посте), а пока отошлю к Википедии, лучше даже английской (LSA). А вот основную идею этого метода постараюсь изложить на словах.
Формально:
ЛСА используется для выявления латентных (скрытых) ассоциативно-семантических связей между термами (словами, н-граммами) путем сокращения факторного пространства термы-на-документы. Термами могут выступать как слова, так и их комбинации, т.наз. н-граммы, документами – в идеале: наборы тематически однородных текстов, либо просто любой желательно объемный текст (несколько млн. словоформ), произвольно разбитый на куски, например абзацы.
«На пальцах»:
Основная идея латентно-семантического анализа состоит в следующем: если в исходном вероятностном пространстве, состоящим из векторов слов (вектор = предложение, абзац, документ и т.п.), между двумя любыми словами из двух разных векторов может не наблюдаться никакой зависимости, то после некоторого алгебраического преобразования данного векторного пространства эта зависимость может появиться, причем величина этой зависимости будет определять силу ассоциативно-семантической связи между этими двумя словами.
Например, рассмотрим два простых сообщения из разных источников (просто пример для наглядности):
- 1-ый источник реклама: «Этот замечательный телефон XXX имеет мощный аккумулятор!»
- 2-ой источник блоги: «Кстати, у девайса XXX неплохая батарейка».
Поскольку лексика блогов и рекламы не сильно пересекается, то слова «аккумулятор» и «батарейка» получат разный вес, скажем, первое маленький, а второе, наоборот, большой. Тогда эти сообщения можно объединить только на основе названия «XXX» (сильный критерий), но подробности про батарею (назовем его слабым критерием) пропадет.
Однако, если мы проведем ЛСА, то веса у «аккумулятора» и «батарейки» выровняются, и эти сообщения можно будет объединить на основе хотя и слабого критерия, но наиболее важного для товара критерия.
Таким образом, ЛСА «стягивает» вместе слова разные по написанию, но близкие по смыслу.
Спрашивается, а зачем это надо, причем тут ассоциативно-семантическая связь и ИИ? Обратимся к истории.
Одним из вопросов, которым задаются великие мыслители человечества со времен Платона, является вопрос о нашей возможности познаваемости мира. В XX веке известный американский лингвист Ноам Хомский сформулировал так называемую проблему Платона (Plato's problem): почему объем знаний отдельного человека намного больше, чем он может извлечь из своего повседневного опыта? Иначе говоря, как информация, получаемая из последовательности относительно небольшой вариативности событий, может корректно использоваться и адаптироваться к потенциально бесконечному числу ситуаций?
Например, лексикон детей в среднем ежедневно увеличивается на 3-8 слов. При этом, как говорят лингвисты, не всегда денотат имеет свой строго определенный референт, или человеческими словами — не каждое слово имеет соотнесение с реально существующими вещами или выполняемыми действиями (например, абстрактные понятия, слова, несущие неинформативную нагрузку и пр.).
Возникает вопрос: как ребенок определяет каждое новое значение слова и его соотношение с другими значениями или почему образуются новые «смыслы» (денотаты) и как они соотносятся между собой?
Работу «смысловых» механизмов концептуально можно сравнить с процессами категоризации или кластеризации. При таком подходе возникает проблема определения изначальных концептов или первичных кластеров, их границ и их числа.
ЛСА, его разновидности (PLSA, GLSA) и ему подобные (LDA – небезызвестное латентное размещение Дирихле) позволяет моделировать ассоциативно-семантические связи между словами, что с одной стороны позволяет отказаться от жесткой привязки лексической единицы к какому либо из кластеров, а с другой представить целостную систему связей между словами.
Это значит, что слова в нашем мозгу не классифицированы по понятиям (не лежат по полочкам-кластерам), а образуют сложную систему связей между собой, причем связи эти могут динамически меняться в зависимости от множества причин: контекста, эмоций, знаний о внешнем мире и пр., и пр. А алгоритмы, подобные ЛСА, дают нам возможность моделировать простейшие элементы «понимания». Но, возразят мне, как доказать, что мозг работает по принципу ЛСА. Скорее всего никак, ибо в этом нет необходимости: самолеты тоже летают, но крыльями не машут. ЛСА – это лишь один из методов, позволяющий моделировать простейшие системы «мышления» для их использования как в практических целях (интеллектуальные системы), так и для дальнейших исследованиях когнитивных функций человека.
Очевидным недостатком ЛСА является ненормальность (негаусовость) вероятностного распределения слов в любом естественном языке. Но эту проблему можно решить сглаживанием выборки (например, применив фонетические слова: распределение становится более «нормальным»). Либо используют вероятностный ЛСА, т.наз. PLSA, основанный на мультиноминальном распределении.
Другим, менее очевидным недостаткам ЛСА (и ему подобных методов) применительно к обработке неструктурированной информации можно отнести «туманность» самого метода (в частности, выбора кол-ва сингулярных значений диагональной матрицы) и интерпретации результата, не говоря уже о проблеме сбалансированности обучающего текста.
Как правило, для качественного построения модели оставляют менее 1-2 процента от общего числа диагональных значений (после SVD преобразования, но об это в следующем посте). И, как показывает практика, увеличение числа факторов приводит к ухудшению результата. Но дойдя примерно до 10 процентов от общего числа диагональных значений, опять может быть всплеск, аналогичный результату, полученному при 1%.
Сбалансированность корпуса – вечная проблема, которая не имеет хорошего решения на сегодняшний день. Поэтому про нее приято помалкивать.
Интерпретируемость результатов ЛСА (как и DLA) также затруднительна: человек еще может понять, что за тематику будет содержать топик, полученный в результате анализа, а вот машине не понять (не аннотировать) тематику без привлечения большого числа хороших и разных тезаурусов.
Таким образом, несмотря на трудоемкость и непрозрачность ЛСА, он может успешно применяться для разного рада задач, где важно поймать семантику сообщения, обобщить или расширить «смыслы» поискового запроса.
Поскольку этот пост написан в идеологическом плане (а зачем это надо?), то следующий пост хотелось бы посвятить практическим вещам (а как это работает?).
Литература:
1. Landauer T.K., Dumais S.T. A solution to Plato’s problem: The Latent Semantic Analysis theory of the acquisition, induction, and representation of knowledge // Psychological Review. 1997. 104. – P.211-240.
2. Landauer T.K., Foltz P., Laham D. An Introduction to Latent Semantic Analysis. Discours Processes, 25, 1998 — P.259-284.
3. www-timc.imag.fr/Benoit.Lemaire/lsa.html – Readings in Latent Semantic Analysis for Cognitive Science and Education. – Сборник статей и ссылок о ЛСА.
4. lsa.colorado.edu – сайт, посвященный моделированию ЛСА.