Every person has an episodic memory that stores everyday experiences such as meeting people, visiting different locations, conversations with other people, and basically a trace of all his or her activities. Similarly, what a person knows in terms of knowledge about the world or the meaning of a conversation is stored in the semantic memory.
In Artificial Intelligence (AI) any intelligent agent also needs a memory to store its experiences and knowledge about the world (and itself).
Memory Graph is a human-like AI memory system built by AIBrain that integrates episodic and semantic memories for an intelligent agent. Memory is an essential component of artificial intelligence along with problem solving and learning. AIBrain is building an integrated AI platform called AICoRe that combines all these three components. Memory Graph is available as a standalone component for any AI application to add human-like memory capabilities.
All the information in Memory Graph, whether episodic or semantic, is broken down into fundamental units of information in the form of a network of nodes and relationships (i.e., a graph data structure). Technically, Memory Graph is basically a directed labelled graph where knowledge is represented in the form of nodes connected by directed edges. That’s where the name Memory Graph comes from.
The following is the visualization of a portion of the Memory Graph content. It represents information about one sentence in a natural language conversation between the human user and the intelligent agent. The sentence is “But they did not know where to put it.”
Memory Graph stores different types of information as briefly described below:
- Conversations exchanged between the intelligent agent and its human user or other agents. Both the structural (e.g., syntactic) and semantic information about conversations in the form of natural language (speech or textual formats) or Agent Communication Language (ACL) are stored in Memory Graph.
- Contextual information such as time, location, agents involved, emotional states during the conversation, and other metadata about the events that the agent experiences.
- All the reasoning steps and other inferences that are made by the agent to process the inputs and generate responses during the conversation.
Among other global-scale semantic graphs, Google’s Knowledge Graph and Facebook’s Social Graph are the best known. The Knowledge Graph is a semantic network that contains billions offacts and the relationships between them. The Social Graph is a network of connections and relationships among Facebook’s billion plus users. Mark Zuckerberg has said that the Social Graph is the reason Facebook works. While Google’s Knowledge Graph and Facebook’s Social Graph are also connected forms of knowledge on the Internet, the AIBrain’s Memory Graph focuses on providing AI memory capabilities for individual intelligent agents. Intelligent agents may share and exchange their knowledge and learnings by transferring all or part of their Memory Graph among each other. In the future, a memory transfer may even happen between an intelligent agent and its human user.
Memory Graph contains what an agent has reasoned about the world over time. Memory Graph includes reasoning episodes and knowledge learned about the world and other experiences and therefore it can grow in size quickly. The following image shows the visualization of a memory graph with many nodes and edges.
Applications of Memory Graph
The applications of Memory Graph can be grouped in three categories: Personal Companion Robots — AIBrain is building two lines of personal robots called Tyche and Athena with applications in education, elder-care, patient-care, home entertainment. Memory Graph is used in Tyche and Athena that provide the following capabilities:
- Assistant: Physical, Information Provider, Security
- Companion: Friend, Mentor
- Entertainer: Play Music and Games, Joy of Living
AI Games — AIBrain is building an AI simulation game called Futurable where every character in the game has its own instance of Memory Graph.
Intelligent Conversational Assistants — AIBrain’s technologies support building Intelligent Conversational Assistants that are capable of interacting with their human users in natural language and provide assistance by understanding the intent of the user. At AIBrain we are building Intelligent Conversational Assistants based on AICoRe and Memory Graph that can be deployed as intelligent chatbots in a wide range of applications such as customer support or personal wellness assistant.
Unique Capabilities of Memory Graph
Memory Graph provides a set of unique capabilities that differentiates it from other existing AI technologies:
- Unified and integrated representation of both episodic and semantic memory based on the ‘triple’ construct that form a combined directed acyclic graph.
- Memory Graph integrates with external knowledge bases.
- Memory Graph supports short-term memory with a small footprint that can run on an Android devices suitable for mobile applications and IoT devices.
- For long-term memory, Memory Graph is scalable to human-level amount of data (in the order of petabytes) based on the Big Data framework Apache Spark / GraphX.
Memory Graph on Apache Spark / GraphX
We have built Memory Graph based on the Big Data framework called Apache Spark and specifically its graph processing module GraphX. The advantage of using GraphX is when the size of Memory Graph grows very large or when multiple agents connect to the same GraphX instance to store their memory. GraphX can distribute computations on a cluster of computers and takes advantage of parallelizing the computations. With GraphX, as well as the machine learning module in Spark called MLlib, we can run graph and machine learning algorithms on the content of Memory Graph in order to infer semantic knowledge from episodic information in the memory. This provides a seamless integration between semantic and episodic memory in Memory Graph.
Memory Graph Product Roadmap
Currently, Memory Graph for short-term memory (as briefly described above) is available for Android devices as an SDK (JAR format). This includes the natural language understanding (NLU) component as well as the memory graph storage and its API.
The SDK for long-term memory and support for multi-client/multi-agent applications based on Apache Spark is planned to be released for pilot projects in early 2017.