What method to use to memorize concept maps (aka labeled digraphs)?

Hi,

Any idea what is the best method for memorizing large (1000 node) , sparse (10 edges per node) labeled directed-graphs (aka concept maps, digraphs) ?

I am asking this because it is not obvious to me how a memory palace or just simple association can be used for an arbitrary labeled digraph.

For example the graph below , with the addition that each node has one sentence as a label.
kautz.png

Redards,

Jozsef

Now is the graph symmetrical? Also, what exactly do you want to be able to do with the information?

It’s an arbitrary graph, not symmetric (the picture in the illustration happens to be symmetric, but in general the graph is not symmetric).

Reason for learning it is to help learning in school. Knowlegde can be represented as graphs better than linear text.

For example, memorizing how different physical phenomena are related to each other.

For example special relativity to electromagnetism (via speed of light).

So the main goal is to memorize connections between concepts/bits of information.

Or for example this graph:

concept map

The main problem is how to learn connections to many nodes:
say node A is connected to 10 different nodes, how do you memorize these 10 different nodes? Put them on a linked chain ? That is a little bit slow to navigate. I am afraid, if I want the 10 th neighbor then I have to iterate through all other neighbors first. Is there a method with O(1) access time? If say, each node would be a room in a memory palace. How about that ?

What I mean is, say you are given a node label and a number 1-10 , then you can give quickly the associated node label. What memory method can do that efficiently ?

Hi,

Interesting challenge. The two digraph examples are slightly different. I will focus on the second one since it more or less matches a structure I know as an entity-relation diagram and has 2 types of nodes.

At the risk of being pedantic, let me just lay out how I think of the diagram.

In the second diagram, the items in boxes (e.g.: “Concept Maps”, “Focus Questions”) would be entities and the unboxed nodes (e.g.: “represent”, “help to answer”) would be relationships. A digraph implies directionality: this feature is supplied by the relationships. The best way I can think of to clarify that statement is through an analogy from linguistics. The sentence “A dog bites a man” means something very different than “A man bites a dog”. The verb ‘bite’ implies an action in one direction only. Similarly, a relationship like “help to answer” implies a direction and is like an arrow pointing in one direction only. I will refer to each of these two entities as either the ‘source’ or ‘target’ entities, depending on which end of the relationship they are on.

So, with that said, the challenges are:
a) to efficiently memorize this structure, and
b) to be able to efficiently traverse the structure in your mind to recall nodes along any given path.

I decided to give it a try to see if I could find a way that works for me. For the sake of time, I only did a part of it, but the following seemed effective for me:

First, I memorized the list of entities using pegs. In this case, there were only a small set–26, if I counted correctly–so I used alphabet pegs ('A’pe => Concept Map, 'B’eep => Focus Questions, etc.).

Second, I found special places for each of the entities: I found spots that were just in front of multiple rooms. For example, in my house there is a corridor that leads to multiple rooms. I put “'A’pe => Concept Map” in that corridor.

Third, for each entity, I selected only the relationships that point away from that entity.

Fourth, I placed those relationships in rooms adjacent to their respective source entity.

Fifth, I placed the target entities in the room with their respective relationship.

So, in my memory palace, (as previously mentioned), my upstairs corridor leads to several doors, two of which are my study room and my master bedroom. In the corridor, as I said, I store “Concept Maps”, in my study I store “represent” along with “Organized Knowledge”, then in my master bedroom, I store “help to answer” along with “Focus Questions”.

Since there are exactly 2 relationships emanating from the Concept Maps entity, I am done with this part of the diagram. Now, I set up a similar structure for the next entity on my list, and continue on in the same way.

It is might be worth noting that any given entity will need to exist in multiple locations, equal to the number of nodes that point to it, plus one. I am not a particularly fast memorizer, but this seemed to me to be fairly efficient. That said, when you get to a much larger number of nodes, it might become unwieldy. Not sure what could be done about that.

Also, I found it not too difficult to traverse different paths in this structure. But, again, size might cause problems. I can quickly find each entity from my peg list, and with only a small number of relationships leading to each entity, it seemed easy to find the same entity in rooms, but this would probably be more challenging as the number of nodes grow.

To deal with that problem, I think I would use at least one more room for each entity to store references to the rooms where it may be found. So, in the example I used above, the Concept Maps node is not the target of any relationships, so it would not exist in any other rooms…but, if it did, I would add a sixth step, which would be to use my second bedroom off the upstairs corridor to store references to whichever other rooms it is stored in. If I had to do that, I might start to wonder if the overhead effort is worth it. That would have to be answered on a case-by-case basis.

Hope this helps.

Best regards,

Darn

Many thanks for the detailed answer Darn !

I wonder if there is a direct encoding possible ?
Is the loci method good for this kind of problem ?
Would maybe direct encoding be better ( more scalable to larger graphs) ?

For example, I can think about the following direct encoding:

“Concept Map” → coma ( patient in coma) ,
focus question → ( as a magnifying glass burning a question mark into the head of the patient who is in coma)
Organized Knowledge → Orgy Knot ( imagine an orgy with a knot )

but here comes the question: how do I connect the orgy with the knot to the patient in the coma ? maybe I tie a knot onto his feet ?

So maybe each node has some kind of associated object and these objects interact with the other objects in some fun way ?

for Example the coma patient interacts with the knot and also with the magnifying glass but the magnifier does not interact with the knot (no direct link in the graph)

This approach has the “advantage” that it is simple, no need for a loci (=> it can scale). But the directionality is lost, however the directionality can be reconstructed once the pieces are again at hand, for example, the following 3 pieces : represent, concept map, organised knowledge - automatically give the direction.

What I outlined here is super naive approach. Any comment on this ? Any suggestion how to improve upon this approach ?

I am planning to test this out on a largish graph of size 100-200, but first I need to find/make an interesting graph. The concept map graphs are pretty sparse (few neighbors) usually. Maybe that can help to simplify the problem.

Regards,

Jozsef

Not sure if I understand what you mean by direct encoding, but maybe you mean to leave out what I call the relations and just connect the entities.

If so, that might save some effort. Maybe for any given entity pair you could just figure out the relation. If that is what you mean, you might reduce your challenge considerably. Here is how I might try it:

  1. Use a series of loci to memorize all of the entities.

It wouldn’t matter in which order you memorize them–any order would be fine. But once memorized, you will need to know the list in numerical order.

  1. For each entity on the list, use the diagram to find every one of the target entities it points to, then use chain association to link the number of that position to the source entity.

This may sound confusing, so here is an example of what you might memorize:

  1. Concept Map, 2, 3
  2. Organized Knowledge, 3, 4, 5, 7, 8, 9, 15
  3. Focus Question, 9
  4. Associated Feeling, 5
  5. Concepts, 6, 10, 11, 12
  6. Linking Words, …
  7. Propositions, …
  8. Effective Teaching, …
  9. Context Dependent, …
  10. Perceived Regularities or Patterns, …
  11. Effective Learning, …

In principle, you could work everything out from this, but you would have to experiment to see if it really works for you.

Thanks for the answer.

What do you mean by “use chain association to link the number of that position to the source entity.” ?

For example, for Concept Map 2,3, what would that mean ?

Is the direct encoding not less overhead-y ?

As compared to :
Concept Map -> CoMa
Organized Knowledge -> Orgy with Knots

Direct encoding : Man in Coma whose leg has a rope with a Knot on it and the rope leads to a Knot Orgy.

I never really used loci so heavily, I don’t really see why the loci is useful in this situation ?

BTW. Does anyone know about a competition where memorizing such a graph was the challange ? Say, a graph with labeled nodes (where labels are few words).

For example this graph below ( as a real challenge this graph would have 100-200 nodes):

When I say chain association, I just mean the mnemonic link system. (https://artofmemory.com/wiki/Mnemonic_Link_System)

For my example, I would have already placed the actual objects in some sequence around my memory palace. E.g.: Man in coma is on the sofa (position 1); Orgy by the lamp in which people are being very naughty (position 2); Focusing lens by the fireplace (position 3); etc

Then, for an example of Concept Map 2,3, I might link the man in the coma (at position 1) to a hen and then link the hen to a ham, where hen is my key word for 2 and ham is for three.

There are lots of other ways to do this. This is just one method that seems fairly easy to me. Please note that I am not going into detail on how exactly I would construct my images, just the general plan I might consider using. There are lots of tutorials on this site for how to generate good associations and images.

Anyway, whichever method you consider best is simply going to come down to experiment and preference. I would be mostly concerned about traversing the graph in your mind after it is memorized. In other words, can you can easily retrieve any path from memory?

You just need to experiment to find your answers.

Thanks for explaining.

Yeah, that is the most important question:
" I would be mostly concerned about traversing the graph in your mind after it is memorized. In other words, can you can easily retrieve any path from memory?"

I did this simple method as illustrated below:

It seems to work so far, the real problem is the speed of recall. It is kinda slow. 10-25 seconds per node with this method.

I wonder how could I speed that up? Let’s take the cat-apple-bike-… graph as an example. How fast is the recall for you guys for that example ?

When I mentioned traversing the graph, I was talking more about finding paths (from memory) that might carry you through large sections of the whole graph. For example, can you describe a path from cat to fan?

In the last graph there are multiple such paths. But, it is an extremely simple graph with no directionality or problematic features, so the example might not seem terribly interesting. On the other hand, if the graph had directionality and were more complex, such a task can be a lot more challenging. Perhaps more importantly, it could be very useful if the graph has some real-world purpose, like a network diagram or logistic route map.

I would be inclined to think that with a more complex graph you could come up with some interesting traversal tasks. I don’t know why you want to use digraphs, but here are a few trivial examples of what traversal challenges might look like:

  1. Define the shortest path from node X to node Z that does not pass through Y
  2. Find a route from A to B that does not pass through any nodes that start with the letter E
  3. Find a route from B back to A that does not touch any of the points in path 1 above.
  4. Identify the one route that could be a common subsection of paths 1and 2 above.

Undoubtedly, you will be able to think up better examples of traversal problems based on what you intend to do with the graph.

The traversal challenges don’t necessarily have to be difficult–that depends on your purpose–but I would think you would want your mnemonic system to at least be efficient enough for some traversal tasks.

In some cases, mastering a complex diagram might be total overkill. For example, if I wanted to address a diagram describing a very complex process for my work, I might prefer to just memorize just the parts that interest me, then memorize the few paths that actually seem useful, ignoring the rest. It is not always helpful to knock ourselves out if there isn’t sufficient payback for our efforts.

Yes, agreed, but the thing is, even a simplified diagram can have 100 nodes.

In some sense when learning about something we learn a diagram like that but we don’t learn that explicitly but implicitly.

I wonder if by making it explicit one could learn faster ? Hence the general interest in this model-challange.

I see. Sort of like an appropriate indexing that is suitable for a given traversal task.
I think the mentioned traversal challenges 1-4 are pretty difficult. I would be happy already if I just could wander a large graph fast in my head (say one node per second). I need to test this on a large-ish graph. I wonder if over-learning would help recall speed.

Here is the path you mentioned (based on the memorized graph):
Cat - Apple - Car - Love - Fan
It took me 3 minutes to get this path.
It was an interesting and enjoyable little challenge.

Funny you should say that. I was having a very similar thought.

Yes. Precisely.

Yeah, it’s good to find like minded people, because they can give inspiration for new ideas.