Kashirin.net

Десятичные иерархические числа

Алгебраическая система десятичных иерархических чисел

Кратко идея иерархических чисел выглядит так. Пусть N – множество целых чисел, включающих 0 и отрицательные элементы. N = {…, -3, -2, -1, 0, 1, 2, 3 , …}. Пусть также есть выделенный символ «.».

Множество A = N ᴗ «.» определяется как алфавит с целыми числами n N, «ᴗ» –операция объединения множеств, «.» – символ-разделитель уровней, «» - теоретико-множественное отношение принадлежности элемента множеству. Тогда грамматика:

h → < n >, h → < n > . <h>

описывает множество бинарных иерархических чисел H с элементами h.

Примеры иерархических чисел: -42.0.1.0.4, 4, -12, 0.1.1.0.

Иерархические числа имеют графическую интерпретацию, в которой соответствуют численным индексам вершин деревьев с одной корневой вершиной n N. Количество таких деревьев равномощно множеству N, поскольку корневой вершиной любого такого дерева является вершина n, не имеющая в своем написании символа «.».

Спуск в вершину n1 на один уровень вниз от вершины nx производится бинарной операцией «+» (nx + ny = nx . ny ), подъем от вершины n1 . n2 вверх – унарной операцией «--» (n1 . n2 -- = n1, 0-- = 0). Таким образом, любое иерархическое число либо является целым числом, либо начинается с целого числа и содержит в своей структуре целые числа, разделенные точками.

Приведем несколько примеров.

Пусть { n1 , n2 , n3, n4, nx } N, где «» ─ отношение «подмножество множества».

n1 . n2 + n3 . n4 = n1 . n2 . n3 . n4 , n1 . n2 . n3 -- = n1 . n2,

0.nx + 0 = 0.nx.0, 0.0 + 0 = 0.0.0, 0 + -4 = 0.-4, nx -- = nx .

41-- = 41, -33 + 0 = -33.0, -33-- = -33.

Более сложными являются операции {º , ^, | |}.

Операция «º» вычисляет общего предка двух вершин, например:

45.-1.0.0.12 º 45.-1.1.0.12 = 45.-1,   1.-2.14 º -5.3.3.3 = 0.

То есть при отсутствии общего предка результатом операции является 0.

Операция «^» вычисляет путь из одной вершины в другую через общего предка. При этом иерархическое число, идентифицирующее общего предка, опускается, например:

45.-1.0.0.14  ^ 45.-1.1.0.12 = [(45.-1.0.0.14 → 45.-1.0.0 → 45.-1.0 → 45.-1) →

(45.-1.1 → 45.-1.1.0 → 45.-1.1.0.12)] = 14.0.0.1.0.12,

где символом «→» обозначен один шаг перехода по дереву от вершины к вершине.

Наконец, унарная операция «| |» вычисляет длину иерархического числа, например:

             |14.0.0.1.0.12| = 6 .

Здесь используется свойство алгебры иерархических чисел Н, определяемое как алгебра, объемлющая формальную арифметику целых чисел. Действительно, алгебра целых чисел (арифметика) является частным случаем алгебры H, если доопределить на ней арифметические операции сложения, вычитания и умножения чисел.

После рассмотрения семантики приведенных операций можно задать универсальную арифметическую алгебру иерархических чисел H:

H = < H, Ω >, Ω = {+ (2), --(1), º(2) , ^(2), | |(1)},

где H – множество-носитель, а Ω – сигнатура алгебры, т.е. множество операций. Числа в круглых скобках обозначают местность операций, т.е. количество аргументов.

Операции {+, º , ^} являются бинарными, операции {--, | |} определены как унарные.

Рассмотренную алгебру можно дополнить до алгебраической системы Hs = < H, Ω, R >, введя множество отношений R = {< , >, ~, = }, где отношения «a > b» и « b < a » соответственно «число a сложней числа b» и «число b короче числа a». Символами «~» (a~b) и «=» (a = b)обозначены отношения соответственно «равенство длин чисел a и b» и полное совпадение чисел.

 

Идея использования десятичных иерархических чисел

Применение иерархических чисел при проектировании онтологических таксономий для LLM основано на вычислении иерархических эмбеддингов (embeddings). Семантические многомерные пространства задаются тысячами измерений, каждое из которых соответствует одной словарной единице (лексеме). Каждое слово предложения на естественном языке представляет собой вектор в семантическом пространстве, который можно записать как соответствующий многомерный кортеж. В первом приближении каждый элемент такого кортежа – число, вычисленное как семантическая близость слова к другому слову, задающему соответствующее измерение пространства. Такое представление дает возможность рассчитать главенство каждого из слов в предложении. Механизм этого расчета назван «концентрацией внимания» [8].

В то же время, LLM, спроектированные на этой основе [9] (GPT 5, RoBERTa-transformers 4.3.0, Claude 3.2, LLaMA 3.2, Yandex/YaLM-100B, Gemini 3, GigaChat, BrainBot и т.п.), имеют существенные недостатки:

     потребность в гигантских вычислительных ресурсах;

     невозможность полноценной творческой генерации;

     отсутствие механизмов самосовершенствования (метаанализа);

     отсутствие знаний в узкоспециализированных предметных областях;

     наличие ошибок в ответах на вопросы клиентов;

     риск нарушения функциональной целостности весов нейронных сетей при дообучении модели;

     отсутствие знаний о современной оперативной информации, появившейся после выпуска LLM.

Функционал творчества и метаанализа требует применения дополнительных математических формализмов, учитывающих внутреннюю структуру знаний, которая включает использование осознанных онтологических таксономий. Парадокс функциональных принципов LLM заключается в том, что они могут по соответствующему запросу пользователя вполне достоверно сгенерировать отдельные фрагменты таких таксономий и выдать результат в качестве ответа, но пока не могут ввести их в базовые схемы своей внутренней организации.

Таким образом, можно сформулировать задачу «башни генеративных LLM», аналогичную задаче «башни алгоритмических языков»: «построить внутреннюю структуру знаний более высокого уровня, используя для этого генеративные возможности существующих LLM». Дополнительным положительным эффектом от такого высокоуровневого построения является упрощение генеративных языковых моделей. Упрощение дает возможность не только использовать метауровневые архитектуры LLM, но и позволяет сократить трудоемкость (вычислительную сложность) применения RAG (Retrieval-Augmented Generation) [10, 11], решающих проблему использования оперативной информации.

На этом этапе автором настоящей статьи предлагается использовать математический формализм десятичных иерархических чисел. Он может быть использован при вычислении иерархических эмбеддингов и существенно упрощает расчет семантической близости словарных конструкций различного уровня в естественном языке.

Оптимизация процессов векторизации слов в семантическом пространстве для получения улучшенных эмбеддингов достигается за счет следующих факторов.

Сокращение используемой оперативной памяти

Иерархические числа являются семантическими индексами понятий и отношений, которые составляют смысл естественно-языкового предложения (словарной конструкции, текста, словосочетания). Эти индексы уже получены в базовых LLM на основе применения принципа «башни генеративных LLM». Индексы отражают место понятия или отношения в родовидовой, меронимической, причинно-следственной и других семантических таксономиях. Вследствие этих фактов вектора семантического пространства (эмбеддинги) становятся существенно компактней.

Так например, «нападение (1.25.3.1)» → «атака (1.25.3.1.1)» → «бомбардировка (1.25.3.1.1.1), «стрельба (1.25.3.1.1.2)», соответствуют понятиям, связанным транзитивным родовидовым отношением «→» и, следовательно, имеют все смысловые связи, принадлежащие понятию «нападение». Нетрудно заметить, что соответствующие понятиям иерархические индексы это качество наглядно отображают.

То же самое можно наблюдать в причинно-следственной таксономии событий: «война (2.12)» => «атака (2.25.3.1.1)» => «убийство (2.25.3.1.1.3)».

Сказанное свидетельствует о том, что иерархические числа позволяют сократить семантическое пространство, разделив эмбеддинги понятий по уровням, в которых количество измерений существенно меньше, чем в существующих LLM. Становится возможным использование меньших векторов или даже их частей.

Ускорение вычислений

 Меньшее количество чисел в векторах делает матричные умножения и вычисления сходства значительно меньше по их вычислительной сложности.

Регуляризация/Интерпретируемость

Явное включение информации об иерархии может помочь модели лучше обобщать и делать более предсказуемые выводы, особенно если задача потребует понимания родовидовых отношений.

 

Вычисление семантической близости на основе десятичных иерархических чисел

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

Сигнатуру Ω нужно дополнить арифметическими операциями сложения «», вычитания «», умножения «» и деления нацело «/»:

ΩA = {⊕(2), ⊖(2), ⊗(2), /(2)}, Ω0 = {{+ (2), --(1), º(2) , ^(2), | |(1) },

Ω = ΩA Ω0 ={+ (2), --(1), º(2) , ^(2), | |(1), ⊕(2), ⊖(2), ⊗(2), /(2)},

где «» - теоретико-множественная операция объединения множеств.

Фактически, при дополнении сигнатуры ранее рассмотренной алгебры формальной арифметикой ΩA, алгебру Ω пришлось разбить на два подмножества.

Алгебраическая семантика арифметических операций ΩA описывается простыми алгоритмами.

a b = b a, пусть a содержит n разрядов (целых чисел, разделенных в иерархическом числе точками) и b содержит m разрядов. Пусть также m больше или равно n. Тогда результатом операции является поразрядное сложение первых n разрядов иерархических чисел a и b. Оставшиеся m-n разряды копируются из соответствующих разрядов большего по количеству разрядов числа.

Например, для a = 12.-1.0.2.4, b = 3.5.-1.0.0.115, выполняются следующие равенства:

12.-1.0.2.4 3.5.-1.0.0.115 = 3.5.-1.0.0.115 12.-1.0.2.4 = 15.4.-1.2.4.115

Полностью аналогичен смысл других арифметических операций, с той лишь разницей, что над соответствующими разрядами иерархических чисел-аргументов выполняются соответствующие арифметические операции вычитания, умножения и деления нацело (пример деления нацело классической арифметики:3/5= 0; 5/2 = 2).  

В сделанных определениях метод вычисления семантического сходства для словарных конструкций естественного языка разных уровней выглядит следующим образом.

Пусть есть две словарные конструкции a и b. Это могут быть тексты, предложения, словосочетания и отдельные словоформы. Каждая из конструкций состоит из последовательности слов (словоформ):

               a = a1 a2 a3aian ; b = b1 b2 b3bjbm.

Каждое из слов { a1 a2 a3aian b1 b2 b3bjbm }может быть представлено в родовидовой таксономии своей части речи или лексической категории десятичным иерархическим числом. При этом первый разряд числа является индексом лексической категории.

Примеры

<прилагательное> => <жестокий> => <сокрушительный> => <смертельный>

               3                        3.5                               3.5.1                   3.5.1.0

<прилагательное> => <окрашенный> => <черно-белый> => <черный>

               3                        3.12                             3.12.0                 3.12.0.0

<прилагательное> => <окрашенный> => <цветной> => <зеленый>

               3                        3.12                             3.12.1                 3.12.1.1

<глагол>                 => <действовать> => <нападать>=><атаковать> => <бомбить>

  1.      1                           1.3                      1.3.7.       1.3.7.0           1.3.7.0.0

Для лексических единиц, не имеющих выраженной родовидовой таксономии, могут использоваться иерархические числа с малым числом разрядов.

Примеры

<вопрос> => [качественный] => <как>

   8                          8.1                     8.1.0

<вопрос> => [объектный]       => <кто>

   8                        8.2                     8.2.0

<вопрос> => [объектный]     =>   <что>

8                           8.2                     8.2.1

Для сложных отглагольных словарных конструкций можно закодировать причинно-следственную таксономию.

Примеры

<событие>=><конфликтовать>=><атаковать>=>

     10                     10.5                         10.5.1

                                                       <получить жертвы>=><потерпеть поражение>

                                                         10.5.1.1                           10.5.1.4

<событие>=><конфликтовать>=><атаковать>=>

     10                     10.5                         10.5.1

                                                      <получить жертвы>=><получить отпор>

                                                         10.5.1.1                           10.5.1.2

В программной реализации сложные словарные конструкции идентифицируются с помощью механизма паттернов (шаблонов) или сложных регулярных выражений [12]. В этом случае дополнительный иерархический индекс может быть приписан только глаголу словарной конструкции.

Дополнительные индексы – это иерархические числа, приписываемые элементам словарных конструкций (словам), кроме уже имеющихся индексов, например, родовидовых.

Таким образом, каждый из элементов { a1 a2 a3aian b1 b2 b3bjbm }входных словарных конструкций a и b соответствует списку собственных иерархических индексов I, J. Впрочем, очень часто – это одноэлементный список. Можно этот факт записать следующим формальным выражением.

{ a1 (i11 ,i12 ,i13,…) a2 (i21 , i22 , i23, …) … ai… an(in1, in2 ,in3, … ) b1 (j11, j12…) bm (bm1, bm2, …)}

Далее суть вычисления семантического сходства a и b заключается в попарном сопоставлении всех индексов всех слов из a со всеми индексами всех слов из b, т.е. каждого с каждым. После этого сравнения для каждой сопоставленной пары слов выбирается их наибольшее общее иерархическое число, для которого вычисляется его длина (количество разрядов). Это одноразрядное число по определению десятичных иерархических чисел тоже относится к иерархическим числам.

Введем операции   ind(ax), ind(by), имеющие следующий смысл.

 

   ind(ax) = ind(ax (ix1 ,ix2,…, ix-end)) = { ix1 ,ix2,…, ix-end }

   ind(by) = ind(by(jy1, jy2,…, jy-end)) = { jy1, jy2,…, jy-end }

 

Вычисление множества всех пар индексов для слов ax и by конструкций a и b вычисляется следующим выражением.

 

                                             ix-end, jy-end

   D(ax, by) = ind(ax) ind(by) =   ∪         (ix ,jj) ,

                                            ix = ix1, jy =jy1

 

где «» -декартово произведение множеств, «» объединение множеств.

Далее введем функцию O:

   O:   (ix ,jj) → º (ix ,jj), Max(|O(D(ax, by))|), где «O» функция вычисления общей части иерархических индексов для каждой пары индексов из множества пар D(ax, by). Ее основой является операция «º» из алгебры иерархических чисел (для одной пары).

Функция O в качестве результата выдает множество общих частей пар иерархических чисел D(ax, by), т.е. множество индексов, но не пар. Эти индексы являются результатами сопоставления всех иерархических индексов слова ax со словом by для словарных конструкций a и b.

Унарная операция «| |» алгебры иерархических чисел превращает множество индексов, вычисленных функцией O в одноразрядные иерархические числа, совпадающие с длиной индексов, как количеством разрядов.

Наконец, функция Max выбирает наибольшее число из всего множества чисел после операции «| |».

Для упрощения выражение Max(|O(D(ax, by))|) обозначим как L(ax, by):

L(ax, by) = Max(|O(D(ax, by))|) .

 

Иными словами, L(ax, by) – функция вычисления длины максимального общего индекса для всех пар индексов слов ax и by . Чем больше эта величина, тем более близкими по смыслу являются сопоставленные слова.

Для вычисления семантического сходства S двух словарных конструкций a и b в целом, используется следующее выражение.

 

                               n m

                            ∑∑   2 * L(ai, bj) / (| ai | + |bj|)

                    i=1 j=1  

S =  2 *   ───────────────────────         .

                          |a| + |b|

 

Это выражение уже использовалось ранее для более простых вычислений, в которых слова в словарных конструкциях использовали единственный двоичный иерархический индекс. В настоящей статье этот случай расширен на полиморфические (множественные) таксономии с индексацией десятичными иерархическими числами. В программной реализации рассмотренного метода для вычисления семантического сходства после этапа вычисления множества O(D(ax, by) можно использовать функцию нормализации десятичных чисел softmax.

 

 

 

Go to top