Small introduction

Sense Cognition is an innovative startup founded only at the end of September 2013. But at the heart of the developments are more than 15 years of research in the field of strong artificial intelligence.
')
In the field of recognition, more success is being done, but, alas, computers still do not understand what they recognize and why.
Today, perhaps, everyone who is interested in pattern recognition has heard about the "grandmother's neuron" and it is difficult to find a person in the subject who would not know about the task of generalization and some approaches to its solution.
Within the framework of this article, it is not supposed to consider existing approaches, but only the author's approach will be proposed.
Why do we need to generalize, and what does the recognition of meaning?

The first part of the question (why you need to generalize) is best answered purely technically: generalizations greatly reduce the complexity of recognition. If we present generalizations as some multi-level structure, then at high levels we will have the most general context of a recognizable situation. And this context is usually the least volatile. Its changes turn out to be a rather thin stream of changeable features from lower levels of the hierarchy.
And then the answer to the second part of the question arises (what is the recognition of meaning here), because this hierarchy is a hierarchy of meaning.
Yes, the meaning, no matter how much a variety of ideas and ideas is embedded in this word, in its refined essence, is only a hierarchical view of the situation.
Language is a reflection of consciousness
The human mind is a continuously classifying mechanism, the purpose of which is to improve the understanding of various situations, transitions between them and the most permanent components of all these situations. After all, no wonder people are so concerned about the meaning of life. The meaning of life is the desire to find a support for ideas that best embraces all the diversity of life situations.
Man has already created a very good model of the very hierarchy of meaning, and this model is a language. More precisely - the written form of expression of thoughts. Before the creation of written language, this structure was not so clearly and precisely formulated and expressed.
Writing has separate characters at the lowest level of expression of meaning.
These characters are folded into words.
Words are formed into elementary phrases (at the level of the subject - predicate)
Phrases are sentences and whole paragraphs.
Paragraphs are added to chapters or parts.
Chapters and parts are added to volumes, volumes in series, series in libraries
This model can be classified in many ways, but the idea of the hierarchy is fully preserved. Various ways of organizing can be introduced (by topic, by author, by character, etc.), and this is all a reflection of how the mechanism of generalization works in the human mind.
Here it is only necessary to clarify a couple of moments when it comes to human consciousness. Researchers often make the same mistake when trying to model an individual as an instance of artificial intelligence. The task itself is quite correct, but by solving it, the researchers narrow down the area under consideration - consciousness - to the ephemeral idea of personal consciousness. But such in reality can not be found.
Consciousness should be considered in its entirety of origin. This fullness includes the scattering circles of communication of each individual and the process of perceiving them of many thoughts from birth. Then it turns out that the elementary unit of meaning is not at all the identity of a separate instance of the mind, it covers many generations and has its own, rather difficult form of existence in society.
But let's not look too deep into the philosophy.
The purpose of this clarification is only to switch the idea of meaning as something unknown as arising in a separate brain to the idea of meaning as something that can be perceived and recognized. The meaning around us and communication is the perception and expression of meaning.
Let's say more: we are interested in precisely the meaning that is useful in communication. Why this is so is a question of a separate large discussion on how life came about (for example, how organelles are symbiotic in eukaryotic education) and what is the role of communication in this process.
How, then, to recognize the meaning?
I want to start with the good news. If you take any text file - it has already done a great job of recognizing the meaning. A text file consists of characters, all characters are well encoded, and this encoding is very resistant to interference.
We have only the task of generalization, starting with these very symbols, in these very texts.
Imagine a second level of meaning, if you take characters for the first.
Of course, these are words. Words obviously have a very steady meaning. There can be quite a serious dispute over parts of words (root, preposition, suffix, ending, etc.)
Yes, undoubtedly, word formation is a separate task of analysis, but in our case, a stable sense of similar words in the practice of their application is important for the classifier. Therefore, let us bypass this discussion so far, and consider what the words mean, how they are revealed and why punctuation marks are so harmful, and especially the gaps in the task of summarizing characters to words.
To begin with, purely statistically, words are frequently encountered combinations of characters. These combinations are quite stable and much more often than slightly other combinations of characters.
And here there is an important point that must be considered in the simulation. Text in a text file contains obvious separators, while a unit of meaning in oral speech that a person encounters from birth for a very, very long time is a whole phrase, without explicit separators. Fluent speech does not just create difficulties for recognition. It also contains something important in the work of perception, and if you only work with written text, this important thing will not be noticed, implemented and in the next step you will have to invent an algorithm for summarizing words into phrases. And this is - a hack.
Therefore, from the very beginning, the generalization algorithm has no other information about the symbols, except for their autonomous and mutual statistics of appearance in the texts.
In mutual statistics lies the main mechanics of the algorithm. Subject to the appearance of a symbol, other symbols are expected with different probability in its vicinity.
To simplify the example, you can build a binary tree. For the line MOM'S SOAP FRAME, for each pair of characters we can define mutual statistics of confirmations and refutations.
For example, M ... A is confirmed 2 times and refuted 3 times since M and 2 times since A.
Each pair can be assigned a certain index and further collect statistics of triples and quadruples of characters. A triple is obtained if in two pairs one character matches, for example, RA goes to AM or R. M goes to R ... U.
So the statistics of transitions is built up to fairly large generalizations.
You can designate the transition scheme as X [level + 1] [index K] = Transition (X [level] [index M], X [level] [index N]), and for each such transition we have two additional values — the number of confirmations and the number denials.
As a result, any text and any piece of text will be defined as a certain X [A] [i].
At each moment in time, any newly studied text will quickly form hypotheses that it deals with a certain set of candidate generalizations.
Simply put, the new text is not read character by character, and the characters are selected from it in a sequence determined by the fastest check of these candidates for relevance.
Thus, we get the context from the constantly changing set of candidates for actual generalizations, whatever text we feed our classifier. At the same time, the classifier will express a very specific behavior for text processing, trying to guess which generalizations apply to this text from the previously known ones.
The complexity of the algorithm
If we simply collected statistics first of all pairs, then of all three-fours, then of all six-sevens-eight, building up level after level, then such an algorithm would generate trillions of pairs already at the second level, counting each pair of symbols at distances from the beginning of the text and to the end of it.
However, our algorithm is greedy, and it will build generalizations of multi-hundred levels already on the first hundreds of characters, and for this reason there will never be a consistent construction of all possible pairs of characters.
To evaluate the real complexity of the algorithm is the primary task of current research.
We will tell about this after the New Year holidays.