Menu

Abstraction and teaching N.I.C.O.L.E.

2000-10-08
2000-10-09
  • Michael Lawrence

    My understanding of N.I.C.O.L.E is extremely limited; however, I would like to offer some suggestions.

    Currently, N.I.C.O.L.E. associates words by their spacial relationship in a sentence.  The algorithm ties together words that are adjacent.

    One of the miracles of the human mind is that it can perceive a system at multiple levels of refinement, from the lowest, concrete level to the most abstract. 

    If N.I.C.O.L.E. could learn at different levels, it would be able to "reason" at different levels. 

    For example, instead of only associating words through their spatial adjacency, the algorithm could also associate words by sentence and by conversation, or just a segment of a conversation. 

    As it is now, the algorithm relates individual words to one another, nothing more.  By analyzing these word-word relationships, one could group a set of words into a family.
    The words in the family would have stronger relationships, on average, with words inside the family, than outside.  Families could be linked in a way similar to the word-word connections.  This process could be repeated recursively, each time grouping together the entities and expanding into another dimension.

    Initially, the matrix would have discrete levels, however it may be possible to produce one with a more continuous structure.

    The discrete structure could be implemented several ways.
    1) N.I.C.O.L.E. would attempt to construct/maintain this logic matrix while it is learning.
    2) The word-word matrix that is currently generated through conversation could be analyzed to form the multi-dimensional matrix, and then added to an existing database through an update algorithm.

    The goal of this is to provide N.I.C.O.L.E. with an abstract (conceptual) reasoning capability.

    Please comment on the viability of this solution.

    Also, a little disclaimer.. I have hardly any experience with AI, and I'm not even sure what a "matrix" is.. I just let my intuition guide me :)

    Michael Lawrence
    aka larman

     
    • Phil Howlett

      Phil Howlett - 2000-10-09

      Hi Michael,

      You have some very valid points, and quite a few good suggestions. Let me reply to them one by one.

      >Currently, N.I.C.O.L.E. associates words by their spacial
      >relationship in a sentence. The algorithm ties together
      >words that are adjacent

      Yes, that is correct. The main guts of NICOLE is simply associating a word within a group of other words.

      >If N.I.C.O.L.E. could learn at different levels, it would
      >be able to "reason" at different levels.
      >For example, instead of only associating words through
      >their spatial adjacency, the algorithm could also
      >associate words by sentence and by conversation, or just a
      >segment of a conversation.

      When I first started to work on NICOLE, keeping in mind that NICOLE is a 'child' from NIALL, I simply linked one word to the next. There was no associations apart from a simple linked list of words. I then extended NICOLE's knowledge by increasing the context level, so that instead of knowing how one word matches with another, it knew the 2 previous words. This dramatically improved the conversation you had with NICOLE (given a decent database of course) and that the responses it generated on its own started to make a little more sense. There was however still no relationship between input and output. It was all random.

      Then the idea I had was to link the output of a sentence with the input of the next sentence. NICOLE would know what word to use, given 4 previous words, it would be able to determine a 5th word to use (full stops counted as a word). This is where NICOLE is at today. While it is a vast improvement on the original NIAL, it is still somewhat lacking..

      >As it is now, the algorithm relates individual words to
      >one another, nothing more. By analyzing these word-word
      >relationships, one could group a set of words into a
      >family.

      That is an interesting idea.... :)

      >The words in the family would have stronger relationships,
      >on average, with words inside the family, than outside.
      >Families could be linked in a way similar to the word-word
      >connections. This process could be repeated recursively,
      >each time grouping together the entities and expanding
      >into another dimension.

      I like the sound of this idea. It is definately the next stage that NICOLE needs to head down towards (oh, and also building a better database). After some experimenting with a resonable size database (500 words, 5000 phrases) NICOLE doesn't perform as well as I would like it to be (maybe my expectations are too high).

      >1) N.I.C.O.L.E. would attempt to construct/maintain this
      >logic matrix while it is learning.

      I am really keen on keeping the "learn as you go" approach. It is this that makes NICOLE unique and more realistic.

      >2) The word-word matrix that is currently generated
      >through conversation could be analyzed to form the multi-
      >dimensional matrix, and then added to an existing database
      >through an update algorithm.

      I think if NICOLE is to go further down the "intelligent" path then we need to spend quite a bit of time working out what this multi-dimensional matrix is. I've got a few ideas, but I'll save that for another post (this one is long enough already!!)

      >The goal of this is to provide N.I.C.O.L.E. with an
      >abstract (conceptual) reasoning capability.

      If we could pull this off then NICOLE would be amazing. The one thing I am finding though is that it would need a hell of a good database behind her. Without a good database, NICOLE is pretty stupid.

      >Also, a little disclaimer.. I have hardly any experience >with AI, and I'm not even sure what a "matrix" is.. I just >let my intuition guide me :)

      Don't be put off by lack of knowledge with AI. I will be the first person to confess that I know little about AI programming. :).. I personally don't think that NICOLE is a true AI (not yet at least).. but who am I to judge. :) "matrix" is as good a word as any, thats what I call NICOLE's database (hence, the matrix.cpp file *grin*)

      Anyway, these ideas are great! lets all talk about them some more in details and then we can work out how we are going to implement this into NICOLE. I really like this multi-dimensional matrix thing. :)

      Great work Michael!!

      Cheers,
      Phil Howlett.

       

Log in to post a comment.