-
- Description:
Aika is a Java library that automatically extracts and annotates semantic information into text. In case this information is ambiguous, Aika will generate several hypothetical interpretations concerning the meaning of the text and pick the most likely one. The Aika algorithm is based on various ideas and approaches from the field of AI such as artificial neural networks, frequent pattern mining and logic based expert systems. It can be applied to a broad spectrum of text analysis task and combines these concepts in a single algorithm.
Aika allows to model linguistic concepts like words, word meanings (entities), categories (e.g. person name, city), grammatical word types and so on as neurons in a neural network. By choosing appropriate synapse weights, these neurons can take on different functions within the network. For instance neurons whose synapse weights are chosen to mimic a logical AND can be used to match an exact phrase. On the other hand neurons with an OR characteristic can be used to connect a large list of word entity neurons to determine a category like 'city' or 'profession'.
Aika is based on non-monotonic logic, meaning that it first draws tentative conclusions only. In other words, Aika is able to generate multiple mutually exclusive interpretations of a word, phrase, or sentence, and select the most likely interpretation. For example a neuron representing a specific meaning of a given word can be linked through a negatively weighted synapse to a neuron representing an alternative meaning of this word. In this case these neurons will exclude each other. These synapses might even be cyclic. Aika can resolve such recurrent feedback links by making tentative assumptions and starting a search for the highest ranking interpretation.
In contrast to conventional neural networks, Aika propagates activations objects through its network, not just activation values. These activation objects refer to a text segment and an interpretation.
Aika consists of two layers. The neural layer, containing all the neurons and continuously weighted synapses and underneath that the discrete logic layer, containing a boolean representation of all the neurons. The logic layer uses a frequent pattern lattice to efficiently store the individual logic nodes. This architecture allows Aika to process extremely large networks since only neurons that are activated by a logic node need to compute their weighted sum and their activation value. This means that the fast majority of neurons stays inactive during the processing of a given text.
To prevent that the whole network needs to stay in memory during processing, Aika uses the provider pattern to suspend individual neurons or logic nodes to an external storage like a mongo db.
- Changes to previous version:
Aika Version 0.17 2018-05-14
- Introduction of synapse relations. Previously the relation between synapses was implicitly modeled through word positions (RIDs). Now it is possible to explicitly model relations like: The end position of input activation 1 equals to the begin position of input activation 2. Two types of relations are currently supported, range relations and instance relations. Range relations compare the input activation range of a given synapse with that of the linked synapse. Instance relations also compare the input activations of two synapses, but instead of the ranges the dependency relations of these activations are compared.
- Removed the norm term from the interpretation objective function.
- Introduction of an optional distance function to synapses. It allows to model a weakening signal depending on the distance of the activation ranges.
- Example implementation of a context free grammar.
- Example implementation for co-reference resolution.
- Work on an syllable identification experiment based on the meta network implementation.
Aika Version 0.15 2018-03-16
- Simplified interpretation handling by removing the InterpretationNode class and moving the remaining logic to the Activation class.
- Moved the activation linking and activation selection code to separate classes.
- Ongoing work on the training algorithms.
- BibTeX Entry: Download
- Supported Operating Systems: Platform Agnostic
- Data Formats: Txt
- Tags: Information Extraction, Inference, Neural Network, Text Mining
- Archive: download here
Other available revisons
-
Version Changelog Date 0.17 Aika Version 0.17 2018-05-14
- Introduction of synapse relations. Previously the relation between synapses was implicitly modeled through word positions (RIDs). Now it is possible to explicitly model relations like: The end position of input activation 1 equals to the begin position of input activation 2. Two types of relations are currently supported, range relations and instance relations. Range relations compare the input activation range of a given synapse with that of the linked synapse. Instance relations also compare the input activations of two synapses, but instead of the ranges the dependency relations of these activations are compared.
- Removed the norm term from the interpretation objective function.
- Introduction of an optional distance function to synapses. It allows to model a weakening signal depending on the distance of the activation ranges.
- Example implementation of a context free grammar.
- Example implementation for co-reference resolution.
- Work on an syllable identification experiment based on the meta network implementation.
Aika Version 0.15 2018-03-16
- Simplified interpretation handling by removing the InterpretationNode class and moving the remaining logic to the Activation class.
- Moved the activation linking and activation selection code to separate classes.
- Ongoing work on the training algorithms.
May 14, 2018, 15:42:00 0.14 Aika Version 0.14 (2018-02-04)
- Caching of partially computed states in the neural network during the interpretation search.
- Refactoring of the interpretation search. Iterative implementation of the interpretation search to prevent stack overflows. Much more detailed debugging output.
- Ongoing work on the training algorithms.
Aika Version 0.13 (2018-01-20)
- API cleanups: Input -> Synapse.Builder, Activation.Builder
- Optimization and simplification of the interpretation search.
- Refactoring of the range matching within synapses.
- Ongoing work on the training algorithms.
February 4, 2018, 19:34:25 0.12 Aika Version 0.12 (2017-12-12) Memory optimization: Disjunctive synapses are now stored on the input neuron side. The bias delta value in a neuron input is now an absolute value. Bug fixes, code cleanups, code readability improvements, lambda expression usage, convenience functions.
Aika Version 0.11 (2017-11-26) Optimization for the search for the best interpretation. Optimization of the checkSelfReferencing function. Fixes for the training and pattern discovery functions.
December 12, 2017, 15:21:11 0.10 Aika Version 0.10 (2017-11-03)
Simplification: Activations are now only added during processing never removed. However, they might be suppressed if they are conflicting with other activations. Removed some old experimental training code and provided two APIs for training and pattern discovery. The APIs allow to implement heuristics when deciding which synapses should be created or which patterns should be selected. Experimental support for text generation.
Aika Version 0.9 (2017-10-22)
Rewrite of the conversion of synapse weights to logic nodes. Optimization of the interpretation search. Fixes for a few deadlocks.
November 3, 2017, 12:08:43 0.8 Aika Version 0.8 (2017-09-17) - Optimization of the interpretation search using an upper bound on the interpretation weights. - Support for very large models with millions of neurons by suspending rarely used neurons to disk.
Aika Version 0.7 (2017-08-06) - Refactoring of the range model. Now the range begin and the range end can be treated independently of each other. Synapses now have three properties: range match, range output and range mapping. - The Iteration class has been merged into the document class. - Performance optimizations for the interpretation search in the SearchNode class. - Test case fixes - Class renaming: Option -> InterprNode, ExpandNode -> SearchNode - Lots of javadoc
Aika Version 0.6 (2017-07-01) - Mainly optimizations
September 19, 2017, 18:10:43 0.5 Initial Announcement on mloss.org.
June 9, 2017, 20:22:20
Comments
No one has posted any comments yet. Perhaps you'd like to be the first?
Leave a comment
You must be logged in to post comments.