Peter Voss is starting an AI project that will focus on question
answering that will focus on text I/O only. Right now he is collecting
some sample questions, about 50 each in a dozen or so domains. I don't
know what approach he plans to use yet. He mentioned "redoing the
ontology" so I guess the old approach was a hand coded language model
that didn't work well. Anyone following it?
http://tech.groups.yahoo.com/group/projectAigo/
-- Matt Mahoney, mattma...@gmail.com
I've managed B. still looking for A.
I just finished slides about KB: https://sites.google.com/site/ivanvodisek/knowledge-base-systemI was hoping for little help from You, YKY. Here are questions:1. To form set of predicates that will be used as senses to outer world. Maybe console input would be enough.2. To investigate rules that from input console build the knowledge.Are You interested?
how would free combinations look like? can they be implemented using proposed KB? i believe that type theory can implement untyped lambda calculus also.can some degree of untyped-ism be implemented by using only most general types?
how would free combinations look like?
can they be implemented using proposed KB?
PS:
I actually develop KB concepts for a while and i find zeroth order logic quite inspirative. So I thought: why not use the very ZOL for storing knowledge?
And here it goes - informations about two cars could be stored like following:Car -> (Mark -> String & Color -> String)
We have this situation:(Mazda | Suzuki) -> CarSolution might be to use induction to reach specific car. I.e. if we say "Car" it is either "Mazda", either "Suzuki" either somthing else. Which of them would be the one, it depends what parameters we are looking for. Once one car is isolated, we can use ordinary deduction to reach unknown parameters (i.e. if we say "Color", from that follows resolvent "Blue" or "Turquoise").
It turned out that this form of notation can deal with polymorphism, so I write a plus for knowledge pyramid.I wander are there knowledge structures that can't be dealt with this proposal KB? I'd be happy to extend it to usable form.
On Sun, Feb 26, 2012 at 2:09 AM, Ivan Vodišek <ivanv...@gmail.com> wrote:
Firstly, I want to thank You for interest, YKY :)1.Missing -> (param1 -> Mazda & param2 -> Wheel)"That Mazda is missing a wheel"2."That Suzuki runs noisily"Runs -> (param1 -> Suzuki & param2 -> Noisily)
i'm also of opinion that every predicate could have numerous named parameters. for example:runs(what, how fast, how long, what acceleration, ...)
but there is a method for describing these with fixed parameter number predicates:runs (what:x)howfast (what :runs (what :x), amount :100km/h)howlong (what :runs (what :x), amount :100min)
...i'm a fan of named parameters. i like their determitivity.
i think we need distinction between function and its parameters.function would be:givesand then by currying, parameters can be applyed in whatever order.
On Tue, Feb 28, 2012 at 5:39 PM, Ivan Vodišek <ivanv...@gmail.com> wrote:
about naming conventions:i concluded that the same universal theory about knowledge has many faces, so type theory, higher order logic, lambda calculus and possibly other less-known systems are all shapes of the same theory that has to have following constituents:1. generalized form of predicates (predicate definitions)2. notation for specialized predicate applications3. a query language to reach specific specialized applications by their parameters.moreover, as this universal theory can be defined in itself, all mentioned systems can be self defined in each of them, even one in the other. so, it doesn't matter what version will be selected. any of them could be used for storing knowledge.
The goal is to answer questions like?
Who had the ball? (John).
Who has the ball? (Mary).
Did Mary give the ball to John? (no).
Did John give the ball to Mary? (yes).
Who took the ball? (Mary).
What did John give to Mary? (the ball).
How do humans solve the problem? What is the representation you formed
in your mind? What steps did you use to solve the problems? In other
words, how does the brain do it?
-- Matt Mahoney, mattma...@gmail.com
On Wed, Feb 29, 2012 at 3:14 AM, Ivan Vodišek <ivanv...@gmail.com> wrote:
15, actually.
> i think this may support Matt's idealism to accelerate classification, and
> therefore testable prediction models. i do not quite think that brute force
> "promoting like" and "deleting dislike" is going to prove predictable
> against the reward biases presented and the cleverness of humans to steer
> capital to their own ends.
Actually my proposal is explicitly about making money. But there are
still things we can do, short of automating the economy. But we won't
get anywhere without being more explicit about what that is.
So I would like to hear some suggestions. Exactly what are we going to
build? What are the inputs and what are the outputs? What tests must
be passed to declare success?
-- Matt Mahoney, mattma...@gmail.com
Here is translated paragraph:"Bison that rounded a snake while grazing, met a stack of green hay. But the bison waited for the hay to turn yellow before it started to eat. Once it turns yellow, hay becomes very tasty."
While(Grazing, Rounded(Bison, Snake))Met(Bison, Stack(Green(Hay)))Before(Start(Eat), Waited(Bison, Turns(Hay, Yellow))When(Turns(Hay, Yellow), Very(Tasty(Hay)))
It seems no problem to write a parser that would parse any paragraph to predefined predicates. But the real problem is to automatically build and learn new predicates from the stream of characters. I could use a little help there.
How do you parse the following?
I ate pizza with pepperoni.
I ate pizza with a fork.
I ate pizza with Bob.
The problem of parse ambiguity has been known since around 1960.
People can parse sentences because they know what the words mean.
People can figure out that "with pepperoni" modifies "pizza", "with a
fork" modifies "ate", and "with Bob" modifies "I". A machine could
figure it out too, based on co-location statistics in a large text
corpus. Words with related meanings are more likely to appear near
each other or in the same contexts.
But parsing is not the critical problem to be solved. The meaning of a
sentence depends mostly on the words it contains and much less on
their order. For example, if I say "with pizza pepperoni I ate", you
can figure out what I meant, and then put the words in the right
order.
Grammar is a set of rules that constrain word order. It's purpose is
to increase the reliability of communication in noisy environments. If
you can't hear half of the words, you can often figure out what was
said by applying the rules of grammar to narrow the set of
possibilities. In fact, that's what we do without thinking about it.
Nobody realized how noisy speech was until we started writing speech
recognition systems.
Returning to the original problem. You have some facts like "John gave
Mary the ball" (an exception to the rule that word order is usually
unimportant), and some questions like "who has the ball?" or "what did
John give to Mary?". You might notice that these questions can all be
answered simply by matching terms to the original fact and recalling
it verbatim, "John gave Mary the ball". It requires no deep
understanding of the sentence structure, either of the facts or the
queries. A thesaurus does help, so e.g. you can match "give" to
"gave".
Nevertheless, a model of grammar is useful, perhaps not so much for
understanding, as for error correction in noisy environments like
speech recognition, OCR, language translation, handwriting
recognition, and proofreading. This is a poorly understood problem.
Chomsky has tried to enumerate hundreds or thousands of rules of
English grammar, but it seems far from complete. We really don't know
how many rules there are, maybe millions. Why do we say "salt and
pepper" and not "pepper and salt"?
Humans apparently learn grammar by example. Perhaps it is a process we
can simulate. If I say "Blug gave the florgle the purg", you know
something about the grammatical role of the nonsense words. You don't
know what they mean, but you do know that they are nouns. You would
recognize that "the florgle has two purgs" is correct, even though you
have never before seen the word "purgs".
Here is a challenge. Given a bilingual dictionary (say Spanish to
Japanese), and 1 GB of random text in each language (not translations
of each other), write a translator. Do you think it is possible?
I think it is. But a direct application of the dictionary is
insufficient. For example, in Japanese, a sentence is
subject-object-verb instead of subject-verb-object. In Spanish,
adjectives come after nouns, not before. A direct translation would
put the words in the wrong order. But knowing the grammar rules, you
could rearrange them. Also, each word in one language would map
inexactly to several words in the other. Again, you could figure out
which is the correct meaning by context. So the challenge to you is to
develop an algorithm for learning a language model from a corpus. What
do you think?
-- Matt Mahoney, mattma...@gmail.com
The goal is to answer questions like?
Who had the ball? (John).
Who has the ball? (Mary).
Did Mary give the ball to John? (no).
Did John give the ball to Mary? (yes).
Who took the ball? (Mary).
What did John give to Mary? (the ball).
How do humans solve the problem? What is the representation you formed
in your mind? What steps did you use to solve the problems? In other
words, how does the brain do it?
Here is translated paragraph:While(Grazing, Rounded(Bison, Snake))"Bison that rounded a snake while grazing, met a stack of green hay. But the bison waited for the hay to turn yellow before it started to eat. Once it turns yellow, hay becomes very tasty."
Met(Bison, Stack(Green(Hay)))Before(Start(Eat), Waited(Bison, Turns(Hay, Yellow))When(Turns(Hay, Yellow), Very(Tasty(Hay)))

It seems no problem to write a parser that would parse any paragraph to predefined predicates. But the real problem is to automatically build and learn new predicates from the stream of characters. I could use a little help there.
i'm of opinion that logic operators could be learned in practice, just like regular predicates. something likegeneralization:And (p1 :Bool, p2 :Bool, result ;Bool)specialization:And (p1 :True, p2 :True, result :True)And (p1 :True, p2 :False, result :False)And (p1 :False, p2 :True, result :False)And (p1 :False, p2 :False, result :False)i beliave that if we put al logic operators on total induction, we could derive the very resolution rule also.
How do you parse the following?
I ate pizza with pepperoni.
I ate pizza with a fork.
I ate pizza with Bob.
But parsing is not the critical problem to be solved. The meaning of a
sentence depends mostly on the words it contains and much less on
their order. For example, if I say "with pizza pepperoni I ate", you
can figure out what I meant, and then put the words in the right
order.
Nevertheless, a model of grammar is useful, perhaps not so much for
understanding, as for error correction in noisy environments like
speech recognition, OCR, language translation, handwriting
recognition, and proofreading. This is a poorly understood problem.
Chomsky has tried to enumerate hundreds or thousands of rules of
English grammar, but it seems far from complete. We really don't know
how many rules there are, maybe millions. Why do we say "salt and
pepper" and not "pepper and salt"?
Here is a challenge. Given a bilingual dictionary (say Spanish to
Japanese), and 1 GB of random text in each language (not translations
of each other), write a translator. Do you think it is possible?
I think it is. But a direct application of the dictionary is
insufficient. For example, in Japanese, a sentence is
subject-object-verb instead of subject-verb-object. In Spanish,
adjectives come after nouns, not before. A direct translation would
put the words in the wrong order. But knowing the grammar rules, you
could rearrange them. Also, each word in one language would map
inexactly to several words in the other. Again, you could figure out
which is the correct meaning by context. So the challenge to you is to
develop an algorithm for learning a language model from a corpus. What
do you think?
I'm pretty sure this rule is already encoded in OpenCyc. What is your
estimate of the number of rules that need to be written to achieve
human level natural language understanding? How many person-years will
be needed?
-- Matt Mahoney, mattma...@gmail.com
Maybe we could do it better. Or maybe there is another application
where there is no competition. Mailpool comes to mind.
Also, a language model has many uses besides translation. It could
also be used for speech recognition, OCR, handwriting recognition, and
text classification (spam detection). In each case, you can measure
progress using text compression.
-- Matt Mahoney, mattma...@gmail.com
There are plenty of AI applications in image and video recognition.
How about an application that inputs a video and decides if it is
funny. Then you could set up a website with links to the funniest
ones. What algorithm would you use? There must be one, because humans
can do it.
-- Matt Mahoney, mattma...@gmail.com
Great. Write the program and let us know.
But seriously, how would you do it?
> 2012/3/1 Matt Mahoney <mattma...@gmail.com>
>>
>> On Thu, Mar 1, 2012 at 10:26 AM, Ivan Vodišek <ivanv...@gmail.com>
>> wrote:
>> > what about senses other than text stream? how would agi look for sense
>> > of
>> > touch, vision, hearing, at least for non-text cognitions? is our kind of
>> > speech (subjects, predicates, ...) only kind of communication
>> > possibility? by the way, subjects seem to me as zero-parameter particles
>> > of
>> > the same kind as predicates with (one or two or three)-parameter
>> > particles.
>> > adjectives could be one-parameter particle of the same kind.
>>
>> There are plenty of AI applications in image and video recognition.
>> How about an application that inputs a video and decides if it is
>> funny. Then you could set up a website with links to the funniest
>> ones. What algorithm would you use? There must be one, because humans
>> can do it.
>>
>>
>> -- Matt Mahoney, mattma...@gmail.com
>
>
--
-- Matt Mahoney, mattma...@gmail.com
But seriously, how would you do it?
I am just brainstorming for ideas.
what about senses other than text stream? how would agi look for sense of touch, vision, hearing, at least for non-text cognitions? is our kind of speech (subjects, predicates, ...) only kind of communication possibility? by the way, subjects seem to me as zero-parameter particles of the same kind as predicates with (one or two or three)-parameter particles. adjectives could be one-parameter particle of the same kind.in fact, text stream represents one-dimensional values changed over time. vision is 2-d * time. space perception is 3-d * time. so the question is: is 1-d * time enough to reason about any more complex systems?
On Thu, Mar 1, 2012 at 11:26 PM, Ivan Vodišek <ivanv...@gmail.com> wrote:
How about something simpler, then. Match images of faces to names. How
would we do it?
I am just brainstorming for ideas.
For face recognition, we would need a large collection of tagged
photos (like facebook has).
For OCR, we need scanned text, which is not too hard to collect.
Ideally we should be able to read captchas.
For a programming assistant, perhaps we could collect some software
and introduce random bugs and let the system find them.
2012/3/1 YKY (Yan King Yin, 甄景贤) <generic.in...@gmail.com>:
--
-- Matt Mahoney, mattma...@gmail.com
For a programming assistant, perhaps we could collect some software
and introduce random bugs and let the system find them.
AdaptiveAI (Peter Voss) is doing something similar. His goal is a text
based question answering program. He started by collecting test sets
on about 20 different topics with 50 questions on each topic.
I'm no longer on their mailing list. They started a new list for
people actively working on the project, which I'm not.
I don't know what approach they plan to use. I did get a hint, some
mention of having to "redo the ontology". Their earlier work was on an
automated phone answering service a couple of years ago. I don't know
how well it actually worked.
Step 2 would be to collect test cases for the problems we have decided
to solve. For example, if we decide that we want to recognize when two
photos are of the same person, then we need a collection of tagged
images. We would also give the test to humans to obtain a baseline
score.
Step 3 is research. What progress have others made toward solving the problem?
Step 4 would be to design the system. The design would include a
budget for computing hardware, for software development, and for
collecting training data.
Step 5 would be to recruit people to solve the problem, if it turns
out we don't have the skills, time, or money to do it ourselves.
Step 6 would be to start building it. This would be the appropriate
time to choose a programming language.
2012/3/3 YKY (Yan King Yin, 甄景贤) <generic.in...@gmail.com>:
--
-- Matt Mahoney, mattma...@gmail.com
Great. Here is a list of test questions I generated by clicking on the
random page feature of Wikipedia and then writing a question that is
answered in the first paragraph. To measure the state of the art, I
typed each question into Google just as I wrote it below. The number
in parenthesis is the rank of the original Wikipedia article. In most
cases when the article was not ranked first, the higher ranked pages
also answered the question.
1. (>10) What is another name for the red-pied lovebird?
2. (1) What is the collective name of the aliens on "Babylon 5"?
3. (2) Who is the Indian princess rescued by Phileas Fogg in Jules
Verne's "Around the World in 80 Days"?
4. (1) What is the original name of Grover, Utah?
5. (2) Who is Markandeya?
6. (1) Who is Liam Ó Buachalla?
7. (2) Who is Ida Bailey Allen?
8. (1) Where is the architect Richard Purcell from?
9. (>10) What is Mycetosoritis?
10.(1) Who was the Consul of Rome in 58 BC?
11.(1) Where were the 2003 Pan American Games?
12.(1) Who became head of the astronomy observatory at Lund
University in 1929?
13.(1) When was the York Cold War Bunker built?
14.(1) Who is Rohan Bail?
15.(1) What does the program "Beyond Compare" do?
16.(1) What actor began his career in the 1952 movie "Tia Loleng" by
LVN Pictures in the Philippines?
17.(3) Who directed the HBO series, Deadwood?
18.(2) How many species are there of diapriidae?
19.(2) In what year was the English writer Michael Chaplin born?
20.(2) What was the population of Crittenden County, Kentucky in 2000?
So steps 1 and 2 are done, unless anyone else would like to suggest
some other problems.
Note: I originally sent this list to the projectAlgo group when Peter
Voss was proposing a new AI project. But I think they were looking for
easier questions.
Good one. Google doesn't know.
-- Matt Mahoney, mattma...@gmail.com
a math solving machine?
a math solving machine?
Stuff like this was done in the 1960's using hand-coded parsers. It
would be interesting if you could use a machine language approach.
Could you train a language model to solve math problems like this just
by giving it lots of examples? It would require a lot more computing
power, something that wasn't available when the problem was first
solved.
about brainstorming:text summarizer could be done. when we pass large text to gen, a few sentence sum about that text could be automatically returned.
One possible training set: Wikipedia. Given the article, predict the title.
What would be some use cases? Give some examples.
-- Matt Mahoney, mattma...@gmail.com
That assumes we know how to construct AI. We don't. How would we
convince anyone that our tools would be useful if we can't use them
ourselves?
-- Matt Mahoney, mattma...@gmail.com
Parsing English is a lot different than parsing a programming
language. For one, the order of parsing and semantic analysis is
reversed. For another, it requires a lot more computing power.
Programming languages are designed to be read by computers. They have
a precise specification. Natural language does not. Natural language
evolved to be learned by massively parallel neural networks.
-- Matt Mahoney, mattma...@gmail.com
That's good for teaching humans, but not very good for teaching
computers unless the computer already as solved the AI problem so it
can understand the book.
Understanding natural language by computers remains an unsolved
problem. I run a benchmark aimed at testing natural language learning
and comprehension by measuring prediction text accuracy (by
compression ratio). If you have any good ideas, you are welcome to
submit them to http://mattmahoney.net/dc/text.html or
http://prize.hutter1.net/
-- Matt Mahoney, mattma...@gmail.com
That's interesting. Are you going to parse English next? That's a much
harder problem.
-- Matt Mahoney, mattma...@gmail.com
Error: mine or yours?
"how much my parents have children?" Are you asking what percentage
of your own parents have more than one child? I think the answer
would be 100% since you claim to have a sibling. If you are asking
how many children your parents have, then 4. There is also the
possibility that your own count of brothers and a sister are not the
complete set of children had by your parents, for example
half-siblings or step-siblings.
I propose the correct "answer" to this question is actually another
question/request for more information to remove these ambiguities.
I don't understand why AI is expected to output completely perfect
knowledge when the input (esp. from humans) is far far less than
perfect.
new milestone: BNF parser html
but if you define the system not as something that produces the
perfect answer, but as something that produces the perfect question, a
lot of the previous work and design in the original system gets
rendered void. This new question system might even be seen to have to
the side effect of producing the perfect answer as the final question
forinstance, in fact it might be seen later that the original design
was paradoxical and would never work out well, due to overlooking this
basic fact of communication between people...
however with simular reasoning and observation you might come to a
whole series of fundamentals in "AI" systems, where each observational
point renders any previously constructed system laughable as a serious
approach to "AGI"
I fear that we just dont have the tools or materials or basic
conceptual understanding of what we are trying to do still, where
these kinds of concepts are not part of any academic study or studies.
Once we can fully understand and prove why any kind of AGI is
impossible, we will be at the stage of thinking about and writting
actual AGI systems, until then its probably going to be more
progressive to churn out working practical systems to force running
into the problems we cant see to find them, and mapping out the AGI
landscape more...I think in general this is what is happening anyway.
I don't propose to build a perfect anything. I was hoping to get some
dialog on the value of machines that also dialog. I think the
iterative process that gets two parties closer to a
mutually-agreed-upon "good enough" solution is a critical part of how
anything has ever been accomplished by humanity. I feel like that's a
pretty important part of HCI that is often overlooked.
I think a visualizer for so-called "big data" would be of enormous
commercial value. The machines doesn't have to know what is
interesting, just keep displaying different relationships in data
until an analyst "sees" what is interesting. That too will be a
interaction system. The intelligence will, of course, be distributed
between man and machine.
I think it goes without saying that pretty much everyone who makes a
statement is doing it with the implication of building/making/creating
"the perfect something"... otherwise you are admitting that when you
do things you purposely leave in imperfections, which as far as I am
aware is only a practice of some spiritual tribes (who believe if you
were to actually succeed in creating a perfect anything, your life is
complete and you will soon die), and electronics/other manufacturers
(for profit). Its much like when you hear someone say, "You always
think you are right"... well this too goes without saying or you're
admitting to lying...
I think if I advertised my new AGI system that was going to
revolutionize the world and I described it as not having any data, or
inputs to collect data, then I would be an embarrasment to the field
and universally considered a quack. I think its the same with non
dialog/interative systems, and the fact they are taken seriously shows
the entire field of AGI and AI as perceived and allowed to be
perceived by the public as quack science.
Lots of things are of enormous commercial value. I think an actual AGI
is one of them, and what the topic is here.
Ivan : "my plan is pretty clear: to develop universal parser to provide AGI
programmers with a tool for controling answers and general output
in relation to entered text or general input."
I wish you all the success on this project and I'm sure no would could
deny the value of such a tool. And I'm sure everyone else [in the
field] has already made the comment that: your "universal parser"
actually equates to an AGI system, the AGI programmers that use such a
system wouldnt be AGI programmers at all, but merely plumbers who
would write interfaces to your AGI for various real world
scenarios...using the term "universal parser" to describe your AGI
shows you need to do a lot of research in the area to better map out
what kind of problems are entailed, however writting a "universal
parser" is probably a great way learn some of these issues.
my plan is pretty clear: to develop universal parser to provide AGIprogrammers with a tool for controling answers and general outputin relation to entered text or general input.
Some of You might want to take a brief look at a version of Type Theory: https://sites.google.com/site/ivanvodisek/knowledge-base-system
Sentence -> (
Subject -> {
Noun;
NounPhrase;
},
Predicate -> Verb,
Object -> {
Noun;
NounPhrase
}
)
On Tue, Apr 24, 2012 at 7:37 PM, Ivan Vodišek <ivanv...@gmail.com> wrote:
There will always be exceptions that need to be handled by dirty programming tricks. Type theories exist for over decades now. What I found out is that:1. all logics from zeroth to infinite order can be managed by zeroth order logic. In simplifyed sentence definition I wrote, round braces denote conjunction and curly braces denote disjunction.
Cannonicaly yelding a sequence of types, filters set of results to final result as sequence:"Sentence""Predicate"
yelds"Verb"or something that is applyed to Sentence.2. polymorphic type theory is nothing more than BNF notation powered with inline type naming and some event control. Zeroth order logic is also just enpowered BNF notation. So all the time we are dealing with the same structures that have several shapes (BNF, logic 0, logic 00)What I didn't realized yet is better fusion of multiple specifications from which a generalization follows. I wish I have it defined with some sleak neat rule that covers it all. Instead, I have zeroth order definition of relation general-specifics that is not inwired, but is just one of possible rules in infinite set of possible combinations.2012/4/24 YKY (Yan King Yin, 甄景贤) <generic.in...@gmail.com>
On Tue, Apr 24, 2012 at 7:37 PM, Ivan Vodišek <ivanv...@gmail.com> wrote:
Sentence -> (
Subject -> {
Noun;
NounPhrase;
},
Predicate -> Verb,
Object -> {
Noun;
NounPhrase
}
)That doesn't seem to answer my questions...Now you seem to have something that looks like a phrase structure grammar, which is a formal grammar. The problem with formal grammars is that they tend to be able to parse >90% of natural language but there are always some exceptions that needs to be repaired.Also, what is most special about your approach that makes you want to pursue it? There must be some cool idea behind it? Maybe that will help me understand your reasoning better...KY