Что такое "Факторные графики" и для чего они полезны?

Друг использует Factor Graphs для создания текстового интеллектуального анализа (определения ссылок на людей в тексте), и это меня заинтересовало этим инструментом, но мне трудно найти интуитивное объяснение того, что такое Factor Graphs и как для их использования.

Может ли кто-нибудь объяснить объяснение Factor Graphs, которое не является математическим, и которое фокусируется на практических приложениях, а не на абстрактной теории?

Ответ 1

Они широко используются для разрушения проблемы на куски. Одним очень интересным применением фактор-графов (и передачи сообщений на них) является алгоритм XBox Live TrueSkill. я подробно рассказывал об этом в своем блоге, где я пытался найти вводное объяснение, а не слишком академическое.

Ответ 2

Фактор-граф - это графическое представление зависимостей между переменными и факторами (частями формулы), которые присутствуют в определенном виде формулы.

Предположим, что у вас есть функция f(x_1,x_2,...,x_n), и вы хотите вычислить маргинальность этой функции для некоторого аргумента x_i, таким образом суммируя все присваивания оставшейся формуле. Далее f можно разбить на факторы, например.

f(x_1,x_2,...,x_n)=f_1(x_1,x_2)f_2(x_5,x_8,x_9)...f_k(x_1,x_10,x_11)

Затем для вычисления маргинальности f для некоторых переменных вы можете использовать специальный алгоритм, называемый sum product (или передача сообщения), который разбивает проблему на более мелкие вычисления. Для этого algortithm очень важно, какие переменные появляются в качестве аргументов для какого фактора. Эта информация захватывается графом факторов.

График факторов - двудольный граф с как факторными узлами, так и переменными узлами. И есть ребро между множителем и переменной node, если переменная появляется как аргумент фактора. В нашем примере будет ребро между фактором f_2 и переменной x_5, но не между f_2 и x_1.

Существует отличная статья: Факторные графики и алгоритм суммарного произведения.

Ответ 3

Факторный график является математической моделью и может быть объяснен только математическими уравнениями. В двух словах это способ объяснить сложные отношения между переменными интереса в вашей модели. Пример: A - температура, B - давление, компоненты C, D, E в какой-то мере зависят от B, A, а компонент K зависит от B, A. И вы хотите предсказать значение K на основе A и B. Таким образом, вы знаете только видимые состояния. Базовые библиотеки ML не позволяют моделировать такую ​​структуру. Нейронная сеть делает это лучше. И Factor Graph точно решает эту проблему. Факторный граф является примером глубокого обучения. Когда невозможно представить модель с функциями и выходом, модели Factor позволяют строить скрытые состояния, слои и сложную структуру переменных, чтобы соответствовать действию реального мира. Примерами являются выравнивание машинного перевода, распознавание отпечатков пальцев, со-ссылка и т.д.