<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>

<channel>
	<title>Knowledge Nuggets</title>
	<atom:link href="http://sef-linux.radar.cs.cmu.edu/nuggets/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://sef-linux.radar.cs.cmu.edu/nuggets</link>
	<description>Scott Fahlman's Notes on AI and Knowledge Representation</description>
	<pubDate>Wed, 09 Sep 2009 01:10:36 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5</generator>
	<language>en</language>
			<item>
		<title>Human vs. Super-Human AI</title>
		<link>http://sef-linux.radar.cs.cmu.edu/nuggets/?p=39</link>
		<comments>http://sef-linux.radar.cs.cmu.edu/nuggets/?p=39#comments</comments>
		<pubDate>Mon, 07 Sep 2009 22:14:31 +0000</pubDate>
		<dc:creator>Scott Fahlman</dc:creator>
		
		<category><![CDATA[AI]]></category>

		<guid isPermaLink="false">http://sef-linux.radar.cs.cmu.edu/nuggets/?p=39</guid>
		<description><![CDATA[
After a pause that was much longer than I had planned, I&#8217;m once again able to spend some time working on new articles for the Knowledge Nuggets blog. In this one, I will try to wrap up some themes that I introduced in earlier articles; then we will move on to new topics.
As for the [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://sef-linux.radar.cs.cmu.edu/nuggets/images/Scolding Duck.jpg" alt="" /></p>
<p><span style="color: red;">After a pause that was much longer than I had planned, I&#8217;m once again able to spend some time working on new articles for the Knowledge Nuggets blog.<span> </span>In this one, I will try to wrap up some themes that I introduced in earlier articles; then we will move on to new topics.</span></p>
<p class="MsoBodyText" style="margin-top: 5.75pt;"><span style="color: red;">As for the photo, it doesn’t really have anything to do with the topic.<span> </span>People seem to like a bit of eye-candy in the blog, just for variety. <span> </span>I took this photo a few years ago in </span><span style="color: red;">Marwood</span><span style="color: red;"> </span><span style="color: red;">Hill</span><span style="color: red;"> </span><span style="color: red;">Gardens</span><span style="color: red;">, near </span><span style="color: red;">Barnstaple</span><span style="color: red;"> in </span><span style="color: red;">England</span><span style="color: red;"> – a highly recommended garden, by the way.</span></p>
<p class="MsoBodyText" style="margin-top: 5.75pt;"><strong>What this article is about</strong></p>
<p class="MsoBodyText" style="margin-top: 5.75pt;">Despite the title, this article is not about super-intelligent, autonomous AI systems that <em>might</em> attempt to take over the world and that, if they succeed, might or might not decide to keep us humans around as pets.<span> </span>There has been a certain amount of discussion about this in recent months, triggered in part by an <a href="http://research.microsoft.com/en-us/um/people/horvitz/AAAI_Presidential_Panel_2008-2009.htm">AAAI panel</a> set up to look at such issues – and in part by a lot of sensationalized press accounts.<span> </span>Nothing sells papers like the threat of killer robots run amok.</p>
<p class="MsoBodyText" style="margin-top: 5.75pt;">I agree that those of us working on AI have a responsibility to consider the long-term human consequences of our work.<span> </span>Fortunately, we&#8217;ve got some time to think about this.<span> </span>AI systems are still a very long way from achieving even a child-like level of common sense and general planning ability.<span> </span>This article discusses one reason why progress has been so slow.</p>
<p class="MsoBodyText" style="margin-top: 5.75pt;"><strong>Slow progress toward the original goal of AI</strong></p>
<p class="MsoBodyText" style="margin-top: 5.75pt;">If measured by the number of useful applications, tools, and vibrant spin-off fields it has produced, Artificial Intelligence has been a spectacular success.<span> </span>However, a lot of people (including me) believe that AI has been a disappointment in terms of achieving its original goal: to understand and, ultimately, to replicate the computational mechanisms responsible for human-like intelligence, in all its generality, flexibility, and resilience.<span> </span>In an <a href="http://sef-linux.radar.cs.cmu.edu/nuggets/?p=29">earlier article</a> I listed some of the major elements of intelligence that we still don&#8217;t understand after 50+ years of work on AI.<span> </span>In <a href="http://sef-linux.radar.cs.cmu.edu/nuggets/?p=27">another article</a> I echoed Ron Brachman&#8217;s call for continuing work on an integrated architecture for AI.</p>
<p class="MsoBodyText" style="margin-top: 5.75pt;">Back in the early days of the field, we seemed to be making good progress toward this goal. <span> </span>There were a number of key discoveries along the way: first, that computers could manipulate symbols as well as numbers; second, that search through a space of possibilities, with occasional backtracking, was a powerful and resilient way to solve many problems; third, that human-like performance is going to require a lot of knowledge, not just search-power; fourth, that it&#8217;s too tedious to assemble and organize by hand enough knowledge for broad, general intelligence, so we had better find ways to increase our store of knowledge by learning. <span> </span>But somehow, since the mid-1980&#8217;s, progress toward this central goal of AI seems to have run out of steam.</p>
<p class="MsoBodyText" style="margin-top: 5.75pt;">Why is that? <span> </span>Well, one explanation is that the funding climate changed.<span> </span>In the old days, there was steady, long-term support for research on the central problems of AI – not an enormous amount of funding, but enough to enable a small community of AI researchers to focus on the most challenging fundamental problems. This effort attracted some of the most brilliant minds in the field of computing.<span> </span>But times changed.<span> </span>Sponsors lost patience with basic, long-term AI research; they began demanding a focus on specific applications, with constant benchmarks, competitions, “go/no-go” decisions, and short-term deliverables. The patient, curiosity-driven funding that characterized the early days of AI is now very rare.</p>
<p class="MsoBodyText" style="margin-top: 5.75pt;">But that is only a part of the story.<span> </span>I think that we face a more fundamental problem: in an odd way, AI has been a victim of its own success. <span> </span>More specifically, the field&#8217;s success in producing useful but narrow technologies in particular areas – what I call &#8220;super-human AI&#8221; – has almost completely crowded out work on our original goal of creating flexible, integrated, human-like AI.<span> </span>We have seen one gold rush after another to exploit new, highly specialized technologies with their roots in AI.<span> </span>In the short run, this may be good for the field, since it pulls in both people and money; in the long run, I think it&#8217;s a serious problem.</p>
<p class="MsoBodyText" style="margin-top: 5.75pt;"><strong>&#8220;Super-Human&#8221; AI</strong></p>
<p class="MsoBodyText" style="margin-top: 5.75pt;">What do I mean by &#8220;super-human AI&#8221;? <span> </span>I wrote briefly about this in an earlier <a href="http://sef-linux.radar.cs.cmu.edu/nuggets/?p=23">article</a>. <span> </span>The idea is that intelligence is really a bundle of many capabilities.<span> </span>It is possible (and is now very common) to have super-human performance in one of these areas, or a few of them, without having anything that resembles the breath, resilience, and resourcefulness of “merely human” intelligence.<a name="_ednref1" href="#_edn1"><span class="MsoEndnoteReference"><span><!--[if !supportFootnotes]--><span class="MsoEndnoteReference"><span style="font-size: 12pt; font-family: ">[1]</span></span><!--[endif]--></span></span></a></p>
<p class="MsoBodyText" style="margin-top: 5.75pt;">There are many examples of narrow super-human AI, but the story is similar for each.<span> </span>First, researchers grappling with some important problem within AI try a variety of approaches, inspired to some degree by the questions &#8220;How do humans perform this task?&#8221; or &#8220;What is really required to achieve human-like performance?&#8221; <span> </span>And then someone comes up with an elegant mathematical approach that, <em>under certain conditions</em> and <em>with sufficient computing power</em>, can produce results much better than an unaided human. In many cases, this leads to a commercially valuable technology.<span> </span>In some cases, it gives rise to an active field of investigation that takes on a life of its own, attracting many researchers, lots of funding, and spawning its own specialized conferences and journals.</p>
<p class="MsoBodyText" style="margin-top: 5.75pt;">There are many examples of these super-human AI technologies: computer algebra systems that can solve integrals that no unassisted human can handle; search-intensive chess programs that can consistently beat (almost) every human player; search engines that can browse and index the entire Internet, but without any understanding of the content; statistical machine translation systems that can produce useful (if imperfect) translations without ever considering the meaning of the text; statistical data-mining programs that can extract subtle regularities from a mountain of noisy data; poker-playing programs that employ powerful techniques from game theory; optimal or provably near-optimal planning systems; theorem-proving inference systems, with their guarantees of soundness, logical completeness, and provable consistency; and statistical inference systems that (if their models and input probabilities are correct) can very precisely infer the probabilities of various outcomes in a way that no unaided human can match.</p>
<p class="MsoBodyText" style="margin-top: 5.75pt;">This is great, but in every case (so far, at least) these developments contribute little or nothing toward achieving our original goal.<span> </span>The super-human techniques apply only to a very narrow set of problems, or the assumptions underlying the mathematical model are unrealistic in practice, or the method is too computationally demanding to be used on large problems – often problems that we humans can solve easily using our more informal approaches.<span> </span>Or all of the above.<span> </span>All of these systems are impressive, and many are commercially valuable, but none of them would be called <em>intelligent</em>, in the normal sense of that word.<span> </span>None of these systems can begin to match the common sense or flexible problem-solving ability of a young child.</p>
<p class="MsoBodyText" style="margin-top: 5.75pt;"><strong>An Example</strong></p>
<p class="MsoBodyText" style="margin-top: 5.75pt;">To understand what’s going on here, let&#8217;s look at one of these areas – the evolution of AI planning and problem-solving systems – in a bit more detail.<span> </span>A lot of the early work in this area took an intuitive approach, informed to some degree by introspection about how we humans approach complex planning tasks.</p>
<p class="MsoBodyText" style="margin-top: 5.75pt;">The first problem was to represent the universe in which the planning is to take place, the allowable set of operations, and the preconditions and effects of each operation.<span> </span>(We still have not completely solved these representation problems, but that&#8217;s a topic for another article.)<span> </span>Given an adequate representation, the next problem is how to find a legal path from the current state to the goal.<span> </span>Sometimes a legal path is easily found; sometimes it requires a great deal of search and non-obvious application of the available operators.</p>
<p class="MsoBodyText" style="margin-top: 5.75pt;">Ideally, we would like both a reasonably efficient plan and a reasonably efficient planning process.<span> </span>One powerful idea is hierarchical planning: first, use high-level, abstract operators to sketch the outlines of a plan; then use more specific operators to fill in the details.<span> </span>Another powerful idea is to save a sequence of operations that is useful in one context, generalize it a bit, and to turn the sequence into a &#8220;macro-operator&#8221; that can be used in other problems.</p>
<p class="MsoBodyText" style="margin-top: 5.75pt;">These ideas were explored extensively in the early days of AI by systems such as GPS<a name="_ednref2" href="#_edn2"><span class="MsoEndnoteReference"><span><!--[if !supportFootnotes]--><span class="MsoEndnoteReference"><span style="font-size: 12pt; font-family: ">[2]</span></span><!--[endif]--></span></span></a>, STRIPS<a name="_ednref3" href="#_edn3"><span class="MsoEndnoteReference"><span><!--[if !supportFootnotes]--><span class="MsoEndnoteReference"><span style="font-size: 12pt; font-family: ">[3]</span></span><!--[endif]--></span></span></a>, ABSTRIPS<a name="_ednref4" href="#_edn4"><span class="MsoEndnoteReference"><span><!--[if !supportFootnotes]--><span class="MsoEndnoteReference"><span style="font-size: 12pt; font-family: ">[4]</span></span><!--[endif]--></span></span></a>, SOAR<a name="_ednref5" href="#_edn5"><span class="MsoEndnoteReference"><span><!--[if !supportFootnotes]--><span class="MsoEndnoteReference"><span style="font-size: 12pt; font-family: ">[5]</span></span><!--[endif]--></span></span></a>, and many others.<span> </span>My own BUILD program<a name="_ednref6" href="#_edn6"><span class="MsoEndnoteReference"><span><!--[if !supportFootnotes]--><span class="MsoEndnoteReference"><span style="font-size: 12pt; font-family: ">[6]</span></span><!--[endif]--></span></span></a> (my MIT master&#8217;s thesis from 1973) was typical of early work in this area. BUILD tried to figure out a plan by which a (simulated) one-handed robot could build a specified structure on a table, given a collection of blocks. BUILD could be quite resourceful: it would first try a straightforward approach, placing the blocks one by one, starting from the bottom of the desired structure and working upward. But if the desired structure was unstable during the construction, it would consider more complex plans.<span> </span>It would try to use other blocks as scaffolding or temporary counterweights, and if that didn’t work it would try to build a sub-structure on the table and then lift the whole sub-assembly into place. BUILD would do some extra work to produce good plans – for example, it would eliminate redundant steps in the plan – but its plans were by no means optimal, and were never intended to be. It just returned the first reasonably good plan that worked.<span> </span>In that respect, it seemed very human-like in its planning.</p>
<p class="MsoBodyText" style="margin-top: 5.75pt;">Not long after BUILD was published, the AI planning field changed radically. Methods were developed that, for a certain limited class of problems, would guarantee optimal results, or results that were provably close to optimal.<span> </span>Other things being equal, that&#8217;s good: who wouldn&#8217;t prefer an optimal solution over one that is merely &#8220;good enough&#8221;?<span> </span>But, of course, other things were not equal.<span> </span>The optimal planning programs were very computationally demanding because the programs had to consider <em>every</em> possible solution – or formally exclude some parts of the search space where no optimal solution could possibly be hiding.<span> </span>For may problems of interest, these techniques were computationally intractable, or at least impossibly inefficient.<span> </span>So these techniques were limited to small problems in very clean, easy-to-model domains.<span> </span>In the real world, it makes little sense spend a lot of supercomputer time seeking an optimal solution to real-world problems when a single pothole – not represented in the model – could force the whole planning process to be re-run.<span> </span>(If you really care about optimality, a local patch to the plan isn’t good enough.)<span> </span>And, as all Pittsburghers know, potholes are everywhere.</p>
<p class="MsoBodyText" style="margin-top: 5.75pt;">Given these limitations, some of us felt that the obvious move would be to continue work on flexible, resourceful, trainable, &#8220;good enough&#8221; planning systems.<span> </span>After all, we humans don&#8217;t worry about optimal planning in our daily lives.<span> </span>&#8220;Good enough&#8221; planning is good enough for us, and we can show great cleverness and resiliency when things go wrong at execution time – as they so often do – forcing us to re-plan on the fly.<span> </span>We can even pass partially instantiated plans from one person to another via informal high-level recipes:<span> </span>&#8220;To get from CMU to the airport by car, take Fifth Avenue to the Parkway East (heading west), cross the Fort  Pitt Bridge, and just follow the &#8216;Airport&#8217; signs from there.&#8221;</p>
<p class="MsoBodyText" style="margin-top: 5.75pt;">But the idea of optimal or near-optimal solutions, built on a sound and elegant mathematical foundation of theorems and lemmas, was too alluring to pass up.<span> </span>Since the mid-1980&#8217;s, the planning field has been dominated by this approach.<span> </span>Most of the papers at planning conferences focus on how to deal with the resulting intractability, so that at least some problems of practical interest can be addressed.<span> </span>If an optimal solution is infeasible, you at least need to prove something about how close your technique can come to the optimum – impossible in most messy-real-world planning domains.<span> </span>So it is now difficult to publish planning results that do not address optimality concerns, and several generations of students have learned to take this approach for granted.<span> </span>Not only has a super-human sub-field of AI been spawned, but work on more human-like approaches to planning has mostly shriveled and died, unable to thrive in the shade of this mighty oak.</p>
<p class="MsoBodyText" style="margin-top: 5.75pt;"><strong>The Problem</strong></p>
<p class="MsoBodyText" style="margin-top: 5.75pt;">And that, I think, is the problem.<span> </span>AI is one field with two very different sets of goals.<span> </span>It would be healthy for the field if these two approaches could co-exist: one set of researchers working on various super-human areas of AI and another set working on the original core problem of broad, human-like intelligence.<span> </span>These efforts could reinforce one another, and some people would move back and forth between them in the course of a career.<span> </span>Unfortunately, it seldom works out that way, for two reasons:</p>
<p class="MsoBodyText" style="margin-top: 5.75pt;">First, when one of these super-human technologies takes off, it creates a sort of gold rush that attracts a lot of talent and resources away from the core problems of AI. In recent years, it seems that 80-90% of the people at the big AI conferences are working on super-human AI problems, not on human-like AI. So it is little wonder that progress on the core problems has slowed down.</p>
<p class="MsoBodyText" style="margin-top: 5.75pt;">Second, researchers in some of these super-human areas develop a certain contempt for the less elegant human-like approaches in the same or neighboring areas: their own work is based on elegant mathematics and clean abstractions – the approach is scientific and <em>principled</em> – while those working on less formal approaches to human-like AI are just messing around.<span> </span>“That’s the sort of thing we did in the old days, before we understood how to properly frame the problem.<span> </span>Anyone still messing with those <em>ad hoc</em> approaches must be doing so out of ignorance, unaware of all the amazing progress that has taken place in AI.”</p>
<p class="MsoBodyText" style="margin-top: 5.75pt;">Well, OK, there has been amazing progress, and we should build on that whenever we can.<span> </span>But in most cases,<em><span> </span>we’re not talking about the same area of research.</em><span> </span>There is a place for optimal planning, but we also need to understand human-like good-enough planning, which is faster and much more flexible.<span> </span>There is an important place for theorem-proving, but (as I have argued <a href="http://sef-linux.radar.cs.cmu.edu/nuggets/?p=34">elsewhere</a>), we need something more quick-and-dirty if we want our systems to read the daily newspaper.<span> </span>And so on.</p>
<p class="MsoBodyText" style="margin-top: 5.75pt;">Unless and until these super-human approaches can be extended to cover the kinds of large, messy, hard-to-formalize tasks that we humans handle with such aplomb, we have to keep working on these things, by whatever scruffy means are necessary.<span> </span>Maybe some of these problems can be handled by techniques that will ultimately be formalized and wrapped in elegant theory, or maybe they are inherently messy, but any reasonable person must admit that AI still contains many challenging problems that don’t fit into the elegant theoretical frameworks we have today.<em></em></p>
<p class="MsoBodyText" style="margin-top: 5.75pt;">One might argue that these super-human techniques are <em>more</em> valuable than understanding and emulating human-like intelligence. After all, we already have plenty of humans, so why not just focus on the areas where machines can extend human capabilities? <span> </span>I think there is some merit in that argument, but it would be a shame to let the scramble for super-human capabilities crowd out the quest for human-like AI.</p>
<p class="MsoBodyText" style="margin-top: 5.75pt;">The quest to understand and replicate human-like intelligence remains as one of the great intellectual challenges of mankind – one of the last great mysteries. Yes, this problem has proven to be more difficult than we thought it would be, and the solution is unlikely to rest on a foundation of clean, beautiful mathematics, but that should not discourage us. If, along the way to understanding intelligence, we can create some valuable technologies that provide super-human performance in specific narrow domains, that&#8217;s a bonus. AI as a field may pause occasionally to take advantage of these new technologies, but we should not let them divert us from the ultimate goal. Better yet, we can combine these technologies to get the best of both worlds: flexible, resourceful human-like systems with a &#8220;telepathic&#8221; link to an array of super-human tools, for the times when those tools are applicable.</p>
<p class="MsoBodyText" style="margin-top: 5.75pt;">And then we can go back to worrying about the death robots.<span> </span>;-)</p>
<p class="MsoBodyText" style="margin-top: 5.75pt;">
<p class="MsoBodyText" style="margin-top: 5.75pt;">
<p class="MsoBodyText">
<div>
<hr size="1" /><!--[endif]--></p>
<div id="edn1">
<p class="MsoEndnoteText"><a name="_edn1" href="#_ednref1"><span class="MsoEndnoteReference"><span><!--[if !supportFootnotes]--><span class="MsoEndnoteReference"><span style="font-size: 10pt; font-family: ">[1]</span></span><!--[endif]--></span></span></a> Note that the word “merely”, as used here, is meant to be read in a voice dripping with sarcasm.<span> </span>If we could somehow develop an artificial system with “merely human” performance, that would be one of the crowning intellectual achievements of mankind – infinitely more important than making incremental progress in some particular subfield such as data mining or optimal planning.</p>
</div>
<div id="edn2">
<p class="MsoEndnoteText"><a name="_edn2" href="#_ednref2"><span class="MsoEndnoteReference"><span><!--[if !supportFootnotes]--><span class="MsoEndnoteReference"><span style="font-size: 10pt; font-family: ">[2]</span></span><!--[endif]--></span></span></a> Newell, A.; Shaw, J.C.; Simon, H.A. (1959). Report on a general problem-solving program. <em>Proceedings of the International Conference on Information Processing.</em> pp. 256-264.</p>
</div>
<div id="edn3">
<p class="MsoEndnoteText"><a name="_edn3" href="#_ednref3"><span class="MsoEndnoteReference"><span><!--[if !supportFootnotes]--><span class="MsoEndnoteReference"><span style="font-size: 10pt; font-family: ">[3]</span></span><!--[endif]--></span></span></a> R. Fikes and N. Nilsson (1971). STRIPS: a new approach to the application of theorem proving to problem solving. <em>Artificial Intelligence</em>, 2:189-208.</p>
</div>
<div id="edn4">
<p class="MsoEndnoteText"><a name="_edn4" href="#_ednref4"><span class="MsoEndnoteReference"><span><!--[if !supportFootnotes]--><span class="MsoEndnoteReference"><span style="font-size: 10pt; font-family: ">[4]</span></span><!--[endif]--></span></span></a> <span class="EndnoteCharacters">Sacerdoti, E. D., &#8220;Planning in a Hierarchy of Abstraction Spaces,&#8221; <em>Artificial Intelligence</em>, 5:115-135, 1974.</span></p>
</div>
<div id="edn5">
<p class="MsoEndnoteText"><a name="_edn5" href="#_ednref5"><span class="MsoEndnoteReference"><span><!--[if !supportFootnotes]--><span class="MsoEndnoteReference"><span style="font-size: 10pt; font-family: ">[5]</span></span><!--[endif]--></span></span></a> John Laird, Paul Rosenbloom, and Allen Newell (1987). &#8220;Soar: An Architecture for General Intelligence&#8221;. <em>Artificial Intelligence</em>, 33: 1-64.</p>
</div>
<div id="edn6">
<p class="MsoEndnoteText"><a name="_edn6" href="#_ednref6"><span class="MsoEndnoteReference"><span><!--[if !supportFootnotes]--><span class="MsoEndnoteReference"><span style="font-size: 10pt; font-family: ">[6]</span></span><!--[endif]--></span></span></a> <span> </span>Fahlman, S. E. (1974) &#8220;A Planning System for Robot Construction Tasks&#8221;, Artificial Intelligence 5 (1974), 1-49.<span> </span>Tech Report version available <a href="http://dspace.mit.edu/handle/1721.1/6918">online</a>.</p>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://sef-linux.radar.cs.cmu.edu/nuggets/?feed=rss2&amp;p=39</wfw:commentRss>
		</item>
		<item>
		<title>In Defense of Incomplete Inference</title>
		<link>http://sef-linux.radar.cs.cmu.edu/nuggets/?p=34</link>
		<comments>http://sef-linux.radar.cs.cmu.edu/nuggets/?p=34#comments</comments>
		<pubDate>Thu, 17 Jul 2008 07:14:47 +0000</pubDate>
		<dc:creator>Scott Fahlman</dc:creator>
		
		<category><![CDATA[KR Issues]]></category>

		<guid isPermaLink="false">http://sef-linux.radar.cs.cmu.edu/nuggets/?p=34</guid>
		<description><![CDATA[In this article, I will expand a bit on some comments I made in the previous article about the tension between expressiveness, scalability, and the &#8220;general theorem proving&#8221; approach to inference – an approach that currently dominates the field of knowledge representation (KR). For a practical and useful knowledge base system (KBS), I think we [...]]]></description>
			<content:encoded><![CDATA[<p class="MsoNormal">In this article, I will expand a bit on some comments I made in the previous article about the tension between expressiveness, scalability, and the &#8220;general theorem proving&#8221; approach to inference – an approach that currently dominates the field of knowledge representation (KR).<span> </span>For a practical and useful knowledge base system (KBS), I think we have to find another path, and I will explain why I have come to this conclusion.</p>
<p class="MsoNormal">It is not my goal here to present a tutorial on first-order logic (FOL), resolution theorem proving, or the decidability and tractability of inference in FOL and in all the various subsets and supersets of FOL that have been proposed over the years.<span> </span>There is not enough space for this in a short article, and I certainly am not the best person to explain these issues.<span> </span>There are many good tutorials on these topics, both online and in the published literature, and most of those tutorials offer pointers to original sources for those who want to dig deeper. <span> </span>One good entry point, which ties these topics explicitly to the concerns of practical knowledge representation, is the book <em><a href="http://www.amazon.com/Knowledge-Representation-Reasoning-Artificial-Intelligence/dp/1558609326">Knowledge Representation and Reasoning</a></em>, by Ron Brachman and Hector Levesque, mentioned in an <a href="http://sef-linux.radar.cs.cmu.edu/nuggets/?p=33">earlier article</a> in this blog.<span> </span>So in this article I will assume some prior knowledge of FOL and related matters; readers totally lacking such a background will probably find this article to be impenetrable and uninteresting.</p>
<p><strong>First-Order Logic for KR</strong></p>
<p class="MsoNormal">When faced with the problem of representing symbolic knowledge in a computer, most researchers immediately turn to First-Order Logic (FOL).<span> </span>It seems the obvious choice.<span> </span>This approach rests on a solid mathematical foundation, built up by great minds since the time of Aristotle.<span> </span>There is a very solid theory telling us what FOL can represent and what kinds of inference are possible in this logic.<span> </span>John McCarthy, with the publication of his 1959 paper <em><a href="http://www-formal.stanford.edu/jmc/mcc59.html">Programs with Common Sense</a></em>, and in much of his subsequent work, gave the just-created field of AI a mighty push in this direction, and away from the rather messy and obscure embedding of knowledge in programs that most of the early pioneers of the AI field had engaged in.<a name="_ednref1" href="#_edn1"><span class="MsoEndnoteReference"><span><!--[if !supportFootnotes]--><span class="MsoEndnoteReference"><span style="font-size: 12pt; font-family: ">[1]</span></span><!--[endif]--></span></span></a></p>
<p class="MsoNormal">For the inference procedure, it seems natural to choose something like resolution theorem-proving<a name="_ednref2" href="#_edn2"><span class="MsoEndnoteReference"><span><!--[if !supportFootnotes]--><span class="MsoEndnoteReference"><span style="font-size: 12pt; font-family: ">[2]</span></span><!--[endif]--></span></span></a>, with its guarantees of sound inference and logical completeness.<span> </span>The basic idea is simple: if you want to determine whether proposition X is true (provable) relative to a given knowledge base (KB), assert not-X and see if the KB is inconsistent given that addition.<span> </span>If so, X must be true.<span> </span>Note, however, that this inserts a potentially very expensive step into the procedure for even simple queries: &#8220;determine whether the entire KB is now consistent&#8221;.<span> </span>In many cases where X is true, a well-designed inference algorithm will terminate quickly, having found some inconsistency that derives from not-X.<span> </span>However, proving that <em>no</em> inconsistency exists, even by the most circuitous path through the assertions and predicates of the KB, can take a long time.<span> </span>In more expressive logical systems, the search may not terminate at all.<span> </span></p>
<p class="MsoNormal">There is the added problem that if some inconsistency was <em>already</em> present in the KB before not-X was added, the system will agree that any statement X must be true, even if it is something absurd like &#8220;one equals two&#8221;.<span> </span>So when using resolution, or any other logically complete inference method, knowledge-base hygiene is all-important: inconsistency must be kept out at all costs.<span> </span>This can be a problem when combining large bodies of information from multiple sources with varying degrees of reliability.<span> </span>But if we have a sufficiently fast procedure for testing the KB for global consistency (as we must have when using resolution), the problem of KB hygiene can be solved, though perhaps at great computational cost.</p>
<p><strong>Speed and Scalability vs. Expressiveness</strong></p>
<p class="MsoNormal">Here&#8217;s the big problem: it has been proven that logically complete inference in a full first-order logic system is computationally intractable.<span> </span>By <em>intractable</em>, we mean that the time required for the worst cases grows exponentially with the size of the KB. Over the years, some very clever inference engines have been developed that speed up typical-case queries by caching partial results or by ruling out parts of the KB that are (provably) not relevant to a given query, but the fundamental problem of intractability remains.<span> </span>The practical consequence is that a system based on full FOL and logically complete inference cannot grow to the very large size that we need for most interesting real-world KB applications.</p>
<p class="MsoNormal">When faced with this problem, most recent researchers in the KR field have turned to more restricted, less expressive logical systems than full FOL. There are many possible tradeoffs between tractability/scalability and expressiveness, and KR conferences are full of papers analyzing and advocating various points in the space of possible tradeoffs.<span> </span>A rather complicated alphabet soup of abbreviations has grown up in the theoretical KR community for describing the various expressive mechanisms that are included or not included in a given KR system<a name="_ednref3" href="#_edn3"><span class="MsoEndnoteReference"><span><!--[if !supportFootnotes]--><span class="MsoEndnoteReference"><span style="font-size: 12pt; font-family: ">[3]</span></span><!--[endif]--></span></span></a>.</p>
<p class="MsoNormal">The <a href="http://www.w3.org/2004/OWL/">OWL</a> notation, which currently seems to be the most popular KR system in actual use (especially for &#8220;semantic web&#8221; applications, since it has been blessed by the Worldwide Web Consortium), is actually a family of languages.<span> </span>OWL-Lite is a very restricted form of OWL that is tractable and for which reasonably fast inference engines exist.<span> </span>Some popular inference engines are <a href="http://www.racer-systems.com/">Racer</a>, <a href="http://www.cs.man.ac.uk/~horrocks/FaCT/">FaCT</a>, and <a href="http://kaon2.semanticweb.org/">KAON2</a>.</p>
<p class="MsoNormal">However, in OWL-Lite it is impossible to express much of the knowledge that we need to express for real applications. OWL-DL, based on <a href="http://dl.kr.org/">Description Logics</a>, is somewhat more expressive: OWL-DL is itself a family with multiple versions, corresponding to the various ways in which description logics can be restricted.<span> </span>Some versions of OWL-DL are theoretically tractable and some are not; of the theoretically tractable versions of OWL, some fit into existing &#8220;fast&#8221; inference engines, and some do not.<span> </span>OWL-Full is more expressive still, but does not generally work with the inference engines that have been developed for description logics.</p>
<p class="MsoNormal">This research on the agonizing tradeoffs between scalability and expressiveness is valuable, but for our purposes in the Scone project – and for any other KB system with similar practical goals – these tradeoffs are beside the point.<span> </span><strong>For human-like reasoning on real-world problems with a large KB, we need both scalability to very large size and expressiveness that is <em>greater</em> – not <em>less</em> – than is provided by first-order logic.</strong></p>
<p class="MsoNormal">Regarding scalability, the core inferences that occur frequently in the KBS must be not only tractable, but fast.<span> </span>Even if a logical system can produce results in polynomial time, that is not good enough if the polynomial involves high-degree terms or large coefficients.<span> </span>If the KB is to scale to the size required for human-like common sense – or beyond – we need more-or-less constant-time responses for most kinds of queries, and linear-time response (or near-linear time) for most of the rest.</p>
<p class="MsoNormal">Of course, there is no magic approach for solving provably intractable inference problems.<span> </span>Some difficult reasoning problems will always require exponential or high-degree polynomial time, no matter what we do.<span> </span>But I would argue that these are not the inference problems that we need to solve frequently in the course of everyday human-like reasoning.<span> </span>So instead of holding the KBS design hostage to the worst-case performance of these most-difficult problems, we could instead optimize the KBS for the easier problems – the ones that we humans routinely solve with no apparent display of mental effort – and banish the more difficult problems to a specialized theorem-proving or puzzle-solving module, where they won&#8217;t bog down our reasoning when we want to determine, for example, whether Clyde the elephant has a heart.</p>
<p class="MsoNormal">Regarding expressiveness: as mentioned in the previous article, and as we will explore in more detail in future articles, a real-world human-like KBS needs higher-order constructs (i.e. the ability to refer to assertions as objects in the KB and to reason about the assertions themselves), multiple overlapping contexts (which really are just a convenient re-packaging of the higher-order constructs), and default reasoning with exceptions (non-monotonic constructs).<span> </span>If we add any of these features to our knowledge representation system, it takes us beyond the intractability of FOL and into the space of undecidability – that is, if we try to apply a logically complete inference method like resolution, it may not return an answer at all for some queries, no matter how long we wait.</p>
<p><strong>Three Major Goals: Pick Any Two</strong></p>
<p class="MsoNormal">So that&#8217;s the problem. We want three things from a practical KR system: (1) logical completeness and provable consistency; (2) speed and scalability; and (3) enough expressive power to cover all of our needs for representing common-sense knowledge.<span> </span>There is a well-established body of theory that says we can&#8217;t have all three properties at once.<span> </span>So researchers must choose which of these goals to give up (or at least to compromise on).</p>
<p class="MsoNormal">For many researchers, giving up the logical properties of completeness and provable consistency seems to be inconceivable – they don&#8217;t even discuss this as a choice – so they end up arguing endlessly about how much expressiveness to trade off for somewhat better speed and scalability.<span> </span>Often, they end up with the worst of both worlds: an awkward, inexpressive system that is still too slow to be used in many applications.</p>
<p class="MsoNormal">Some of the logicians in the KR field have effectively given up on scalability: they remain rooted in the logical tradition and continue to explore ever more complex and expressive logics, even if the resulting representations are intractable or undecidable.</p>
<p class="MsoNormal">And a few of us, unwilling to compromise either on expressiveness or scalability, have made the choice to give up on logically complete proof procedures and to reason in a more local and limited way.<span> </span>Our systems are not general theorem-provers, but they seem to support human-like common-sense reasoning quite well.<span> </span>In any case, given our goals, this is the only reasonable choice.<a name="_ednref4" href="#_edn4"><span class="MsoEndnoteReference"><span><!--[if !supportFootnotes]--><span class="MsoEndnoteReference"><span style="font-size: 12pt; font-family: ">[4]</span></span><!--[endif]--></span></span></a></p>
<p><strong>Incomplete Inference</strong></p>
<p class="MsoNormal">So what are the implications of this choice?<span> </span>On the plus side, giving up on logically complete inference is very liberating: the greater expressiveness available in an incomplete-inference system like Scone allows us to easily express and reason about general-knowledge statements and concepts that would be extremely difficult, if not impossible, in a system based on FOL or a tractable subset of FOL.<span> </span>In Scone it is easy to represent and reason about pink elephants and flightless birds, and to represent complex multi-context statements like &#8220;Tom believes that Fred knows Mary&#8217;s phone number, but Fred doesn&#8217;t really know it.&#8221; <span> </span>This expressive power makes it much easier to build up large bodies of knowledge in real-world domains, since we are not constantly fighting against the fundamental limitations of our descriptive machinery.<span> </span>Since our KBS is more expressive, we can import knowledge from representations such as OWL into Scone, though we cannot, in general, export Scone knowledge back into less expressive systems – some of it just can&#8217;t be represented there.<span> </span>Freed from the expressiveness/tractability dilemma, we can focus on making our system&#8217;s limited inference as fast and scalable as possible.</p>
<p class="MsoNormal">On the other hand, there will be some valid inferences that could be made from the knowledge in our KB that a system like Scone will never make – that&#8217;s the definition of incomplete inference. <span> </span>Scone&#8217;s reasoning is mostly local – it will not follow chains of inference to arbitrary depth.<span> </span>When faced with some loop (&#8221;Who shaves the barber?&#8221;), Scone ideally would flag this as a problematic case, but we cannot guarantee that all such cases will be detected.<span> </span>Sometimes Scone will just return one answer or the other.<span> </span>For human-like reasoning, that strikes me as good enough. <span> </span>I do the same thing.<span> </span>We all do, when we&#8217;re not in theorem-proving mode.</p>
<p class="MsoNormal">Scone can still catch most inconsistencies as they are entered into the KB.<span> </span>For example, if you say that Clyde is male and later that he is someone&#8217;s mother, implying that Clyde is female, that will be caught.<span> </span>However, more subtle inconsistencies may sneak into the KB unnoticed.<span> </span>If somehow we end up in a situation where Clyde is both male and female, then we will experience some local confusion regarding Clyde.<span> </span>(What restroom should Clyde use?<span> </span>What sort of sex organs does Clyde have?)<span> </span>But our local, limited inference machinery will then not go on to conclude that one equals two.<span> </span>So the lack of logical completeness is not always a bad thing.</p>
<p class="MsoNormal">The deductions made by the limited inference engine in our KBS are normally sound, as far as they go, but there are situations where an unsound conclusion can be reached.<span> </span>In a non-monotonic but incomplete reasoning system, this is unavoidable.<span> </span>For example, suppose that elephants are, by default, gray, but that Clyde is pink.<span> </span>Since our KBS supports exceptions, it is legal to cancel the inherited &#8220;Clyde is gray&#8221; property and to add the contradictory assertion &#8220;Clyde is pink&#8221;.<span> </span>Suppose, however, that the information about Clyde&#8217;s non-standard color is not stated directly, but is derived as the result of a long and circuitous chain of reasoning.<span> </span>In this case, when asked the color of Clyde, our KBS might quickly infer that Clyde is gray and, if we stop the reasoning too soon, might never discover any reason to retract this conclusion. The KBS would return gray as the color, and that is incorrect.</p>
<p class="MsoNormal">It is troubling to have unsound inferences in our system under any circumstances.<span> </span>However, default inference with exceptions is so valuable that, in my opinion, we cannot live without it in real-world domains.<span> </span>If you know a lot about elephants, it is unlikely that any individual elephant will fit the typical-elephant description without a few exceptions.<span> </span>And if you banish from the elephant description any property that is not universally true, you will be left with a very sparse and not very useful description.<span> </span>So I think that this particular kind of unsoundness is the lesser of evils – the only reasonable choice for a system that must solve real problems in messy, non-mathematical domains.</p>
<p class="MsoNormal">
<p class="MsoNormal">Again, I believe that this choice is quite consistent with human-like common-sense reasoning. <span> </span>In my daily life, I will often draw an invalid conclusion because I haven&#8217;t thought deeply enough about the problem – I have just applied the usual default instead of noticing that the case I&#8217;m dealing with is exceptional.<span> </span>We humans all do this in our day-to-day reasoning, whenever we’re not in ultra-careful theorem-proving mode.</p>
<p class="MsoNormal">Perhaps the greatest disadvantage of an incomplete-inference approach is that it is hard for us to make sweeping, closed-form statements describing exactly what inferences these systems can and cannot make.<span> </span>In most of these systems, the depth of reasoning depends in complicated ways on exactly what is in the KB and on parameters that govern how much time and effort should be spent on a query before the system gives up.<span> </span>So the incomplete-inference systems lack the satisfying mathematical elegance of the theorem-proving systems; in exchange, the offer speed, scalability and expressiveness.<span> </span>I think that each of us must choose which of these properties we value most, depending on our goals.</p>
<p><strong>In Conclusion&#8230;</strong></p>
<p class="MsoNormal">None of this is meant to suggest that researchers who cling tightly to the logically complete, theorem-proving approach are wrong to do so.<span> </span>Theorem proving – and, more recently, <em>automated</em> theorem proving – are among the crown jewels of human intellectual achievement.<span> </span>Theorem-proving enables us to reason far more deeply than we otherwise could, with a strong guarantee that, if our premises are correct, our conclusions are correct as well.<span> </span>Even for practical inference systems, this approach has some value.<span> </span>There are small but important reasoning problems for which intractability is not a fatal problem.<span> </span>And there are many uses for logic-based representation with limited expressive power.<span> </span>For example, a system like OWL-Lite may be sufficiently expressive for the Semantic Web as it is currently conceived by many: a simple hierarchical scheme to provide somewhat more meaningful labels for URLs and web pages.<span> </span></p>
<p class="MsoNormal">So I have no problem with researchers who want to focus on exploring the limits and tradeoffs of logically complete inference systems.<span> </span>It’s important work, and perhaps they deserve the dominant position they currently occupy in the KR universe.<span> </span>But I do wish that they would regard those of us who have chosen to work on incomplete inference systems as equally serious researchers who have chosen a different approach for good reason, and not as ignorant or lazy bumblers who are too slow or too stubborn to perceive the One   True Way.</p>
<p class="MsoNormal">It is rather annoying when the logic people start congratulating themselves for having taken a &#8220;principled&#8221; approach to representing one kind of knowledge or another, with the sneering implication that other approaches are &#8220;unprincipled&#8221; – just a collection of <em>ad hoc</em> design choices made more or less at random by people who don&#8217;t know any better.<span> </span>Principles are important.<span> </span>But if strict adherence to a particular set of principles leads you into a part of the design space that is provably worthless for many important real-world problems, maybe it&#8217;s time to look for some new principles.</p>
<p class="MsoNormal">
<p class="MsoNormal">
<div>
<hr size="1" /><!--[endif]--></p>
<div id="edn1">
<p class="MsoEndnoteText"><a name="_edn1" href="#_ednref1"><span class="MsoEndnoteReference"><span><!--[if !supportFootnotes]--><span class="MsoEndnoteReference"><span style="font-size: 10pt; font-family: ">[1]</span></span><!--[endif]--></span></span></a> At the time, McCarthy&#8217;s arguments in favor of a declarative, logic-based approach to KR had only partial success.<span> </span>Most AI researchers accepted, more or less, the &#8220;declarative&#8221; part, but for a long time the AI field was split between those who favored a logic-based approach and those who just wanted to get the job done.<span> </span>The split remains, though it is now less visible.<span> </span>In recent years, the logicians have gained the ascendancy among theoretical AI researchers and those focused on the &#8220;semantic web&#8221;.<span> </span>Many people focused on AI applications (i.e. &#8220;getting the job done&#8221;) still often employ other, mostly older KR approaches that avoid some of the representational limitations discussed in this article.</p>
</div>
<div id="edn2">
<p class="MsoEndnoteText"><a name="_edn2" href="#_ednref2"><span class="MsoEndnoteReference"><span><!--[if !supportFootnotes]--><span class="MsoEndnoteReference"><span style="font-size: 10pt; font-family: ">[2]</span></span><!--[endif]--></span></span></a> John Alan Robinson, &#8220;A Machine-Oriented Logic Based on the Resolution Principle&#8221;, <em><a title="Communications of the ACM" href="http://en.wikipedia.org/wiki/Communications_of_the_ACM">Communications of the ACM</a></em>, 5:23–41, 1965.</p>
</div>
<div id="edn3">
<p class="MsoEndnoteText"><a name="_edn3" href="#_ednref3"><span class="MsoEndnoteReference"><span><!--[if !supportFootnotes]--><span class="MsoEndnoteReference"><span style="font-size: 10pt; font-family: ">[3]</span></span><!--[endif]--></span></span></a> For some pointers into this space, see the Wikipedia Article on <a href="http://en.wikipedia.org/wiki/Description_logic">Description Logics</a>.<span> </span>For a good example of the complex ways in which the inclusion of expressive features may be traded off against the speed and tractability of inference, see Ian Horrocks, Ulrike Sattler, and Stephan Tobies: <a href="http://www.comlab.ox.ac.uk/people/ian.horrocks/Publications/download/2000/HoST00.pdf">&#8220;<span>Practical Reasoning for Very Expressive Description Logics&#8221;</span></a> in <em>Logic Journal of the IGPL</em>, 8(3):239-264, 2000.</p>
</div>
<div id="edn4">
<p class="MsoEndnoteText"><a name="_edn4" href="#_ednref4"><span class="MsoEndnoteReference"><span><!--[if !supportFootnotes]--><span class="MsoEndnoteReference"><span style="font-size: 10pt; font-family: ">[4]</span></span><!--[endif]--></span></span></a> I am certainly not the first person to reach this conclusion.<span> </span>For example, see Jon Doyle and Ramesh S. Patil&#8217;s paper <a href="http://www.csc.ncsu.edu/faculty/doyle/publications/td91.ps">&#8220;Two Theses of Knowledge Representation: Language Restrictions, Taxonomic Classifications, and the Utility of Representation Services&#8221;</a>, <em>Artificial Intelligence</em>, Vol.48, No. 3 (April 1991), pp. 261-297.<span> </span>They present a longer and more detailed argument leading to the same general conclusion: that in a KR system for large real-world problems, we must use some kind of incomplete inference scheme, though their ideas about exactly what sort of incomplete inference to use are a bit different from mine.</p>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://sef-linux.radar.cs.cmu.edu/nuggets/?feed=rss2&amp;p=34</wfw:commentRss>
		</item>
		<item>
		<title>Mini-Nuggets: Knowledge Base Requirements for Human-Like Thought</title>
		<link>http://sef-linux.radar.cs.cmu.edu/nuggets/?p=33</link>
		<comments>http://sef-linux.radar.cs.cmu.edu/nuggets/?p=33#comments</comments>
		<pubDate>Wed, 25 Jun 2008 10:12:45 +0000</pubDate>
		<dc:creator>Scott Fahlman</dc:creator>
		
		<category><![CDATA[AI]]></category>

		<category><![CDATA[KR Issues]]></category>

		<guid isPermaLink="false">http://sef-linux.radar.cs.cmu.edu/nuggets/?p=33</guid>
		<description><![CDATA[


This is the second mini-nuggets article: a collection of propositions, with some minimal explanation for each, on a given topic. The idea is to sketch out an overall approach or point of view quickly, without getting bogged down in a lot of detail or lengthy justification about each point. I will come back and expand [...]]]></description>
			<content:encoded><![CDATA[<p class="MsoNormal">
<p class="MsoNormal">
<p><img style="vertical-align: top; border: 2px solid black;" src="http://sef-linux.radar.cs.cmu.edu/nuggets/images/Rainbow2.jpg" alt="" width="565" height="464" /></p>
<p class="MsoNormal">This is the second <em><a href="http://sef-linux.radar.cs.cmu.edu/nuggets/?p=31">mini-nuggets</a></em> article:<em><span style="font-style: normal;"> a collection</span></em><em> </em>of propositions, with some minimal explanation for each, on a given topic. The idea is to sketch out an overall approach or point of view quickly, without getting bogged down in a lot of detail or lengthy justification about each point.<span> </span>I will come back and expand on many of these points in later articles.</p>
<p class="MsoNormal">In the <a href="http://sef-linux.radar.cs.cmu.edu/nuggets/?p=32">previous article</a>, I gave some specific narrative examples illustrating the amazing capabilities of the human memory system, and I argued that these capabilities are at the core of human intelligence.<span> </span>Until we understand how this memory system works, precisely enough to build some approximation of it, our AI systems will never approach the breadth, flexibility, and common sense that we humans take for granted in our own thinking.<span> </span>(It all seems so easy for us that it took some time just to realize that there&#8217;s an interesting problem here.)<span> </span>This, in my opinion, is the single most important missing piece in our current understanding of intelligence, whether natural or artificial.</p>
<p class="MsoNormal"><strong>In this article I will try to enumerate some of the specific capabilities that a memory system or knowledge-base system (KBS)<a name="_ednref1" href="#_edn1"><span class="MsoEndnoteReference"><span><!--[if !supportFootnotes]--><span class="MsoEndnoteReference"><strong><span style="font-size: 12pt; font-family: ">[1]</span></strong></span><!--[endif]--></span></span></a> must have in order to support human-like performance.<span> </span></strong>I don&#8217;t expect this brief statement of positions to persuade anyone who is inclined toward another view.<span> </span>My goal here is just to provide a rough sketch of the overall approach that (as of this moment) looks best to me and my research group – an approach that we are working busily to implement in the Scone knowledge-base system.</p>
<p class="MsoNormal">One point before we dive in: I will be talking here about <em>symbolic memory</em> – the component that handles propositions like &#8220;the capital of Ohio is Columbus&#8221; or &#8220;the typical elephant hates snakes&#8221; or procedural knowledge like &#8220;the first step in making chocolate chip cookies is to let some butter soften to room temperature.&#8221;</p>
<p class="MsoNormal">The symbolic knowledge base is not the whole story of human-like memory.<span> </span>I believe that we have other – probably separate – memory mechanisms to deal with images and visual patterns (2D, 3D, and 4D), sounds and music, smells and tastes, low-level motion planning, and probably several other things.<span> </span>I will have more to say about these other memory components in a future article.<span> </span>Nor is this symbolic KBS meant to be an intelligent system in its own right: as we will see, the KBS is more than a passive repository of facts, but it is only the base upon which we can build higher-level planning and cognition, and intelligent applications of all kinds.</p>
<p class="MsoNormal">Some AI researchers, psychologists, and philosophers would argue that it makes no sense to study the human memory system (or an artificial KBS) in isolation, as a separate component distinct from the processes that use the knowledge.<span> </span>They argue that that intelligence and &#8220;consciousness&#8221; must be considered holistically if we are to make any sense of what is going on.<span> </span>I disagree: I believe that &#8220;divide and conquer&#8221; is a good approach whenever it can be applied without too much damage to the subject, and I believe that the division suggested here between the KBS and everything else is a natural one. My students and I have already seen ways in which understanding the KBS – what it contains and what it does – can help us<span> </span>to think more clearly about how the overall system works.</p>
<p class="MsoNormal">So with those caveats in mind, here we go:</p>
<p class="MsoNormal" style="margin-left: 0.25in; text-indent: -0.25in;"><!--[if !supportLists]--><span style="font-size: 14pt; font-family: Symbol;"><span>·<span style="font-family: "> </span></span></span><!--[endif]--><strong>The knowledge base can be thought of as a <em>semantic network</em>, with <em>nodes</em> representing entities (physical objects like &#8220;elephant&#8221;, but also more abstract entities like &#8220;September&#8221; or &#8220;juggling&#8221;) and <em>links</em> representing the relational connections among these entities.<span> </span></strong>We refer to nodes and links, collectively, as <em>elements</em> in the KBS.<span> </span>As we will see, the semantic network we contemplate here is much more precise in its representation and reasoning than the early, sloppy semantic networks in which it was often impossible to determine whether a node labeled &#8220;elephant&#8221; represented the typical elephant, some specific elephant, the set of all elephants, or the word &#8220;elephant&#8221;.<a name="_ednref2" href="#_edn2"><span class="MsoEndnoteReference"><span><!--[if !supportFootnotes]--><span class="MsoEndnoteReference"><span style="font-size: 12pt; font-family: ">[2]</span></span><!--[endif]--></span></span></a><span> </span>We need to represent all of these things, but in distinct ways.</p>
<p class="MsoNormal" style="margin-left: 0.25in; text-indent: -0.25in;"><!--[if !supportLists]--><span style="font-size: 14pt; font-family: Symbol;"><span>·<span style="font-family: "> </span></span></span><!--[endif]--><strong>Elements in the KBS represent <em>concepts</em>, not words or word-definitions.<span> </span></strong>So in Scone (and, we would argue, in the memory system of humans) the &#8220;elephant&#8221; node represents the <em>concept</em> of elephant, and is the anchor point for our description of the typical elephant: its parts, properties, relations, and behaviors.<span> </span>This conceptual representation is independent of the particular human-language descriptions or other ways in which this knowledge was originally expressed.</p>
<p class="MsoNormal" style="margin-left: 0.25in; text-indent: -0.25in;"><!--[if !supportLists]--><span style="font-size: 14pt; font-family: Symbol;"><span>·<span style="font-family: "> </span></span></span><!--[endif]--><strong>A conceptual element may be associated with any number of <em>names</em> (words or phrases in some human language), and a name may be associated with many different <em>meanings</em> (concept nodes), so the mapping is many-to-many within a single human language.<span> </span></strong>Some concepts may have no names.<span> </span>The set of concept nodes doesn&#8217;t change as we switch from one human language to another, but each new language will provide a new set of names and associations.<strong> </strong><span> </span>If a word or phrase maps to more than one concept, we call it ambiguous or polysemous.<span> </span>This ambiguity must be resolved, at least tentatively, before we are ready to store the conceptual meaning of an utterance in the KBS.<span> </span>The conceptual representation does not preserve the original ambiguity, but represents <em>one</em> specific meaning.<span> </span>If a sentence is truly ambiguous we might store several possible meanings in the KBS, labeling them as distinct alternative choices.<span> </span>In any case, we will probably store the original natural-language form as well, at least for a short time, just in case we need to refer back to it to see if there could be an alternative meaning.</p>
<p class="MsoNormal" style="margin-left: 0.25in;">Many linguists and some AI researchers blur this distinction between linguistic expressions and conceptual representations.<span> </span>Some even claim that no separate conceptual representation exists, and that no representation <em>can</em> exist that is independent of language.<span> </span>This radical view leads to all sorts of problems and paradoxes.<a name="_ednref3" href="#_edn3"><span class="MsoEndnoteReference"><span><!--[if !supportFootnotes]--><span class="MsoEndnoteReference"><span style="font-size: 12pt; font-family: ">[3]</span></span><!--[endif]--></span></span></a></p>
<p class="MsoNormal" style="margin-left: 0.25in;">The <a href="http://csc.media.mit.edu/">Commonsense Computing</a> project at MIT (affiliated with the <a href="http://www.openmind.org/">Open Mind Project</a>) has advocated building and using a knowledge base that is a collection of undigested English sentences.<a name="_ednref4" href="#_edn4"><span class="MsoEndnoteReference"><span><!--[if !supportFootnotes]--><span class="MsoEndnoteReference"><span style="font-size: 12pt; font-family: ">[4]</span></span><!--[endif]--></span></span></a><span> </span>Such a collection has its uses, but I believe that a language-independent, concept-level representation is essential for human-like thought.<span> </span>It is too hard to reason effectively with raw English expressions, full of ambiguities and unresolved references.<span> </span>In any case, we need a mechanism that can reason about the many concepts that, in a given human language, do not have conventional names.<span> </span>For example, we can easily represent and reason about the concept of &#8220;juggling while standing on one foot, blindfolded, during a hurricane&#8221; – for example, we can conclude that this activity is much more difficult than conventional juggling – but I would be very surprised to find a human language or subculture that has a name for this activity.</p>
<p class="MsoNormal" style="margin-left: 0.25in; text-indent: -0.25in;"><!--[if !supportLists]--><span style="font-size: 14pt; font-family: Symbol;"><span>·<span style="font-family: "> </span></span></span><!--[endif]--><strong>The KBS must support at least simple kinds of search and inference; it cannot be a passive repository of entities and assertions.<span> </span></strong>As described in the previous article, human memory <em>appears to contain</em> much more information than it <em>explicitly contains</em>; the extra information must be supplied by access-time inference, even though we have no subjective experience of doing significant mental work as these inferences take place.<span> </span>If we are told that Clyde is an elephant, we immediately appear to know that Clyde is gray, four-legged, has a liver, and so on.<span> </span>Our KBS must provide a similar capability for simple inference.<span> </span>It must also be able to support moderately complex searches, such as finding all the matching elements in the KB, given a list of features, even if the chosen elements have those features only by inheritance and not directly.<span> </span>We could do this search and inference in a separate module, distinct from the KBS, but it is much more efficient to build these operations into the KBS itself – then we can organize the representations in the knowledge base to speed up these operations.</p>
<p class="MsoNormal" style="margin-left: 0.25in; text-indent: -0.25in;"><!--[if !supportLists]--><span style="font-size: 14pt; font-family: Symbol;"><span>·<span style="font-family: "> </span></span></span><!--[endif]--><strong>For human-like performance, the KBS must be capable of scaling up to a large size.<span> </span></strong>As we saw above, the amount of information implicit in the knowledge base, and easily accessible to the KBS, is much larger than the amount of information explicitly present.<span> </span>But, even so, a large amount of explicit knowledge is still required.<span> </span>My best guess as to the size of the <em>symbolic</em> memory in a typical human is something like 10 million<sup></sup> to 100 million<sup></sup> elements (i.e. node and link equivalents, however the brain actually stores these).<span> </span>We will revisit this question in a future article.<span> </span>For now, the point is that the storage and inference machinery in our KBS had better be able to scale up to sizes like this.</p>
<p class="MsoNormal" style="margin-left: 0.25in; text-indent: -0.25in;"><!--[if !supportLists]--><span style="font-size: 14pt; font-family: Symbol;"><span>·<span style="font-family: "> </span></span></span><!--[endif]--><strong>The KBS <em>does not</em> have to directly support more complex forms of reasoning, such as general theorem proving, optimal planning, Bayesian combination of probabilities, or puzzle solving.</strong><span> </span>I would argue that these operations are <em>not</em> required for general human-like intelligence.<span> </span>Some humans have learned to do these things, and they are important capabilities for solving certain problems.<span> </span>But the vast majority of humans have not mastered these skills, and these people get along just fine, even in our complex society.<span> </span>Of course, these things may be going on deep in our cognitive machinery, even if we have no conscious access to them, but I see no evidence of that.</p>
<p class="MsoNormal" style="margin-left: 0.25in;">So, we may want to provide a theorem-proving or optimal-planning module as part of an AI application, but I do not believe that we need to build such capabilities into the KBS itself.<span> </span>As a general rule of thumb, we want the KBS to handle all the memory-related operations that appear to be almost effortless for humans, and not those things that require deep thought, advanced education, or a pencil and paper.</p>
<p class="MsoNormal" style="margin-left: 0.25in;">This is a controversial view.<span> </span>Many AI researchers equate inference with theorem-proving, almost as an article of faith.<span> </span>Their inference systems provide guarantees of logical completeness and provable consistency, but they pay a terrible price for this: if they cling to these guarantees, they cannot have a KBS that is both sufficiently expressive for human-like reasoning and computationally tractable – that is, able to scale up to a large size without exponential growth in the time required for inference.<span> </span>So we take the radical (to some) step of separating the fast, simple inference that is integral to the KBS from more general kinds general theorem proving that we view as optional.<span> </span>I will have more to say about this topic in a future article.</p>
<p class="MsoNormal" style="margin-left: 0.25in; text-indent: -0.25in;"><!--[if !supportLists]--><span style="font-size: 14pt; font-family: Symbol;"><span>·<span style="font-family: "> </span></span></span><!--[endif]--><strong>The backbone of the network representation is the<em> is-a hierarchy</em>.<span> </span></strong>The is-a relation determines class membership and is also the main pathway for inheritance of properties and descriptions.<a name="_ednref5" href="#_edn5"><span class="MsoEndnoteReference"><span><!--[if !supportFootnotes]--><span class="MsoEndnoteReference"><span style="font-size: 12pt; font-family: ">[5]</span></span><!--[endif]--></span></span></a><span> </span>So if there is a chain of is-a links from &#8220;Clyde&#8221; to &#8220;elephant&#8221; to &#8220;mammal&#8221; to &#8220;vertebrate&#8221; to &#8220;physical object&#8221; to &#8220;thing&#8221;, we know that Clyde is an instance of each of these types, and that Clyde should inherit the properties of the typical member of each of these types.<span> </span>If the typical vertebrate has a liver, Clyde has a liver.</p>
<p class="MsoNormal" style="margin-left: 0.25in; text-indent: -0.25in;"><!--[if !supportLists]--><span style="font-size: 14pt; font-family: Symbol;"><span>·<span style="font-family: "> </span></span></span><!--[endif]--><strong>Multiple inheritance – the ability for a node to have is-a links to more than one immediate superior (more general) class – is essential in a KBS designed for human-like reasoning.<span> </span></strong>In addition to being an elephant, Clyde may be a male, an adult, a circus performer, and an expert skateboarder, inheriting properties and other information from each of these descriptions.<span> </span>Some classes are defined as intersections of others: a &#8220;boy&#8221; is a child, male, human, while a &#8220;woman&#8221; is an adult, female, human.<span> </span>The type hierarchy in a programming language like Java may (barely) get away with only single inheritance, but for representing knowledge, multiple inheritance is crucial.</p>
<p class="MsoNormal" style="margin-left: 0.25in; text-indent: -0.25in;"><!--[if !supportLists]--><span style="font-size: 14pt; font-family: Symbol;"><span>·<span style="font-family: "> </span></span></span><!--[endif]--><strong>The KBS must support default reasoning with exceptions.</strong><span> </span>When we hear that Clyde is an elephant, we assume (because of inheritance) that Clyde is gray, has four legs, and eats only vegetation.<span> </span>Default reasoning of this kind is very important in any KBS – it&#8217;s a big part of the &#8220;value added&#8221; by including some inference mechanisms in the KBS.<span> </span>However, for a real-world KBS, there are very few general statements that do not have at least a few exceptions.<span> </span>We may be told explicitly that, unlike typical elephants, Clyde is white, is three-legged, and that he enjoys an occasional hamburger, but despite all that, Clyde is still an elephant and he still inherits all the other elephant properties.<span> </span>So we must be able to add these specific statements about Clyde and cancel or over-ride the conflicting default properties that would otherwise be inherited.</p>
<p class="MsoNormal" style="margin-left: 0.25in;">The use of exceptions is controversial in the knowledge representation community.<span> </span>Almost everyone agrees that exceptions are potentially very useful, and perhaps unavoidable, for real-world reasoning.<span> </span>But for knowledge representation systems whose inference is based on theorem-proving, this capability imposes a cost that many researchers consider unacceptable: any use of exceptions takes you into the realm of non-monotonic logic, which introduces many new problems and greatly increases the computational cost of inference.<span> </span>So most current knowledge representation systems exclude exceptions: if you add a statement to the knowledge base, it must be <em>universally</em> true; statements that admit exceptions, if they are allowed at all, are banished to some disreputable annex of the KBS, outside the purview of the core inference machinery.</p>
<p class="MsoNormal" style="margin-left: 0.25in;">Controversial it may be, but for human-like performance on real-world knowledge, there is really no option: statements with exceptions are too common to ignore or to consign to second-class status.<span> </span>There are too many flightless birds, white elephants, meat-eating plants, and honest politicians in the world – they may be rare, but we can’t just label them as inconceivable, nor can we give up the default reasoning that handles the non-exceptional cases.<span> </span>So we must bite the bullet and allow default reasoning with exceptions, whatever the cost.<span> </span>And, if we don&#8217;t cling to the assumptions of inference-as-theorem-proving, the cost is not so bad.</p>
<p class="MsoNormal" style="margin-left: 0.25in; text-indent: -0.25in;"><!--[if !supportLists]--><span style="font-size: 14pt; font-family: Symbol;"><span>·<span style="font-family: "> </span></span></span><!--[endif]--><strong>The KBS must support meta-information and meta-reasoning about the statements themselves; statements must be first-class objects with properties that we can reason about.<span> </span></strong>For many problem domains, it is very important to record certain information about the statements themselves: where they came from, what probability or level of confidence we assign to each, what various analysts and critics have said about specific statements or groups of statements, and so on.<span> </span>And, having reasoned about what statements we choose to believe in a given situation, we then must be able to go ahead and use only the &#8220;believed&#8221; statements in our reasoning.<span> </span>This kind of meta-reasoning is particularly important in domains such as military intelligence, in which the task is to draw conclusions from uncertain and often conflicting reports, but it comes up in all kinds of human reasoning – even in children&#8217;s stories – and we human are very good at this.<strong></strong></p>
<p class="MsoNormal" style="margin-left: 0.25in;">Once again, this choice is controversial in the knowledge representation community, since it takes us beyond the comfortable and well-understood domain of first-order logic.<span> </span>But, once again, it is unavoidable in a KBS designed for human-like reasoning in real-world situations.<strong></strong></p>
<p class="MsoNormal" style="margin-left: 0.25in; text-indent: -0.25in;"><!--[if !supportLists]--><span style="font-size: 14pt; font-family: Symbol;"><span>·<span style="font-family: "> </span></span></span><!--[endif]--><strong>Each entity (node) in memory is a <em>description</em>; each subtype or instance is a <em>virtual copy</em> of that description.<span> </span></strong>So far, we have spoken of properties being inherited through the is-a hierarchy.<span> </span>In fact, each entity (node) in memory is potentially a full description: it contains not just membership in superior classes and some properties, but also relations, parts and components, and relationships among those components.<span> </span>So, for example, the &#8220;elephant&#8221; node (representing the typical elephant) has a &#8220;predominant color&#8221; property of &#8220;gray&#8221;, one head, one nose (connected to the head), four legs, a &#8220;hates&#8221; relation to the &#8220;typical snake&#8221; node, and some typical activities such as eating and breathing.<strong></strong></p>
<p class="MsoNormal" style="margin-left: 0.25in;">When we say that Clyde is an elephant, we want Clyde to suddenly become a virtual copy of the typical-elephant description: henceforth, as far as queries to the KBS are concerned, we want Clyde to behave as if we had copied the entire &#8220;elephant&#8221; description, replacing &#8220;elephant&#8221; with &#8220;Clyde&#8221;.<span> </span>However, we don&#8217;t want make an actual copy: that requires a lot of effort, wastes memory in the KBS, and creates the maintenance problem of keeping many &#8220;elephant&#8221; copies up to date as we learn new things about the typical elephant.<span> </span>So this must be a <em>virtual copy</em>: the inference machinery built into the KBS must make it appear that the copy has been made, without actually doing that.<span> </span>It can be tricky to get this right, but it is really the fundamental operation in any well-behaved KBS, and a bit of introspection will persuade you that your own memory system is also creating virtual copies, or something very similar.</p>
<p class="MsoNormal" style="margin-left: 0.25in; text-indent: -0.25in;"><!--[if !supportLists]--><span style="font-size: 14pt; font-family: Symbol;"><span>·<span style="font-family: "> </span></span></span><!--[endif]--><strong>The KBS must be able to support many distinct but overlapping world-models (<em>contexts</em>) at once.<span> </span></strong>We humans are quite adept at creating and<span> </span>working with multiple world-models.<span> </span>We use these in many ways: exploring possible futures, alternative or &#8220;what if&#8221; possibilities (including entire fictional universes, such as the Harry Potter universe), and different states of the real world at different times.<span> </span>We also use these to represent the states of another human&#8217;s belief or knowledge, and to reason about what that person might conclude or might do, given that belief-set.<span> </span>From a young age, we are able to reason about situations like this:</p>
<p class="MsoNormal" style="margin-left: 0.5in;"><em>&#8220;The three pigs are safe inside the brick house.<span> </span>The wolf is outside, and the pigs know it.<span> </span>The wolf pretends to leave.<span> </span>The pigs believe this deception and open the door… You can guess what happens next!&#8221;</em></p>
<p class="MsoNormal" style="margin-left: 0.25in;">It should be clear that in order to understand this simple story, the reader must be able to reason about what the pigs know and believe (pre-deception), what they believe and act upon (post-deception), what the wolf intends the pigs to believe, and so on.</p>
<p class="MsoNormal" style="margin-left: 0.25in;">So to achieve human-like performance, a KBS must be able to represent each of these distinct world models at once, moving freely between them and reasoning about what would be true in each.<span> </span>To entertain a &#8220;what if X?&#8221; hypothesis, we must be able to create a context in which X is true and then explore the consequences, but we do not want to mix X into the set of things that we believe to be true in current reality.</p>
<p class="MsoNormal" style="margin-left: 0.25in;">Note that these contexts are distinct – each one differs from the others in some specific ways – but they overlap: in each of the contexts in the pig story, we know that brick-houses are wolf-proof unless the inhabitants open the door.<span> </span>So we want each new context to begin life as a virtual copy of some other context, and then we add or cancel statements as needed.<span> </span>We will have much more to say about this in future articles.</p>
<p class="MsoNormal" style="margin-left: 0.25in; text-indent: -0.25in;"><!--[if !supportLists]--><span style="font-size: 14pt; font-family: Symbol;"><span>·<span style="font-family: "> </span></span></span><!--[endif]--><strong>In addition to static knowledge, the KBS must support episodic memory: the ability to store and reason about events, actions, and plans.<span> </span></strong>Again, this is central to human reasoning ability.<span> </span>It appears that we use the same episodic-memory representation for many tasks.<span> </span>First, we need a way of representing and reasoning about event sequences that we have observed.<span> </span>In the course of a lifetime, we will collect a large number of these.<span> </span>Sometimes we will just know the sequence of events, or a partially-observed sequence; often (as with out own plans) we will know the higher-level motivations as well.<span> </span>Second, we can use the same representation for recognizing familiar plan-templates when we observe a few steps in the plan.<span> </span>Third, we can use all these stored plans and sequences as templates or recipes to guide our own planning, or our estimates of what some other actor may do next.<span> </span>We want our human-like KBS to have all these capabilities as well.</p>
<p class="MsoNormal" style="margin-left: 0.25in;">This is a very big topic that I will address in future articles.<span> </span>For now, let me just say that the virtual-copy mechanism will be crucial in representing actions, events, and plans at various levels of abstraction, and that the multiple context mechanism will provide the means for reasoning<span> </span>&#8220;before&#8221; and &#8220;after&#8221; world-models, and the state of the universe after each step in a plan.</p>
<p class="MsoNormal">So that is our preliminary wish-list for a KBS that can support human-like reasoning.<span> </span>There is much more to say about each of these points, and many more points I might have added, but I hope that this is enough to give you a general idea of what my students and I are trying to achieve in our wok on knowledge representation in general and on Scone in particular.<span> </span>It is a rather different wish-list from that of most other researchers in the knowledge representation field, but we think it is a coherent and productive set of goals.</p>
<div><!--[if !supportEndnotes]--></p>
<hr size="1" /><!--[endif]--></p>
<div id="edn1">
<p class="MsoEndnoteText"><a name="_edn1" href="#_ednref1"><span class="MsoEndnoteReference"><span><!--[if !supportFootnotes]--><span class="MsoEndnoteReference"><span style="font-size: 10pt; font-family: ">[1]</span></span><!--[endif]--></span></span></a> For clarity, in this and future articles I will try to consistently refer to a specific collection of knowledge as a <em>knowledge base</em> (KB), and to the system that contains this knowledge, with some support for search and inference, as the <em>knowledge-base system</em> (KBS).<span> </span>Informally, it is common to refer to both with the term &#8220;knowledge base&#8221; – similar to the practice in the database world.</p>
</div>
<div id="edn2">
<p class="MsoEndnoteText"><a name="_edn2" href="#_ednref2"><span class="MsoEndnoteReference"><span><!--[if !supportFootnotes]--><span class="MsoEndnoteReference"><span style="font-size: 10pt; font-family: ">[2]</span></span><!--[endif]--></span></span></a> See William A. Woods, &#8220;What&#8217;s in a Link: Foundations for Semantic Networks&#8221;. In D. Bobrow and A. Collins (eds.), <em>Representation and Understanding: Studies in Cognitive Science</em>, New York: Academic Press, 1975.</p>
</div>
<div id="edn3">
<p class="MsoEndnoteText"><a name="_edn3" href="#_ednref3"><span class="MsoEndnoteReference"><span><!--[if !supportFootnotes]--><span class="MsoEndnoteReference"><span style="font-size: 10pt; font-family: ">[3]</span></span><!--[endif]--></span></span></a> An excellent account of some of these problems can be found in Chapter 3 of<span> </span>Steven Pinker&#8217;s <em><a href="http://pinker.wjh.harvard.edu/books/stuff/index.html">The Stuff of Thought</a></em>, Viking Press, 2007.</p>
</div>
<div id="edn4">
<p class="MsoEndnoteText"><a name="_edn4" href="#_ednref4"><span class="MsoEndnoteReference"><span><!--[if !supportFootnotes]--><span class="MsoEndnoteReference"><span style="font-size: 10pt; font-family: ">[4]</span></span><!--[endif]--></span></span></a> Their effort now seems to have broadened to encompass both raw-English representations and more structured ones.</p>
</div>
<div id="edn5">
<p class="MsoEndnoteText"><a name="_edn5" href="#_ednref5"><span class="MsoEndnoteReference"><span><!--[if !supportFootnotes]--><span class="MsoEndnoteReference"><span style="font-size: 10pt; font-family: ">[5]</span></span><!--[endif]--></span></span></a> Many knowledge-base systems, such as<span style="color: red;"> <a href="http://www.cyc.com/">Cyc</a></span>, use distinct link-types for &#8220;is a kind of&#8221; and &#8220;is an instance of&#8221;.<span> </span>In Scone we just use &#8220;is-a&#8221; for both of these, since these link-types behave in very similar ways. The type/instance distinction is represented in a different way.</p>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://sef-linux.radar.cs.cmu.edu/nuggets/?feed=rss2&amp;p=33</wfw:commentRss>
		</item>
		<item>
		<title>Human-Like Memory Capabilities</title>
		<link>http://sef-linux.radar.cs.cmu.edu/nuggets/?p=32</link>
		<comments>http://sef-linux.radar.cs.cmu.edu/nuggets/?p=32#comments</comments>
		<pubDate>Tue, 17 Jun 2008 19:09:45 +0000</pubDate>
		<dc:creator>Scott Fahlman</dc:creator>
		
		<category><![CDATA[AI]]></category>

		<category><![CDATA[KR Issues]]></category>

		<guid isPermaLink="false">http://sef-linux.radar.cs.cmu.edu/nuggets/?p=32</guid>
		<description><![CDATA[In an earlier article, &#8220;AI: What&#8217;s Missing&#8220;, I listed several capabilities that are missing from current AI systems – capabilities that must somehow be provided before our systems will be able to exhibit anything approaching general, human-like intelligence. Perhaps the most important of these, because it interacts with several others, is &#8220;The ability to assimilate [...]]]></description>
			<content:encoded><![CDATA[<p class="MsoNormal">In an earlier article, &#8220;<a href="http://sef-linux.radar.cs.cmu.edu/nuggets/?p=29">AI: What&#8217;s Missing</a>&#8220;, I listed several capabilities that are missing from current AI systems – capabilities that must somehow be provided before our systems will be able to exhibit anything approaching general, human-like intelligence.<span> </span>Perhaps the most important of these, because it interacts with several others, is <em>&#8220;<strong><span style="font-weight: normal;">The ability to assimilate and store large amounts of symbolic knowledge and to make that knowledge effective.&#8221;</span></strong></em><strong><span style="font-weight: normal;"><span> </span>In this article, we will explore what it means when we talk about “human-like” intelligence and “human-like” memory.</span></strong><strong></strong></p>
<p class="MsoNormal">A key point: when I speak of human-like intelligence, I am talking about human-like <em>capabilities</em>, not necessarily human-like <em>implementation</em>.<span> </span>I want to focus on the breadth, flexibility, and the amazing search and inference capabilities of human memory, and not necessarily on how this is implemented in the marvelous pile of neuro-stuff that is the human brain.<span> </span>If we could understand the general principles and mechanisms of human memory, at some level of abstraction, that would guide us both in trying to understand what the structures of the brain are doing, and also in trying to implement similar capabilities using the very different electronic hardware that is available today – or it would tell us what kind of hardware we really need in order to do this job.</p>
<p class="MsoNormal">So I suggest that we – some of us, anyway – approach this problem not as neuroscientists or as cognitive psychologists, but as computer scientists: Here is what the system must do; we know that this is possible (humans can do it), so what algorithms, data structures, and organizing principles are required to do the job?<span> </span>Oh, and as computer scientists, we must understand this well enough to implement it – no hand-waving or vague metaphors about shadows on the wall of a cave are allowed in our final theory, though we might make good use of metaphorical reasoning along the way.<span> </span>That is the challenge.</p>
<p class="MsoNormal">Note that it’s possible – some would say probable, in this case – that we will come up with models that cannot be implemented, in any practical sense, on today’s computing hardware.<span> </span>That’s OK.<span> </span>But if we come up with the answer that the problem is computationally impossible or intractable in some fundamental way, we need to look again at how we are framing the problem, because <em>at least one solution exists</em>.</p>
<p class="MsoNormal">(Well, the brain could be using magic or some as-yet-undiscovered kind of physics, but we should only accept that conclusion if we’re absolutely certain, through proof or exhaustive search, that no solution exists in computation as we know it.<span> </span>And, today, we are very far from being able to make that claim, despite the ravings of some dilettante physicists and mathematicians who have wandered into the field.)</p>
<p class="MsoNormal">When I say that we are focused on the capabilities of human memory and not on implementation, I don’t mean to suggest that we should ignore the findings if neuroscientists and cognitive psychologists, just that we should not be constrained by them.<span> </span>There may be many possible ways to build a human-like memory, but at present we have only one example, so we should learn what we can from it.<span> </span>A few examples:</p>
<p class="MsoNormal" style="margin-left: 0.25in; text-indent: -0.25in;"><!--[if !supportLists]--><strong><span style="font-family: Symbol;"><span>·<span style="font-family: "> </span></span></span></strong><!--[endif]-->The brain <em>apparently</em> does what it does using millisecond-speed components (neuron firings and protein bindings), but with a huge degree of parallelism.<span> </span>So that’s a clue.<span> </span></p>
<p class="MsoNormal" style="margin-left: 0.25in; text-indent: -0.25in;"><!--[if !supportLists]--><strong><span style="font-family: Symbol;"><span>·<span style="font-family: "> </span></span></span></strong><!--[endif]-->While access to the human memory is fast, creating new memories is much slower, at least in the long-term, symbolic part of memory – maybe one or a few new items can be permanently saved per second.<span> </span></p>
<p class="MsoNormal" style="margin-left: 0.25in; text-indent: -0.25in;"><!--[if !supportLists]--><strong><span style="font-family: Symbol;"><span>·<span style="font-family: "> </span></span></span></strong><!--[endif]-->In humans (especially in aging computer science professors) some memories just vanish, but for many more we seem to lose some of the access threads, or these become inactive until something “reminds” us of the item we are looking for; then we can easily repair the thread.<span> </span>I might be able to picture a certain actor who has appeared in recent pirate movies and remember a dozen other movies he has been in, but be unable to access his name until someone says, “Rhymes with ‘strep’.”<span> </span>(We might prefer to construct an artificial intelligence without this partial-forgetting phenomenon, making it super-human in that respect.<span> </span>That might work, or we might find that this decay of access paths is not a hardware limitation, but that it is somehow essential to the operation of a human-like memory.)</p>
<p class="MsoNormal">So what are the important aspects of human-like symbolic<a name="_ednref1" href="#_edn1"><span class="MsoEndnoteReference"><span><!--[if !supportFootnotes]--><span class="MsoEndnoteReference"><span style="font-size: 12pt; font-family: ">[1]</span></span><!--[endif]--></span></span></a> memory that I am so eager to capture?<span> </span>Let me try to illustrate the problem here with an example or two, and in a near-future article I will try to enumerate some particular abilities and features.<span> </span>Here is a description I&#8217;ve been using for a long time, in various forms.<span> </span>It first appeared in my 1977 Ph.D. thesis<a name="_ednref2" href="#_edn2"><span class="MsoEndnoteReference"><span><!--[if !supportFootnotes]--><span class="MsoEndnoteReference"><span style="font-size: 12pt; font-family: ">[2]</span></span><!--[endif]--></span></span></a> at the MIT AI Lab:</p>
<p class="MsoNormal"><em>Suppose I tell you that a certain animal – let&#8217;s call him </em><em>Clyde</em><em> – is an elephant.<span> </span>You accept this simple assertion and file it away with no apparent display of mental effort.<span> </span>And yet, as a result of this transaction, you suddenly appear to know a great deal about </em><em>Clyde</em><em>.<span> </span>You can tell me, with a fair degree of certainty, how many legs he has, what color he is, and whether he would be a good pet in a small third-floor apartment.<span> </span>You know not only that he has eyes, but what they are used for, and what it implies if they are closed.<span> </span>If I try to tell you that </em><em>Clyde</em><em> builds his nest in a tree or that he amuses himself by hiding in a teacup, you will immediately begin to doubt my credibility.<span> </span>And you can do this very quickly and easily, with none of the sort of apparent mental effort that would accompany, say, adding two four-digit numbers.<span> </span>This effortlessness may be an illusion, but it is a compelling one.</em></p>
<p class="MsoNormal"><em>“Elephant”, of course, is not the only concept that behaves in this way.<span> </span>The average person knows a huge number of concepts of comparable or greater complexity – the number is probably in the millions.<span> </span>Consider for a moment the layers of structure and meaning that are attached to concepts like lawsuit, birthday party, fire, mother, walrus, cabbage, or king.<span> </span>These are words we use casually in our daily lives, and yet each of them represents a very substantial package of information.<span> </span>In technical fields (except, perhaps, for the more austere parts of mathematics, the situation is the same.<span> </span>Consider how much you would have to tell someone in order to fully convey the meaning of concepts like meson, oscillator, hash-table, valence, ribosome, or leukemia.<span> </span>And yet, once these concepts are built up, they can be tossed around with abandon and can be used as the building blocks for concepts of even grater complexity.</em></p>
<p class="MsoNormal"><em>The point is not just that we can handle large chunks of knowledge as though they were atoms; the important thing is that we can find our way through these complex, nested structures to whatever fact or relationship we might need at any given time, that we can do this in a very flexible way, and that we can somehow avoid having to look individually at each of the vast number of facts that could be – but are not – relevant to the problem at hand.<span> </span>If I tell you that a house burned down, and that the fire started at a child’s birthday party, you will think immediately of the candles on the cake and perhaps of paper decorations.<span> </span>You will not, in all probability, find yourself thinking about playing pin-the-tail-on-the-donkey, or about the color of the cake’s icing or about the fact that birthdays come once a year.<span> </span>These concepts are there when you need them, but they do not seem to slow down the search for a link between fires and birthday parties.<span> </span>If, hidden away somewhere, there is a sequential search for this connection, that search is remarkably quick and efficient, and it does not become noticeably slower as the knowledge base expands to its adult proportions.</em></p>
<p class="MsoNormal">So that’s the challenge, as I see it: To build a memory system or knowledge base that can support operations of this kind, on a very large scale, and that gives us access not only to the knowledge that is <em>explicitly</em> present, but the much larger body of knowledge that is <em>implicitly</em> present.<span> </span>This <em>active knowledge base</em> is not, by itself, an intelligent system, but it is the key missing piece – the piece that ties together our sensory systems, higher-level problem-solving modules, natural language processing, and all of our experiences: past, present, and imagined-future.</p>
<p class="MsoNormal">In future articles we will try to break down this problem and will begin to explore how we might implement a system of this kind.</p>
<div>
<hr size="1" /><!--[endif]--></p>
<div id="edn1">
<p class="MsoEndnoteText"><a name="_edn1" href="#_ednref1"><span class="MsoEndnoteReference"><span><!--[if !supportFootnotes]--><span class="MsoEndnoteReference"><span style="font-size: 10pt; font-family: ">[1]</span></span><!--[endif]--></span></span></a> I am not suggesting that <em>symbolic</em> memory – the things we humans can easily describe in natural language – is all that there is.<span> </span>I’ll have more to say about visual, sound, and motor memory in future articles.<span> </span>But, for now, I think that it’s best to focus on the most accessible and familiar part of our memory.</p>
</div>
<div id="edn2">
<p class="MsoEndnoteText"><a name="_edn2" href="#_ednref2"><span class="MsoEndnoteReference"><span><!--[if !supportFootnotes]--><span class="MsoEndnoteReference"><span style="font-size: 10pt; font-family: ">[2]</span></span><!--[endif]--></span></span></a> Reprinted in book form by MIT Press:<span> </span><em><a href="http://mitpress.mit.edu/catalog/item/default.asp?ttype=2&amp;tid=9750">NETL: A System for Representing and Using Real-World Knowledge</a><span style="font-style: normal;">, Scott E. Fahlman, 1979.  In addition, there&#8217;s a scanned version of the tech-report form of the thesis online at <a title="ftp://publications.ai.mit.edu/ai-publications/pdf/AITR-450.pdf" href="ftp://publications.ai.mit.edu/ai-publications/pdf/AITR-450.pdf" target="_blank">ftp://publications.ai.mit.edu/ai-publications/pdf/AITR-450.pdf</a>.</span><a href="http://mitpress.mit.edu/catalog/item/default.asp?ttype=2&amp;tid=9750"><span style="font-style: normal;"><br />
</span></a></em></p>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://sef-linux.radar.cs.cmu.edu/nuggets/?feed=rss2&amp;p=32</wfw:commentRss>
		</item>
		<item>
		<title>Mini-Nuggets: Natural Language Understanding</title>
		<link>http://sef-linux.radar.cs.cmu.edu/nuggets/?p=31</link>
		<comments>http://sef-linux.radar.cs.cmu.edu/nuggets/?p=31#comments</comments>
		<pubDate>Mon, 12 May 2008 17:25:33 +0000</pubDate>
		<dc:creator>Scott Fahlman</dc:creator>
		
		<category><![CDATA[Natural Language]]></category>

		<guid isPermaLink="false">http://sef-linux.radar.cs.cmu.edu/nuggets/?p=31</guid>
		<description><![CDATA[
Sometimes it is useful to post an article that is just a collection of mini-nuggets: a set of propositions, perhaps with some minimal explanation for each, on a given topic. The idea is to sketch out an overall approach or point of view quickly, without getting bogged down in a lot of detail or in [...]]]></description>
			<content:encoded><![CDATA[<p class="MsoNormal"><img style="border: 5px solid black; vertical-align: text-top; margin: 5px;" src="http://sef-linux.radar.cs.cmu.edu/nuggets/images/Rainbow.JPG" alt="Rainbow" width="512" height="451" /></p>
<p class="MsoNormal">Sometimes it is useful to post an article that is just a collection of <em>mini-nuggets</em>: a set of propositions, perhaps with some minimal explanation for each, on a given topic.<span> </span>The idea is to sketch out an overall approach or point of view quickly, without getting bogged down in a lot of detail or in lengthy justification.<span> </span>We can always come back later to fill in more detail, point by point.</p>
<p class="MsoNormal">This article concerns the Scone research group&#8217;s overall approach to natural language understanding.<span> </span>Some bits of this approach have been implemented in the natural-language tools we are building as a front end for the Scone knowledge-base system, but much of it is still planned or &#8220;under construction&#8221;. <span> </span>In any case, it seems useful to produce some kind of roadmap, even if it&#8217;s crude, general, incomplete, and subject to later revision.</p>
<p class="MsoNormal">I should mention that, while most of the points listed here seem obvious to me, many of them are controversial.<span> </span>Others may be generally accepted by researchers in language understanding, but not generally acted upon – that is, other researchers may agree that these are good ideas for the distant future, but in the meantime they feel it is more practical to follow some other path.</p>
<p class="MsoNormal">I should also mention that, in many cases, my rationale for favoring these propositions is rooted in introspection – what I can observe (or think I can observe) about how <em>I</em> handle various issues in language.<span> </span>Psychologists and linguists are justifiably wary of introspection arguments, which have often been shown to be incorrect or at least misleading.<span> </span>For example, introspection would suggest that multiplying two large numbers is computationally more demanding than vision or speech understanding, and we now know that is false – very false.<span> </span>However, when solid experimental information is lacking, I have found introspection to be a very powerful source of &#8220;search-guiding heuristics&#8221;, as we say in AI.<span> </span>A heuristic is a hint that gives us some guidance about where the good answers may be hiding in a large and confusing space of possibilities.</p>
<p class="MsoNormal">So: nobody should just accept these propositions as proven fact or even as a consensus within the field. <span> </span>I&#8217;m just trying to indicate my own best guesses, as of today, about the approaches that are most likely to lead to success.<span> </span>And I&#8217;m trying to show what part of the space my group is working in, thus providing some context for related posts that will come later.</p>
<p class="MsoNormal">One final point: I don’t claim that the point of view presented here is original or unique, though it is some distance from the current mainstream of natural-language research.<span> </span>These ideas have been gathered from many sources over the years, and in most cases it is hard for me to reconstruct the influences that went into this view.<span> </span>The work of Chris Riesbeck and his student Kevin Livingston on the DMAP system is pretty close in spirit to what we are doing.<a name="_ednref1" href="#_edn1"><span class="MsoEndnoteReference"><span><!--[if !supportFootnotes]--><span class="MsoEndnoteReference"><span style="font-size: 12pt; font-family: ">[1]</span></span><!--[endif]--></span></span></a></p>
<p class="MsoNormal">In case you’re wondering, the photo is of Rainbow the Guinea Pig, who is hereby designated as the patron saint of mini-nuggets.<span> </span>She produces them much faster than I can.<span> </span>OK, on with the show…</p>
<p class="MsoNormal" style="margin-left: 0.25in; text-indent: -0.25in;"><!--[if !supportLists]--><span style="font-size: 14pt; font-family: Symbol;"><span>·<span style="font-family: "> </span></span></span><!--[endif]--><strong>The key problem is natural language understanding (NLU) – that is, converting spoken or written language to some language-independent, concept-based internal form that is easy to reason about. <span> </span><span> </span></strong>There are plenty of other natural-language problems one could work on, without going all the way to meaning, but NLU is the heart of the monster.<span> </span>If we don&#8217;t extract and represent the meaning, we can never understand the item well enough to answer questions, draw conclusions, or learn new deep knowledge from the text or speech.<span> </span>And if we do handle NLU, all the other natural-language applications – classification, summarization, even parsing – either fall out or can be done in a deeper and less brittle way.<span> </span>The NLU problem is difficult, but ultimately there is no way around it.</p>
<p class="MsoNormal" style="margin-left: 0.25in; text-indent: -0.25in;"><!--[if !supportLists]--><span style="font-size: 14pt; font-family: Symbol;"><span>·<span style="font-family: "> </span></span></span><!--[endif]--><strong>The knowledge base must be a full partner in NLU, not just a place where you store the output of language processing. </strong><span> </span><span> </span>As I argued in a <a href="http://sef-linux.radar.cs.cmu.edu/nuggets/?p=26">previous article</a>, the language fragment itself contains only a minimal amount of information; in order to make sense of it, the listener must combine what was said with a large body of background information that is assumed to be known by both the speaker and the listener.</p>
<p class="MsoNormal" style="margin-left: 0.25in; text-indent: -0.25in;"><!--[if !supportLists]--><span style="font-size: 14pt; font-family: Symbol;"><span>·<span style="font-family: "> </span></span></span><!--[endif]--><strong>Syntax is important – but mostly as a tie-breaker for possible meanings.<span> </span></strong>For decades, a lot of NL researchers have focused on syntax and parsing, in part because of the influence of Noam Chomsky, and in part because this is an easier place to start than going after meaning.<span> </span>But syntax is just a tool, providing some hints about how a linear string of words should be folded into a tangled meaning network whose structure is far from linear.<span> </span>Syntax does play an important role in language: &#8220;Dog bites man&#8221; is different in meaning from &#8220;Man bites dog&#8221;, and syntax (or at least word-order) is the only difference between these two fragments.<span> </span>But an utterance like &#8220;You me lunch pizza tomorrow&#8221; is generally understandable, despite the almost complete lack of syntax.<span> </span>Meaning is doing all the work here: understanding how these words fit together into a larger structure would be impossible if &#8220;lunch&#8221; and &#8220;pizza&#8221; and &#8220;tomorrow&#8221; were concepts whose meanings were unknown to the listener.</p>
<p class="MsoNormal" style="margin-left: 0.25in; text-indent: -0.25in;"><!--[if !supportLists]--><span style="font-size: 14pt; font-family: Symbol;"><span>·<span style="font-family: "> </span></span></span><!--[endif]--><strong>We want our NLU techniques to work well with non-grammatical text and speech.<span> </span></strong>Linguists seem to be endlessly fascinated by the question of whether or not a sentence is correctly formed – in most of their papers, ill-formed sentences are consistently marked with the &#8220;asterisk of shame&#8221;.<span> </span>While it is interesting that people seem to be able to make consistent and confident correctness judgments about sentences (even if they speak a non-standard dialect of their language, so their judgement differs from that of the “experts”), that&#8217;s not nearly as important to us as the ability to extract as much meaning as possible, even from ill-formed utterances.</p>
<p class="MsoNormal" style="margin-left: 0.25in;">Recently, members of my research group have been working on understanding free-text fields in patient medical records.<span> </span>These are either hastily scribbled notes or notes that were hastily dictated and later transcribed by personnel with limited medical training. <span> </span>It is interesting that in a corpus of 100 such notes, there are only a few complete grammatical sentences.<span> </span>And yet other readers with medical training can almost always make sense of what the author was trying to say.<span> </span>That, I think, is the more interesting challenge.<strong></strong></p>
<p class="MsoNormal" style="margin-left: 0.25in; text-indent: -0.25in;"><!--[if !supportLists]--><span style="font-size: 14pt; font-family: Symbol;"><span>·<span style="font-family: "> </span></span></span><!--[endif]--><strong>When in doubt, guess and go on, but be ready to backtrack and try again.<span> </span></strong>A lot of NLP systems are organized as a strict pipeline: tokenization, morphology, parsing, and <em>then</em> semantic analysis (meaning), with no backtracking allowed.<span> </span>Other functions, such as spelling correction, ambiguity resolution, and reference resolution, may also be broken out into separate modules. I think that this one-way-flow approach is a bad one.<span> </span>In a strict pipeline, the upstream modules lack the information they need in order to come up with the best single result; instead, they must assemble and pass forward a data structure that lists all the &#8220;live&#8221; possibilities, with some sort of score for each.<span> </span>Then the downstream modules can narrow the list, throwing away the possibilities that don&#8217;t work at their level.<span> </span>The problem is that this data structure can grow to huge size, since the uncertainties tend to multiply.<span> </span>It is possible to come up with an efficient encoding for that large data structure, but the cost of encoding and decoding can be very high.</p>
<p class="MsoNormal" style="margin-left: 0.25in;">A better approach, I think, is for the upstream module to engage in a brief conversation with the downstream semantics (or knowledge base) module, trying to gather the information it needs in order to make a choice.<span> </span>And then it should just produce its best guess and pass that on.<span> </span>That guess will sometimes be wrong, so the upstream module must be ready to receive an error message kicked back from downstream: &#8220;That guess doesn&#8217;t work (for some specific reason).<span> </span>Please try again.&#8221;<span> </span>Implementing this loose, flexible control structure, supporting what we call <em>non-local backtracking</em>, does impose some cost, but I believe that this will be far less than the cost of building, passing forward, and unpacking a whole package of possibilities so that the upstream modules can wash their hands of any further responsibility.<span> </span>In most cases, the initial guess will turn out to be the right one, so “guess and go” can be very efficient.</p>
<p class="MsoNormal" style="margin-left: 0.25in; text-indent: -0.25in;"><!--[if !supportLists]--><span style="font-size: 14pt; font-family: Symbol;"><span>·<span style="font-family: "> </span></span></span><!--[endif]--><strong>Probably something like a Construction Grammar is the best tool for handling syntax, given our goals and general approach.<span> </span></strong><span> </span>Think of a construction as a pattern to be matched against the incoming text – a sequence of certain specific words and some variables that are restricted as to the syntactic type and/or the semantic category of the filler:<span> </span><strong>( ?X{person} kicks ?Y{physical object})</strong>.<span> </span>When the construction is matched, it can produce some new structure in the knowledge base or a new composite language-object (e.g. a noun phrase) that can be matched by some other construction.<span> </span>Or it can initiate some processing, for example to resolve an ambiguity or to choose between two matching constructions.<span> </span>Or all of the above.</p>
<p class="MsoNormal" style="margin-left: 0.25in;">Construction grammars seem to be a good fit for us for several reasons: they can process language fragments in a bottom-up way, instead of insisting on having a correct and<span> </span>complete sentence; we can easily create special constructions to represent idiosyncratic or non-grammatical constructs that we encounter frequently; the matching (or potential matching) of a construction is a good time for us to check with the knowledge base to see if the emerging meaning makes sense; and the proponents of construction grammar tend to view language learning mostly as a process of bottom-up generalization, starting with specific utterances that have been encountered and then trying collect these into more general patterns.</p>
<p class="MsoNormal" style="margin-left: 0.25in;">Charles Fillmore and George Lakoff are often credited as the pioneers of construction grammars.<span> </span>A good treatment of<span> </span>CG, and of learning constructions by generalization, is the book <em><a href="http://www.amazon.com/Constructions-Work-Nature-Generalization-Language/dp/0199268525/ref=pd_bxgy_b_text_b/103-5920374-5239849">Constructions at Work</a></em> by Adele E. Goldberg.<span> </span>There are many variations on this theme: some of my students are fans of Radical Construction Grammar, a version proposed by William A. Croft; as of now, I’m agnostic about all these variations – I’m happy to go with whatever we can get working.</p>
<p class="MsoNormal" style="margin-left: 0.25in; text-indent: -0.25in;"><!--[if !supportLists]--><span style="font-size: 14pt; font-family: Symbol;"><span>·<span style="font-family: "> </span></span></span><!--[endif]--><strong>Robust speech understanding depends on knowledge.<span> </span></strong>There is currently a lot of work on improving the signal-processing levels of speech understanding systems with the goal of making these systems more robust under noisy conditions.<span> </span>Any progress on that front is welcome, but I believe that future improvement in this area is more likely to come from the application of knowledge.<a name="_ednref2" href="#_edn2"><span class="MsoEndnoteReference"><span><!--[if !supportFootnotes]--><span class="MsoEndnoteReference"><span style="font-size: 12pt; font-family: ">[2]</span></span><!--[endif]--></span></span></a><span> </span>The reason I can make out what someone is saying in a very noisy environment – so noisy that some words are completely obliterated – is that I usually can predict what a person is likely to say next.<span> </span>And if I think I have heard (or deduced) what the person said, I can immediately sanity-check my understanding against the current conversational context and my extensive background knowledge.<span> </span>If my interpretation doesn&#8217;t make sense in meaning-space, I can go back to the signal-processing level and ask it to come up with some other hypotheses.</p>
<p class="MsoNormal" style="margin-left: 0.25in; text-indent: -0.25in;"><!--[if !supportLists]--><span style="font-size: 14pt; font-family: Symbol;"><span>·<span style="font-family: "> </span></span></span><!--[endif]--><strong>Process the text or speech eagerly, in order of arrival.<span> </span></strong>This proposition is based on introspection, though I suspect that it would be easy to confirm this experimentally – that may already have been done.</p>
<p class="MsoNormal" style="margin-left: 0.25in;">I have a very strong sense that I am processing a speech stream more or less as it arrives, rather than waiting until a whole sentence is in hand so that I can apply a more global, top-down style of analysis.<span> </span>I have the same sense when I am reading text: I process English text left-to-right as I read it.<span> </span>The processing may lag the input by a few words, so that we can work at the phrase level rather than the word level.<span> </span>We will occasionally be forced to defer processing of some phrase until we get more information, but I think that we human listeners do as much processing as we can, as soon as we can.<span> </span>This seems like the best strategy if we want to follow the previous advice about robust speech, using background knowledge to help us identify and sanity-check the words we hear them.</p>
<p class="MsoNormal" style="margin-left: 0.25in;">A quick example.<span> </span>Here comes some text from a recipe, with the processing indicated by the comments in italics:<span> </span><strong>&#8220;In a bowl…&#8221;</strong><span> </span><em>OK, we&#8217;ve got a container here – a place where something is going to happen.<span> </span>The action or event is probably coming next. </em><strong><span> </span>&#8220;…mix together…&#8221;</strong><span> </span><em>OK, the action of mixing of ingredients often takes place in a bowl, so that fits our expectation.<span> </span>We&#8217;re probably going to get a list of ingredients next.</em><span> </span><strong>&#8220;…the flour, salt, and sugar.&#8221;</strong><span> </span><em>Here&#8217;s the list we were expecting. <span> </span>As discussed in an <a href="http://sef-linux.radar.cs.cmu.edu/nuggets/?p=30">earlier post</a>, the word &#8216;the&#8217; indicates that we should already know what measures of flour, sugar, and salt are being referred to here.<span> </span>Probably these ingredients were listed, with the quantity of each, at the start of the recipe.<span> </span>Check whether we have seen this list.<span> </span><strong><span> </span></strong></em><strong>&#8220;Stir it gently.&#8221;</strong><span> </span><em>The word &#8216;it&#8221; here must refer to the mixture in the bowl – the stuff being stirred.<span> </span>The knowledge base knows that stirring is a kind of mixing, and now we&#8217;re being told more about the manner of the mixing.</em></p>
<p class="MsoNormal" style="margin-left: 0.25in;">And so it goes.<span> </span>In addition to trying to resolve the referents for various phrases as we go along, the eager processor may also be asking &#8220;Why is the speaker telling me this?&#8221; and &#8220;Do I believe it?&#8221;</p>
<p class="MsoNormal" style="margin-left: 0.25in; text-indent: -0.25in;"><!--[if !supportLists]--><span style="font-size: 14pt; font-family: Symbol;"><span>·<span style="font-family: "> </span></span></span><!--[endif]--><strong>To fully represent the &#8220;meaning payload&#8221; of natural language we need a representation significantly more expressive than first-order logic (FOL).<span> </span></strong>We will have a lot more to say about this in future articles.<span> </span>For now I&#8217;ll just say that things like the temporal site of an action (indicated by verb tense), intention, belief, supposition, and meta-information about whether we believe a given statement all rely on mechanisms in Scone that lie outside the domain of conventional first-order logic, and far outside the realm of description logics such as OWL.</p>
<p class="MsoNormal" style="margin-left: 0.25in; text-indent: -0.25in;"><!--[if !supportLists]--><span style="font-size: 14pt; font-family: Symbol;"><span>·<span style="font-family: "> </span></span></span><!--[endif]--><strong>Linguistic knowledge is distinct from world-knowledge, but it can be stored using the same knowledge-base mechanisms.</strong><span> </span>The world-knowledge representations used in Scone are expressed in terms of concepts and relations, independent of how they are described in any human language.<span> </span>These are organized in a multiple-inheritance type hierarchy with exceptions.<span> </span>A Scone concept may be linked to one or more names (words or phrases) in English, and to additional names in other languages and dialects.<span> </span>These, too, live in a type hierarchy, but a different one:<span> </span>an action-verb is a verb is a word, and so on.</p>
<p class="MsoNormal" style="margin-left: 0.25in;">The name/meaning relation is many-to-many: even within a single language, an object may have many names, and a word may have many meanings.<span> </span>Similarly, larger linguistic patterns (e.g. construction grammar patterns) may be stored in the knowledge base, occupying their own multiple-inheritance taxonomy.<span> </span>&#8220;X kicks the bucket&#8221; is a kind of &#8220;X kicks Y&#8221;, but it is more specialized and, in this case, produces a different meaning.</p>
<p class="MsoNormal" style="margin-left: 0.25in; text-indent: -0.25in;"><!--[if !supportLists]--><span style="font-size: 14pt; font-family: Symbol;"><span>·<span style="font-family: "> </span></span></span><!--[endif]--><strong>Ideally, we would like to use the same body of language knowledge for understanding and for generation.</strong> <strong><span> </span></strong>I&#8217;m not sure if we can do that efficiently, but it would certainly be a waste of space if we had separate knowledge structures for understanding and for speaking.<span> </span>In addition, if the input and output structures were distinct, we would have to worry about keeping them in synch.</p>
<div><!--[if !supportEndnotes]--></p>
<hr size="1" /><!--[endif]--></p>
<div id="edn1">
<p class="MsoEndnoteText"><a name="_edn1" href="#_ednref1"><span class="MsoEndnoteReference"><span><!--[if !supportFootnotes]--><span class="MsoEndnoteReference"><span style="font-size: 10pt; font-family: ">[1]</span></span><!--[endif]--></span></span></a> Livingston, K., and Riesbeck, C. K. (2007). <a href="http://cs.northwestern.edu/~livingston/papers/iui10700f-livingston.pdf">Knowledge Acquisition from Simplified Text</a>, In Proceedings of International Conference on Intelligent User Interfaces 2007 (IUI&#8217;07), Honolulu,  Hawaii, USA, January, 2007.</p>
</div>
<div id="edn2">
<p class="MsoEndnoteText"><a name="_edn2" href="#_ednref2"><span class="MsoEndnoteReference"><span><!--[if !supportFootnotes]--><span class="MsoEndnoteReference"><span style="font-size: 10pt; font-family: ">[2]</span></span><!--[endif]--></span></span></a> Actually, improved signal processing and the use of knowledge are complementary approaches, so we do not have to choose between them.</p>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://sef-linux.radar.cs.cmu.edu/nuggets/?feed=rss2&amp;p=31</wfw:commentRss>
		</item>
		<item>
		<title>An Article About Articles</title>
		<link>http://sef-linux.radar.cs.cmu.edu/nuggets/?p=30</link>
		<comments>http://sef-linux.radar.cs.cmu.edu/nuggets/?p=30#comments</comments>
		<pubDate>Tue, 29 Apr 2008 15:07:42 +0000</pubDate>
		<dc:creator>Scott Fahlman</dc:creator>
		
		<category><![CDATA[Natural Language]]></category>

		<guid isPermaLink="false">http://sef-linux.radar.cs.cmu.edu/nuggets/?p=30</guid>
		<description><![CDATA[In an earlier article, I argued that natural language is really all about meaning. There are many things you can do with natural language that stop short of trying to extract and represent what the words and sentences actually mean. Some of these knowledge-free applications are of great practical value, but they are all dancing [...]]]></description>
			<content:encoded><![CDATA[<p class="MsoNormal">In an <a href="http://sef-linux.radar.cs.cmu.edu/nuggets/?p=26">earlier article</a>, I argued that natural language is really all about meaning.<span> </span>There are many things you can do with natural language that stop short of trying to extract and represent what the words and sentences actually <em>mean</em>.<span> </span>Some of these knowledge-free applications are of great practical value, but they are all dancing around the periphery of real understanding.<span> </span>They ignore the key issue at the center of the enterprise – the very purpose of human language: conveying a chunk of meaning from one mind to another.</p>
<p class="MsoNormal">In this article, I would like to expand that view just a bit: in addition to what a sentence (or other chunk of language) <em>means</em>, we must pay attention to what it <em>does</em>.<span> </span>That is, we must consider what inferences and procedures are triggered when a listener or reader encounters the utterance – that, too, is an important part of the payload.<span> </span>To illustrate what I mean by this, let&#8217;s consider a very simple and familiar example (at least to English speakers): the function of the definite and indefinite articles, &#8220;a&#8221;, &#8220;an&#8221;, and &#8220;the&#8221;.</p>
<p class="MsoNormal">Before we dive into this, let&#8217;s dispose of the &#8220;a&#8221; vs. &#8220;an&#8221; distinction.<span> </span>Functionally, these are really the same word.<span> </span><span> </span>We use one form or the other depending on the initial phoneme (pronunciation, not spelling) of the following word.<a name="_ednref1" href="#_edn1"><span class="MsoEndnoteReference"><span><!--[if !supportFootnotes]--><span class="MsoEndnoteReference"><span style="font-size: 12pt; font-family: ">[i]</span></span><!--[endif]--></span></span></a><span> </span>If a consonant sound comes next, use &#8220;a&#8221;; if a vowel sound, use &#8220;an&#8221;.<span> </span>So for the remainder of this article, we&#8217;ll just refer to &#8220;a&#8221; or &#8220;an&#8221;, and whatever we say of one will be true of the other.<span> </span>These are the so-called<em> indefinite </em>articles, while &#8220;the&#8221; is the <em>definite</em> article.<a name="_ednref2" href="#_edn2"><span class="MsoEndnoteReference"><span><!--[if !supportFootnotes]--><span class="MsoEndnoteReference"><span style="font-size: 12pt; font-family: ">[ii]</span></span><!--[endif]--></span></span></a></p>
<p class="MsoNormal">OK, what do these words <em>mean</em>?<span> </span>Well… nothing, really: they&#8217;re what we call &#8220;function words&#8221;.<span> </span>So let&#8217;s look at the function.</p>
<p class="MsoNormal">Suppose you say to me, &#8220;While I was walking home today, <em>the dog</em> attacked me.&#8221;<span> </span>The use of the definite article here is a signal that you expect me to know (or be able to figure out) what dog you&#8217;re talking about.<span> </span>My mental machinery should go to work and try to figure out which dog this is.<span> </span>If I can&#8217;t figure it out, I should ask you for a clarification: &#8220;Wait… what dog?&#8221;</p>
<p class="MsoNormal">I might defer this query for a while to see whether you&#8217;re about to provide me with enough additional information to solve this problem: the next sentence fragment might be &#8220;… you know – that vicious schnauzer that lives next door.&#8221; <span> </span>But I don&#8217;t want to defer the clarification for too long – you have signaled that I am expected to know what dog you&#8217;re talking about, and your subsequent speech acts will assume that we&#8217;re both now focused on the same entity.<span> </span>When I finally do figure out what dog you mean, I might have to play catch-up on what you&#8217;ve been telling me, and if I wait too long my memory of your words may start to overflow or evaporate.<span> </span>(Then again, I might decide that I just don&#8217;t care what dog you&#8217;re talking about.)</p>
<p class="MsoNormal">The indefinite article behaves differently.<span> </span>Suppose you say, &#8220;While I was walking home today, <em>a dog</em> attacked me.&#8221;<span> </span>That&#8217;s a signal that you don&#8217;t expect me to know what dog you&#8217;re talking about.<span> </span>I&#8217;m supposed to create a new entity in my mental knowledge base – an instance of the type &#8220;dog&#8221; – and you&#8217;re probably going to tell me some additional information about this creature.<span> </span>(Otherwise, what you&#8217;re saying won&#8217;t be very interesting.)<span> </span>And, sure enough, such information arrives by the end of this sentence: this just-introduced dog has attacked you.<span> </span>From that I might deduce that you may have been injured, and that maybe we should both choose a different route in the future.</p>
<p class="MsoNormal">Once this new dog has been introduced and represented in the KB, you can then refer to this particular dog with the definite article: &#8220;The dog just wouldn&#8217;t stop.&#8221;<span> </span>You are now signaling that I should know what dog you mean, and unless there are other dogs in the conversation there should be no confusion.</p>
<p class="MsoNormal">I may later learn enough that I can equate this anonymous new dog with one I already have represented in my KB – a dog that I may already know something about: &#8220;I bet this dog is Chuckles, the ferocious miniature schnauzer, scourge of the neighborhood and relentless enemy of all mail-persons.&#8221;<span> </span>In Scone, we would use an EQ-link to equate the new dog-node to the existing &#8220;Chuckles&#8221; node, effectively merging the two stored descriptions.<span> </span>But at the time you say &#8220;a dog&#8221; you&#8217;re signaling that I&#8217;m not expected to identify dog.<span> </span>That will be your assumption as the conversation continues.</p>
<p class="MsoNormal">So these two little function words play a useful role in shaping descriptions and dialogs in English.<span> </span>Whenever we are referring to an anonymous member of some class, the use of a definite or indefinite article is mandatory in correct English.<span> </span>Of course, this being English, there are many odd exceptions to this rule, probably created to make life difficult for foreigners trying to learn the language.<span> </span>For example, in referring to a specific entity using a proper noun, we normally don&#8217;t include an article (&#8221;I&#8217;m going to Cuba.&#8221;)<span> </span>unless the name is some sort of collection (&#8221;I&#8217;m going to the Virgin Islands.&#8221;) – and the exceptions often have their own exceptions.<span> </span>The question of when to include or not to include an article seems to be one of the most difficult aspects of English for non-native speakers to master; the choice of which article to use, when you use one, seems not to be such a big problem.</p>
<p class="MsoNormal">It is interesting that the use of a definite or indefinite article is not mandatory (and may not even be possible) in other languages.<span> </span>Some languages indicate the same distinction with word order or morphology, but John McWhorter<a name="_ednref3" href="#_edn3"><span class="MsoEndnoteReference"><span><!--[if !supportFootnotes]--><span class="MsoEndnoteReference"><span style="font-size: 12pt; font-family: ">[iii]</span></span><!--[endif]--></span></span></a> reports that only about 20% of the world&#8217;s human languages consistently mark this distinction in an explicit way.<span> </span>In the non-marking languages, the listener may have to do some extra work to figure out whether the dog in question is one he is expected to know about, but usually this can be figured out from other cues; if not, and if the distinction is important, the speaker can use some special marker, often a form of the word &#8220;that&#8221;, to resolve the ambiguity, but this is not a mandatory part of the grammar.</p>
<p class="MsoNormal">The point of all this is that these articles, like many other &#8220;function words&#8221;, have no meaning in the usual sense, but that they provide some sort of guidance for the listener&#8217;s mental processing of the utterance.<span> </span>Pronouns and all sorts of other references may trigger similar bursts of processing as we try to make sense of what we are being told or what we are reading.</p>
<p class="MsoNormal">So, to reiterate: If we want to truly understand an utterance or piece of text, we must pay attention to what each fragment <em>means</em>, and also to what it <em>does</em>.</p>
<p class="MsoNormal">===================</p>
<p class="MsoNormal">
<div>
<hr size="1" /><!--[endif]--></p>
<div id="edn1">
<p class="MsoEndnoteText"><a name="_edn1" href="#_ednref1"><span class="MsoEndnoteReference"><span><!--[if !supportFootnotes]--><span class="MsoEndnoteReference"><span style="font-size: 10pt; font-family: ">[i]</span></span><!--[endif]--></span></span></a> Some authorities, especially in England, still maintain that we should use &#8220;an&#8221; with a pronounced but unstressed &#8220;h&#8221; sound:<span> </span>&#8220;This is an historical occasion.&#8221;<span> </span>In most dialects of English, the consonant-ness of this &#8220;h&#8221; is pretty weak, and at some time in the past this &#8220;h&#8221; sound was not pronounced at all in &#8220;accepted&#8221; upper-class English speech.<span> </span>In that context, &#8220;an historical&#8221; was appropriate, and somehow this usage got fossilized.<span> </span>To modern American ears, &#8220;an historical&#8221; sounds like an hilarious bit of pomposity.</p>
</div>
<div id="edn2">
<p class="MsoEndnoteText"><a name="_edn2" href="#_ednref2"><span class="MsoEndnoteReference"><span><!--[if !supportFootnotes]--><span class="MsoEndnoteReference"><span style="font-size: 10pt; font-family: ">[ii]</span></span><!--[endif]--></span></span></a> Interestingly, &#8220;the&#8221; is pronounced in two ways as well, depending on the context: &#8220;thə&#8221; (with an unstressed schwa sound) or &#8220;thee&#8221;, as in &#8220;the end&#8221;.<span> </span>But most English speakers are not conscious of this distinction because both forms of &#8220;the&#8221; are spelled the same way.</p>
</div>
<div id="edn3">
<p class="MsoEndnoteText"><a name="_edn3" href="#_ednref3"><span class="MsoEndnoteReference"><span><!--[if !supportFootnotes]--><span class="MsoEndnoteReference"><span style="font-size: 10pt; font-family: ">[iii]</span></span><!--[endif]--></span></span></a> <em><a href="http://www.amazon.com/Power-Babel-Natural-History-Language/dp/006052085X/ref=pd_bbs_sr_1?ie=UTF8&amp;s=books&amp;qid=1209190450&amp;sr=8-1">The Power of Babyl: A Natural History of Language</a></em>, John McWhorter, Perennial, 2001, pages 184-185.<span> </span>A fascinating book – highly recommended.</p>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://sef-linux.radar.cs.cmu.edu/nuggets/?feed=rss2&amp;p=30</wfw:commentRss>
		</item>
		<item>
		<title>AI: What&#8217;s Missing?</title>
		<link>http://sef-linux.radar.cs.cmu.edu/nuggets/?p=29</link>
		<comments>http://sef-linux.radar.cs.cmu.edu/nuggets/?p=29#comments</comments>
		<pubDate>Mon, 21 Apr 2008 07:36:21 +0000</pubDate>
		<dc:creator>Scott Fahlman</dc:creator>
		
		<category><![CDATA[AI]]></category>

		<guid isPermaLink="false">http://sef-linux.radar.cs.cmu.edu/nuggets/?p=29</guid>
		<description><![CDATA[We seem to be solving AI backwards. That is, the early triumphs of the field have all been examples of  what we consider to be mankind&#8217;s &#8220;higher&#8221; mental abilities – the things that we learn to do in college or grad school, or that we view as a sign of particular intellectual prowess: chess, [...]]]></description>
			<content:encoded><![CDATA[<p class="MsoNormal">We seem to be solving AI backwards.<span> </span>That is, the early triumphs of the field have all been<span> </span>examples of <span> </span>what we consider to be mankind&#8217;s &#8220;higher&#8221; mental abilities – the things that we learn to do in college or grad school, or that we view as a sign of particular intellectual prowess: chess, puzzle-solving, manipulating complex algebraic formulae (Macsyma), interpreting nuclear magnetic resonance spectrograms (Dendral), <span> </span>planning the best way to use the resources of a factory or a Mars rover, suggesting antibiotics and dosages for various bacterial infections (Mycin), calculating your income tax (Turbo Tax), and so on.<span> </span>All very impressive – but these programs are confined to narrow domains of expertise.<span> </span>As I noted in an <a href="http://sef-linux.radar.cs.cmu.edu/nuggets/?p=23">earlier article</a>, today&#8217;s AI systems still lack the common sense and the flexible problem-solving ability of a five-year-old child – or the sensory-motor capabilities of a rat.</p>
<p class="MsoNormal">Why is this the case?<span> </span>In retrospect, it is perhaps not too surprising.<span> </span>The problems that AI researchers have so far attacked successfully are the ones that we humans must work hard to solve.<span> </span>We are aware of each step in the process.<span> </span>We write textbooks and manuals that describe, in considerable detail, how to perform these tasks.<span> </span>These are serial, conscious behaviors.<span> </span>On the other hand, the problems that have proven to be the hardest for AI have been the things that we humans can do &#8220;without any mental effort&#8221;: recognizing an object, understanding a spoken sentence, understanding (and being able to answer questions about) a &#8220;simple&#8221; children&#8217;s story.  Whatever is going on when we do these things, we don&#8217;t have conscious access to it.</p>
<p class="MsoNormal">When we try to build machines and programs that do these jobs, we quickly discover how deep and complex these tasks really are.<span> </span>But the amazing thing is that we had to discover this.<span> </span>It&#8217;s not obvious to the five-year-old kid, reading or listening to a story about pigs, wolves, and construction materials, that he is doing something much harder (in some sense) than arithmetic or chess or interpreting nuclear magnetic resonance spectrograms.<span> </span>An awful lot of complex computation is going on as the kid makes sense of his story: sentences are being parsed, words are being disambiguated, motives and belief-states of the characters are being modeled, and so on, but the reader is mostly unaware of all this processing unless something goes wrong, or unless a partial solution pops up to the conscious level as a &#8220;flash of recognition&#8221;.<a name="_ednref1" href="#_edn1"><span class="MsoEndnoteReference"><span><!--[if !supportFootnotes]--><span class="MsoEndnoteReference"><span style="font-size: 12pt; font-family: ">[1]</span></span><!--[endif]--></span></span></a></p>
<p class="MsoNormal">In the early days of AI we were blissfully unaware that all this unconscious<a name="_ednref2" href="#_edn2"><span class="MsoEndnoteReference"><span><!--[if !supportFootnotes]--><span class="MsoEndnoteReference"><span style="font-size: 12pt; font-family: ">[2]</span></span><!--[endif]--></span></span></a> processing was going on.<span> </span>I think that this explains, in part, why some early researchers in the AI field made predictions that, in retrospect, were wildly optimistic.<span> </span>These researchers were focused on the part of the problem they could see – the conscious, high-level, &#8220;difficult&#8221; part – and nobody realized until later that this was built on a hidden foundation that was doing a tremendous amount of work, but that somehow made that work seem &#8220;effortless&#8221;.<span> </span>After the first rush of AI and expert-system success (including many results of great commercial value) the field has paused for a while as we search for the principles and mechanisms that will allow us to replicate these hidden &#8220;core&#8221; capabilities.</p>
<p class="MsoNormal">In the meantime, there has been another wave of valuable AI applications based on statistical machine learning.<span> </span>Some of these results have been very impressive – search engines, adaptive control systems, and many kinds of data mining, just to name a few – but I would argue that these developments have not brought us much closer to understanding the core capabilities of human-like cognition, and in many ways they have been a major distraction.</p>
<p class="MsoNormal">So, we have had one wave of valuable AI applications based on symbolic &#8220;expert systems&#8221; technology and another wave based on statistical machine learning, but we are still far from implementing a broad, flexible, human-like intelligence.<span> </span>Some crucial capabilities seem to be missing.<span> </span>If we cannot yet implement these missing capabilities, can we at least list what they are?</p>
<p class="MsoNormal">Here is my own personal list of the fundamental missing capabilities that are necessary for human-like AI:</p>
<p class="MsoNormal" style="margin-left: 0.25in; text-indent: -0.25in;"><!--[if !supportLists]--><span style="font-size: 14pt; font-family: Symbol;"><span>·<span style="font-family: "> </span></span></span><!--[endif]--><strong>The ability to assimilate and store large amounts of symbolic knowledge and to make that knowledge effective.</strong><span> </span>By effective, I mean that the knowledge is in a form that supports reasoning, and that it plays a role in determining the system&#8217;s behavior.<a name="_ednref3" href="#_edn3"><span class="MsoEndnoteReference"><span><!--[if !supportFootnotes]--><span class="MsoEndnoteReference"><span style="font-size: 12pt; font-family: ">[3]</span></span><!--[endif]--></span></span></a><span> </span>It&#8217;s not enough just to stuff in the knowledge in the form of undigested English: it’s very hard to reason precisely using that sort of representation.<span> </span>So some sort of logic-like representation would appear to be necessary.</p>
<p class="MsoNormal" style="margin-left: 0.25in; text-indent: -0.25in;"><!--[if !supportLists]--><span style="font-size: 14pt; font-family: Symbol;"><span>·<span style="font-family: "> </span></span></span><!--[endif]--><strong>The ability to take a set of features and expectations and find the best match (or a small number of plausible matches) from among a vast set of stored descriptions.</strong><span> </span>This capability lies at the heart of many kinds of recognition: matching a stream of acoustic features against stored words and phrases; matching visual features against stored shape descriptions; matching observed actions against stored plan templates that might explain why these actions occurred; and so on.<span> </span>These matches are seldom perfect, so a brittle representation such as a hash table won&#8217;t do the job.</p>
<p class="MsoNormal" style="margin-left: 0.25in; text-indent: -0.25in;"><!--[if !supportLists]--><span style="font-size: 14pt; font-family: Symbol;"><span>·<span style="font-family: "> </span></span></span><!--[endif]--><strong>A planning mechanism that exhibits the sort of flexibility and resourcefulness that we see in humans (and in many animals as well).</strong><span> </span>By flexibility, I mean that when the system is blocked, it must fall back and choose an alternative path, perhaps combining its operators in novel ways.<span> </span>The planner must be robust in the face of incomplete knowledge and conditions that change at runtime, and it must be well integrated with the system&#8217;s store of world knowledge.<span> </span>The system should be able to learn new plan templates by observation or by being supplied with high level &#8220;recipes&#8221; – not detailed code.<span> </span>It is not necessary (or even particularly desirable) for the planning to be optimal; it just needs to be &#8220;good enough&#8221;.</p>
<p class="MsoNormal" style="margin-left: 0.25in; text-indent: -0.25in;"><!--[if !supportLists]--><span style="font-size: 14pt; font-family: Symbol;"><span>·<span style="font-family: "> </span></span></span><!--[endif]--><strong>A learning paradigm that, over time, can provide the system with the vast amount of knowledge it will need – both symbolic knowledge and the &#8220;recipes&#8221; that are needed to create and understand new plans.</strong><span> </span>Statistical learning will certainly play a role, but we also need mechanisms that &#8220;learn by being told&#8221; and that learn by observation – often from one or just a few examples.</p>
<p class="MsoNormal" style="margin-left: 0.25in; text-indent: -0.25in;"><!--[if !supportLists]--><span style="font-size: 14pt; font-family: Symbol;"><span>·<span style="font-family: "> </span></span></span><!--[endif]--><strong>A flexible, integrated architecture to pull this all together.</strong> <span> </span>See my <a href="http://sef-linux.radar.cs.cmu.edu/nuggets/?p=27">earlier article</a> on this topic.</p>
<p class="MsoNormal">These are just the capabilities that I think are most important; there are many smaller ones, some of which depend on these.</p>
<p class="MsoNormal">As I said, this is my own personal list of &#8220;core&#8221; AI issues.<span> </span>I should point out that most of my colleagues in the AI field would come up with very different wish-lists.<span> </span>Among the capabilities that other researchers might highlight are further improvements in statistical learning; learning by mining the semantic web; <em>optimal</em> planning; coordination of many intelligent (or slightly intelligent) agents; solving of large constraint systems; more improvement at the lower sensory-motor levels; and building better interfaces between AI systems and humans, so that the AI systems can just stick to the things they do well.<span> </span>These are all excellent goals, but in my opinion they are not on the critical path.<span> </span>They don&#8217;t get us any closer to the heart of the monster.</p>
<p class="MsoNormal">While I can&#8217;t claim that I (or anyone else) has completely solved any of the issues on my list, I think we have made some progress, or at least have come up with some good ideas about how to make progress.<span> </span>Future articles will address each of these areas in greater depth.</p>
<p class="MsoNormal">======================</p>
<div><!--[if !supportEndnotes]--></p>
<hr size="1" /><!--[endif]--></p>
<div id="edn1">
<p class="MsoEndnoteText"><a name="_edn1" href="#_ednref1"><span class="MsoEndnoteReference"><span><!--[if !supportFootnotes]--><span class="MsoEndnoteReference"><span style="font-size: 10pt; font-family: ">[1]</span></span><!--[endif]--></span></span></a> I plan to return to the whole slippery question of &#8220;consciousness&#8221; in a future article.</p>
</div>
<div id="edn2">
<p class="MsoFootnoteText"><a name="_edn2" href="#_ednref2"><span class="MsoEndnoteReference"><span><!--[if !supportFootnotes]--><span class="MsoEndnoteReference"><span style="font-size: 10pt; font-family: ">[2]</span></span><!--[endif]--></span></span></a> We must unfortunately avoid using the term &#8220;subconscious&#8221;, which was appropriated by Sigmund Freud to describe a rather different set of phenomena.</p>
</div>
<div id="edn3">
<p class="MsoEndnoteText"><a name="_edn3" href="#_ednref3"><span class="MsoEndnoteReference"><span><!--[if !supportFootnotes]--><span class="MsoEndnoteReference"><span style="font-size: 10pt; font-family: ">[3]</span></span><!--[endif]--></span></span></a> My current best guess as to the amount of information required for human-like common sense is somewhere in the range of 100 million entities and assertions, but that number could be low.<span> </span>Of course, many applications can get by with much less knowledge.</p>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://sef-linux.radar.cs.cmu.edu/nuggets/?feed=rss2&amp;p=29</wfw:commentRss>
		</item>
		<item>
		<title>A Good Textbook for Knowledge Representation</title>
		<link>http://sef-linux.radar.cs.cmu.edu/nuggets/?p=28</link>
		<comments>http://sef-linux.radar.cs.cmu.edu/nuggets/?p=28#comments</comments>
		<pubDate>Mon, 31 Mar 2008 03:29:57 +0000</pubDate>
		<dc:creator>Scott Fahlman</dc:creator>
		
		<category><![CDATA[KR Issues]]></category>

		<guid isPermaLink="false">http://sef-linux.radar.cs.cmu.edu/nuggets/?p=28</guid>
		<description><![CDATA[Since I mentioned Ron Brachman in my last post, I should also mention that he is the co-author, with Hector Levesque, of Knowledge Representation and Reasoning (Morgan Kaufmann, 2004), probably the best available general textbook on this topic.
Not surprisingly, the book&#8217;s primary focus is on First-Order Logic and its more restrictive relatives.  However, there [...]]]></description>
			<content:encoded><![CDATA[<p class="MsoNormal">Since I mentioned Ron Brachman in my last post, I should also mention that he is the co-author, with Hector Levesque, of <em><a href="http://www.amazon.com/Knowledge-Representation-Reasoning-Artificial-Intelligence/dp/1558609326">Knowledge Representation and Reasoning</a></em> (Morgan Kaufmann, 2004), probably the best available general textbook on this topic.</p>
<p class="MsoNormal">Not surprisingly, the book&#8217;s primary focus is on First-Order Logic and its more restrictive relatives.<span>  </span>However, there is some coverage of other approaches and of issues that cause some difficulties for the logic-based approaches. <span> </span>So, overall, I find it to be an excellent and balanced presentation of the mainstream approaches and issues in the knowledge representation field.</p>
<p class="MsoNormal">For anyone with a serious interest in KR, but not much background, a good plan would be to read this book and understand most of it <em>before</em> considering the alternative approaches that I will be arguing for in this blog.<o></o></p>
]]></content:encoded>
			<wfw:commentRss>http://sef-linux.radar.cs.cmu.edu/nuggets/?feed=rss2&amp;p=28</wfw:commentRss>
		</item>
		<item>
		<title>A Case for Integrated AI</title>
		<link>http://sef-linux.radar.cs.cmu.edu/nuggets/?p=27</link>
		<comments>http://sef-linux.radar.cs.cmu.edu/nuggets/?p=27#comments</comments>
		<pubDate>Mon, 31 Mar 2008 02:53:00 +0000</pubDate>
		<dc:creator>Scott Fahlman</dc:creator>
		
		<category><![CDATA[AI]]></category>

		<guid isPermaLink="false">http://sef-linux.radar.cs.cmu.edu/nuggets/?p=27</guid>
		<description><![CDATA[The best presentation I have seen in the past few years about where AI is now and where we should be heading was Ron Brachman&#8217;s 2006 Presidential Address to the American Association for Artificial Intelligence (AAAI)[1] conference.   A transcript of that talk was reprinted in AI Magazine (Winter 2006) and is available online. [...]]]></description>
			<content:encoded><![CDATA[<p>The best presentation I have seen in the past few years about where AI is now and where we should be heading was Ron Brachman&#8217;s 2006 Presidential Address to the American Association for Artificial Intelligence (AAAI)<a href="#_ftn1" title="_ftnref1" name="_ftnref1"><span class="MsoFootnoteReference"><span><!--[if !supportFootnotes]--><span class="MsoFootnoteReference"><span style="font-size: 12pt; font-family: 'Times New Roman'">[1]</span></span><!--[endif]--></span></span></a> conference.<span>   </span>A transcript of that talk was reprinted in AI Magazine (Winter 2006) and is <a href="http://www.aaai.org/ojs/index.php/aimagazine/article/view/1907/1805">available online</a>.  Everyone interested in AI should read this.</p>
<p>Given the occasion, the article necessarily contains some thoughts about the proper role of AAAI as an organization. <span> </span>Those may or may not be of interest to readers of this blog.<span>  </span>But I believe that Ron&#8217;s arguments for the importance of an <em>integrated</em> attack on intelligence are right on the mark.<span>   </span>As long as most AI researchers focus on only one small component of intelligence or one kind of problem, we will never have systems that exhibit human-like <em>versatility</em> in a complex, ever-changing environment.</p>
<p>The one area where I disagree with Ron is in his enthusiasm for evaluation and metrics in our work – a new-found enthusiasm, according to his article.  <span></span>It is true that our sponsors will often require detailed, quantitative performance measurements as a way to evaluate the success of the projects they fund.<span>  </span>So we have to live with that.</p>
<p>It is also true that there are times when, if no scoring system were imposed on a research effort, we would have to invent one.<span>   </span>That is often a good way to keep the project members focused and motivated, and there are times when a bit of competition (keeping score) is a good thing.<span>   </span>In areas like statistical learning, appropriate metrics may be the only good way to tell if the system is working properly and doing something interesting.</p>
<p>However, I have seen too many promising research projects ruined or badly damaged by rigid metrics, rigidly applied.<span>  </span>A &#8220;wild frontier&#8221; field like AI does not progress in slow and steady increments.<span>  </span>Implementing a promising new idea usually requires that we take a step or two backward in our measurable performance before we get the great leap forward.  Sometimes these new ideas will fail &#8212; that&#8217;s an important part of research. <span>  </span>If we are in a situation where a particular performance metric must improve by a particular amount every year , with the threat of immediate project cancellation as the &#8220;incentive&#8221;, that creates a tremendous disincentive to try anything risky and innovative.<span>  </span>I can think of no better way to ensure that a project will produce some routine progress, but no breakthroughs.<span>  </span>And if the metrics are used to drive a competition – only the top few groups in each year&#8217;s competition will be funded for the next year – that guarantees that the competing groups will be secretive and unable to build on one another&#8217;s ideas.</p>
<p>Anyway, this blog is supposed to be about AI ideas and not about the management of research projects, so I&#8217;ll leave it at that.<span>  </span>I do share Ron&#8217;s enthusiasm for &#8220;Grand Challenge&#8221; problems, whenever we can come up with good one.<span>  </span>I&#8217;ll say more about that in a later post.<br clear="all" /></p>
<hr align="left" size="1" width="33%" />  <!--[endif]--></p>
<p id="ftn1">&nbsp;</p>
<p class="MsoFootnoteText"><a href="#_ftnref1" title="_ftn1" name="_ftn1"><span class="MsoFootnoteReference"><span><!--[if !supportFootnotes]--><span class="MsoFootnoteReference"><span style="font-size: 10pt; font-family: 'Times New Roman'">[1]</span></span><!--[endif]--></span></span></a> The organization has since renamed itself the &#8220;Association for the Advancement of Artificial Intelligence&#8221;, keeping the AAAI acronym and properly reflecting AAAI&#8217;s evolution into an international organization.</p>
]]></content:encoded>
			<wfw:commentRss>http://sef-linux.radar.cs.cmu.edu/nuggets/?feed=rss2&amp;p=27</wfw:commentRss>
		</item>
		<item>
		<title>Natural Language: It&#8217;s All About Meaning</title>
		<link>http://sef-linux.radar.cs.cmu.edu/nuggets/?p=26</link>
		<comments>http://sef-linux.radar.cs.cmu.edu/nuggets/?p=26#comments</comments>
		<pubDate>Thu, 27 Mar 2008 05:08:45 +0000</pubDate>
		<dc:creator>Scott Fahlman</dc:creator>
		
		<category><![CDATA[Natural Language]]></category>

		<guid isPermaLink="false">http://sef-linux.radar.cs.cmu.edu/nuggets/?p=26</guid>
		<description><![CDATA[Human language is, fundamentally, a tool for identifying a piece of meaning – some symbolic knowledge structure – in my mind and building a good, effective approximation of that knowledge in your mind.  The necessary information must be transferred across a narrow, noisy, linear channel: modulated sound waves or (just in the last few [...]]]></description>
			<content:encoded><![CDATA[<p class="MsoNormal">Human language is, fundamentally, a tool for identifying a piece of meaning – some symbolic knowledge structure – in my mind and building a good, effective approximation of that knowledge in your mind.<span>  </span>The necessary information must be transferred across a narrow, noisy, linear channel: modulated sound waves or (just in the last few thousand years) a string of text.</p>
<p class="MsoNormal">Over time, human language has evolved into a beautifully effective and efficient tool for this task.<span>  </span>We have developed all sorts of clever linguistic signals that indicate how a linear string of symbols should be folded back into a complex, tangled web of entities and statements about them.<span>  </span>Prepositions probably rank right up there with fire as a great human invention (or perhaps, if you believe Chomsky, a great invention of biological evolution).</p>
<p class="MsoNormal">Because the channel is so narrow, I don’t want to waste precious bandwidth by telling you things that you already know.<span>  </span>My goal is to use a stream of language to paint a thin veneer of new knowledge-structure over what I assume you already have in your head.<span>  </span>To my computer-science colleagues, I know that I can use a word like “hashtable” without further explanation; to convey the same meaning to the (presumably) non-technical person sitting next to me on the bus might take a while.<span>  </span>To my wife, I know that I can say, “Morty was sick again today”; to a stranger, I would go on to explain that Morty is our cat and that he has a chronic problem with hairballs.<span>  </span>When two people meet for the first time and want to communicate, a good fraction of their speech acts are devoted to exchanging information about what each person already knows, so that subsequent conversation can be reasonably efficient (starting, sometimes, with “Do you speak English?” and then maybe “Have you heard the news today?”).<span>  </span>If I guess wrong about what the other guy knows, I’ll have to backtrack and try again.</p>
<p class="MsoNormal">So in natural-language communication, we want to say as little as possible and rely as much as possible on shared background knowledge.<span>  </span>Consider how much background knowledge is required to understand a short news item like this:</p>
<p class="MsoNormal"><em>&#8220;In response to last Tuesday&#8217;s café bombing in Tel Aviv, Israeli tanks today crossed into the Gaza strip and demolished the houses of several suspected Hamas leaders before retreating under a hail of rocks and Molotov cocktails.&#8221;<o></o></em></p>
<p class="MsoNormal">If we wanted to create a headline for this story, we might go with <em>&#8220;Israeli Army Retaliates&#8221;</em> or <em>&#8220;Angry Palestinian Mob&#8221;</em>, but none of these words (except &#8220;Israeli&#8221;) appears in the original story.<span>  </span>The passage does not even contain synonyms for these words.<span>  </span>So to understand and label this brief fragment of text requires some knowledge of Israel, Palestine, Gaza, Tel Aviv, Hamas, tanks, and Molotov cocktails.<span>  </span>It requires some understanding of concepts like terrorism and revenge.<span>  </span>It requires the knowledge that crushing a house is a hostile act, likely to anger the owner and his friends.<span>  </span>And so on…</p>
<p class="MsoNormal">I think it is clear that most linguists, computational linguists, and AI researchers have accepted for a long time that meaning – both the knowledge conveyed by an utterance and a large amount of background knowledge – is central to the enterprise of producing and understanding natural language. And most of them accept that meaning is really the key to most of the other operations that we want to perform on chunks of language: categorization, summarization, question answering, search, translation, and so on.<span>  </span>But having accepted that, they see that collecting and representing very large amounts of knowledge efficiently and effectively is a very hard problem – perhaps the hardest unsolved problem in AI.<span>  </span>So most of them go off and work on something else instead: parsing, morphology, meaning-free search engines, statistical translation based on parallel corpora, and so on.<span>  </span>These are all valuable efforts, and some of them have yielded valuable results, but I think that many of these researchers would admit (if they feel like being honest) that they’re not really attacking the heart of the monster.<span>  </span>They’re dancing around the edges of the really hard problem.</p>
<p class="MsoNormal">The amazing thing, really, is that a meaning-free bag-of-words model can work at all as a surrogate for meaning.<span>  </span>The truly astounding thing is that these models (perhaps augmented with some additional shallow features) work well enough to produce truly useful tools – even supporting some huge, successful companies such as Google.<span>  </span>But almost all of these technologies deliver only partial success – maybe 80% – because they are not really working in the same feature space as the humans who wrote the text and the humans who form the intended audience.<span>  </span>So that last 20% error (or whatever) is going to be very hard to eliminate by meaning-free approaches.</p>
<p class="MsoNormal">In many domains, that’s OK.<span>  </span>We all use Google (or some competitor) every day, and we’ve learned to live with the fact that a lot of the documents it retrieves for every search are not relevant – these are just documents that happened to have some of the right words.<span>  </span>The result is still very useful, most of the time.<span>  </span>But imagine having a search engine that actually reads all these documents, understands them to some degree, and that can answer questions about them.<span>  </span>The reason that Google returns full pages and not just answers is that it depends on its human users to figure out whether a document really contains the answer to their question, and what that answer is.</p>
<p class="MsoNormal">The realization that, in an information-rich space like the Web, we can do so many useful things by statistical means – without really understanding anything – has led to a sort of gold rush.<span>  </span>It has been an exciting time.<span>  </span>There was (and still is) much low-hanging fruit, ready for harvesting.<span>  </span>This gold rush has produced a lot of valuable technology and it has created a few great fortunes.<span>  </span>But it has not brought us much closer to understanding the central problem of extracting and truly understanding the deep meaning of an utterance.<span>  </span>And without that, I think we have no hope of eliminating that last tenacious component of the error.</p>
<p class="MsoNormal">As difficult as the task may be, we will not achieve real natural-language understanding until we confront the problem of representing meaning (including all the background knowledge) head on.<span>  </span>The representation may be in some kind of logic, or a semantic network, or perhaps something more neural and fuzzy and distributed.<span>  </span>Probably it will be all three at once: these may be just different viewpoints – different ways of characterizing (or implementing) the same underlying concepts.<span>  </span>But whatever form the knowledge takes, we can’t get much farther without it.</p>
<p class="MsoNormal">We can’t go on indefinitely ignoring the elephant in the room.<span>  </span>His name is <st1>Clyde</st1>, and he’s not going away.<o></o></p>
<p><font color="#ff0000"><em>This article was originally published as a position paper for the 2006 AAAI Fellows Symposium, celebrating 50 years of Artificial Intelligence as a field.  Copyright © 2006, Association for the Advancement of Artificial Intelligence.</em></font></p>
]]></content:encoded>
			<wfw:commentRss>http://sef-linux.radar.cs.cmu.edu/nuggets/?feed=rss2&amp;p=26</wfw:commentRss>
		</item>
	</channel>
</rss>
