Contents Overview Setting Cheese Questions Design Problem 1 Problem 2 Problem 3 |
Overview This homework is a dry run of the first step of design that you will do for the class project. The goal is to get a directed, constrained experience with identifying and describing a task domain for AI problem solving. The homework relates particularly to the concepts described in sections 2.4, 3.2 and 5.4 of Computational Intelligence. The tasks used in this assignment center around assisting customers in a hypothetical internet cheese shop. The assignment begins by introducing research on internet shopping, then maps out the basic steps in designing the domain. The assignment proper consists of three problems that study particular aspects of the domain and knowledge base design for the problem. In an internet storefront, a computer program is responsible for presenting information and managing sales with a consumer; that effectively means that designers can set up the store to be anything and do anything. Nevertheless, typical internet sites are little more than slow and cumbersome catalogs; they present the same options for purchase and the same canned information about products that an ordinary brochure might, and add the disadvantages of heavy requirements for connectivity and bandwith. The only reason to use such a service is price, so it's not surprising that internet retailers turn out to charge about 10-20% less for many products (such as books, CDs and airfare). For more information, see Erik Brynjolfsson's work at MIT, such as the paper Frictionless Commerce. For some, particularly in traditional ``bricks and mortar'' businesses, this has suggested to a vision of internet retailing as a drab and cutthroat marketplace in which prices and profitability fall in the face of relentless global competition. Not a good place to start a business. However, there is another way to look at things, and this is where AI comes in. An internet storefront can make it easier to find out information about the quality and characteristics of products, so that consumers can be more confident about buying new or unusual things and can find products that better match their personal tastes. Consumers naturally value this; and storefronts that provide comprehensive, accessible and flexible information about their specialty wares are likely to be rewarded with loyal customers who willingly pay higher prices. John Lynch (no web page) and Dan Ariely make this argument with a laboratory study of simple systems for electronic shopping for wine. Electronic commerce can make for successful business, but only for certain kinds of sales and, importantly, only with a powerful system for interacting with consumers. The AI view of an intelligent agent interacting with the world around it, and AI technology generally, provide natural resources for pushing this kind of capability forward; many groups are taking up the challenge. Statistical techniques for analyzing survey responses have been proposed to characterize people's tastes and preferences, by people like Pattie Maes or (closer to home) Haym Hirsh. Meanwhile, Benjamin Grosof and others at IBM are investigating the use of knowledge bases and declarative rules to characterize agents for e-commerce. This is the technique this homework explores.
You may not realize it, but cheese is a big and complicated business. Tiny districts of Europe have their own idiosyncratic traditional cheeses, which can be as exotic as they are delicious. Even within districts, makers vary in quality, in other features like aging or the use of spices that greatly affect the taste, and of course in price. To a conoisseur (or indeed even the newest cheese enthusiast), the subtle and interesting variations among cheeses can be as wild and heady as those of fine wines. (The intoxication is perhaps more metaphorical with cheese.) Cheeses can also be as difficult as wines for a consumer to learn about or buy well. In fact, in the US, specialty cheeses are relatively difficult to get hold of. (Not this difficult,thankfully.) Guides to places where cheese is a big deal like Paris or Amsterdam rattle off batteries of stores carrying nothing but hundreds of different kinds of cheese. For New York, the same guides can only offer a couple of gourmet emporiums and designer delis. Internet to the rescue! Traditional cheeses develop encased in protective barriers of wax or mold, and only need to be refrigerated after they are opened. So they can be ordered on line (here or here) and delivered anywhere. And, with their small local producers and huge variations, specialty cheeses are just the kind of merchandise that Lynch and Ariely argue consumers will pay a premium for, if they have good information and a flexible, powerful interface. This assignment considers decision-making in such an interface as an AI task domain.
The first part of any AI problem is finding an acronym to name the program you construct. For this homework, let's use agent for cheese ecommerce: ACE. (It's good for this name to be upbeat, so avoid ones like agent for cheese ecommerce, ie. ACHE.) The first serious step is finding a set of decisions in the domain that seem to fit usefully into the informal task you have and which depend on information that you can feasibly obtain and represent. A good starting point is to brainstorm English questions that an agent might have to know the answers to, and then to formulate English responses that could summarize the reasoning or explanation that the agent could use to answer the questions. Of course you don't have to expect that these questions would be posed by the user in English and automatically understood; they could be programmed into the agent's decision-making or selected by the user in a menu. Similarly your agent probably would not actually generate English explanations for what it does; it would simply do it. The agent need not even go through anything like this reasoning in making its decision. This exercise is how you, as the designer, develop an understanding of the limits and possibilities of representing the domain and the regularities that hold there. In the case of ACE, these questions come naturally from scenarios for displaying information or describing cheeses to the user in response to search requests or specific queries. As it happens, I was disappointed by some blue cheese that I purchased recently, so I've found it particularly easy to imagine scenarios where good information about blue cheese could assist a user. Here are a few:
At the next level of difficulty, you find questions that depend on the relationship between the central objects in your domain and other objects outside your central focus, but these questions, while potentially open-ended, turn out to depend only on coarse properties of the outside objects. These outside objects can increase the scope of the objects you have to represent, but need not explode the representation of the domain overwhelmingly as long as very little information about them is needed to answer questions in your domain. Questions like the second above are like this. England is not a cheese. And you could never hope to represent everything about England. However, to answer questions about where cheese comes from, you only need to know that England is made up of cheese regions like Leicester or Somerset (the birthplace of Cheddar) and that England is different from France or Italy. Finally come the impossible questions, like the third above. These questions depend on outside objects in a way that is clearly open-ended; for example they may depend on comparing objects in the domain with those outside it, or involve consideration of properties of objects in your domain that don't matter much on their own and would otherwise not be represented. You have no hope of addressing these questions using a constrained, domain-specific AI approach. Almost certainly, the work you do to program an appropriate response to one question will be irrelevant to the next question of this kind. So you can keep programming and make effectively no progress in how capable your agent is. Thus, as you classify the questions you have thought up, you get a more precise idea of what it will be possible to do in your domain, and what will be impossible.
At this point, you can start to set up some objects to reason about and some relations to reason about those objects with in your domain. The objects and relations you choose make assumptions about the world; they limit what you can easily represent and infer, and therefore they must be designed with an eye to the questions you wish to handle in the domain, both informally and formally. Let's start with an example for ACE, presented in full. Then the homework proper considers some further cases that you will have to develop yourself. The basic objects for ACE are kinds of cheeses, which you identify by the name of the variety. Use a different constant for each kind of cheese. For example:
This representation assumes that specific kinds of cheese are the smallest or most specific variety of cheese you need to reason about. To talk about cheeses fabricated by individual makers you would need to distinguish objects in the domain more finely. Identify a set of objects in the domain that provide a simple inventory of the kinds of things cheese can be made from. In guiding this process, you should consider the questions and answers above, as well as the questions and answers below:
Introduce symbols for each of these objects and describe the intended interpretation of these symbols. It may help to relate cheeses in a few different ways to a few different kinds of ingredients. If you do this, name these relations by symbols and describe the intended interpretation of these symbols as well. Explain the assumptions in identifying these objects; argue that your representation captures the key differences among most cheeses, but does not go too far afield in demanding complicated reasoning outside the general topic of cheese. Which questions does your representation handle? Which does it classify in category three as open-ended and effectively impossible? Identify a set of actions in the domain that provide a simple inventory of the kinds of things cheese can be used for. In guiding this process, you should consider the questions and answers above, as well as the questions and answers below:
Your simple inventory of uses of cheeses probably restricts the design of the agent by simplifying the kinds of questions the agent can usefully answer. To illustrate, consider the following questions. Would it be easy to determine which category best fits a specific use of cheese described by the user in an English text box? Would it be easy to provide instructions for users to select, from a menu of your uses of cheese, the categories that are likely to fit their needs? Problem 3: Rules and representations This question illustrates how the right choice of rules and representations can make specifications of agents' knowledge bases much more compact and enable agents to perform more interesting tasks. The motivating question for question 3 is given below:
If there are n cheese regions, how many statements will be needed to list all these facts? Write two rules to eliminate some of these facts. Encode the symmetry of distinctness: what Aveyron's being distinct from Leicester tells you about Leicester's being distinct from Aveyron. Next, assume a relation subregion that relates a cheese region and the country that cheese region is part of. Use this to encode what France's being distinct from England tells you about Averyon's being distinct from Leicester. If you have n cheese regions in each of m countries, how many facts will you need to specify with these two rules? Consider a ternary relation, represented by the predicate difference, which has three arguments: two kinds of cheese and an attribute. It is true when the two cheeses have different values for that attribute. Write a rule for inferring
in terms of a predicate originOf relating a cheese and the cheese making region in which the cheese is made and the predicate distinct which you defined earlier. Read the discussion of the prop predicate from CI page 182 and following. Rewrite your rule using prop(Cheese,origin,Region). Observe that origin can now be generalized to a variable Attribute to account for all the differences illustrated in the example. Write a corresponding rule for inferring that two cheeses have a similarity in an attribute. Provide the knowledge base containing the rules for distinct, difference, similarity, stilton and roquefort which allow the statements of difference and similarity in the example to be proved. Use the inventory and relations (defined as attributes) that you designed in problems 1 and 2. |