Abstract:
A content recommendation system including a step which selects some from a plenty of music compositions in accordance with attribute conditions successively generated, a step which further selects a part or all of the selected music compositions in accordance with the similarity degree between the feature vector of each of the selected music compositions and the user preference vector, and a step which presents the selected music composition to the user.

Description:
TECHNICAL FIELD  
       [0001]    The present invention relates to a content recommendation system, a content recommendation method, a content recommendation apparatus, a program, and an information storage medium, and more particularly to a content recommendation technique. 
       BACKGROUND ART  
       [0002]    In recent years, a user can enjoy a desired content chosen from among an enormous number of contents using a communication network such as the Internet. Since there are an enormous number of available contents, various kinds of recommendation techniques have been suggested. For example, a technique for calculating a degree of similarity between a preference vector representing a feature of the content preferred by an user, and a feature vector of each of contents while recommending the user the content with the high degree of similarity, so called content-based filtering is one of the examples (see Japanese Patent Application Laid-Open No. 2001-160955). 
       SUMMARY OF INVENTION 
     Technical Problem 
       [0003]    However, such recommendation techniques in the past focused only the degree of similarity between specific pieces of information, and the specific pieces of information tended to be recommended intensively by the user. This brought an issue that the user may get bored the recommendation itself. 
         [0004]    The present invention is made in view of the above issues, and it is an object of the present invention to provide a content recommendation system, a content recommendation method, a content recommendation apparatus, a program, and an information storage medium capable of recommending contents that continuously interests a user. 
       SOLUTION TO PROBLEM  
       [0005]    In order to solve the above issues, a content recommendation system according to the present invention includes attribute value storage means for storing an attribute value of each of one or a plurality of attributes for each of a plurality of contents, feature vector storage means for storing a feature vector representing a feature of each of the contents, preference vector obtaining means for obtaining a preference vector representing a feature of contents preferred by an user, a first content selection means for selecting a part of a given group of the contents according to a successively generated condition of the attribute value of the one or the plurality of attributes, a second content selection means for selecting a part or all of the group according to a degree of similarity between the feature vector and the preference vector of each of the contents belonging to the given group of the contents, and content presenting means for presenting the user the contents which are selected by applying the first content selection means and the second content selection means in an overlapping manner to the plurality of contents. 
         [0006]    Further, a content recommendation method according to the present invention includes a preference vector obtaining step for obtaining a preference vector representing a feature of contents preferred by an user, a first content selection step for referring to attribute value storage means for storing an attribute value of each of one or a plurality of attributes for each of a plurality of contents, and selecting a part of a given group of the contents according to a successively generated condition of the attribute value of the one or the plurality of attributes, a second content selection step for referring to feature vector storage means for storing a feature vector representing a feature of each of the contents, and selecting a part or all of the group according to a degree of similarity between the feature vector and the preference vector of each of the contents belonging to the given group of the contents, and a content presenting step for presenting the user the contents which arc selected by applying the first content selection means and the second content selection means in an overlapping manner to the plurality of contents. 
         [0007]    Further, a content recommendation apparatus according to the present invention includes preference vector obtaining means for obtaining a preference vector representing a feature of contents preferred by an user, first content selection means for selecting a part of a given group of contents according to a successively generated condition of an attribute value of attributes of the one or the plurality of contents, second content selection means for selecting a part or all of a group according to a degree of similarity between a feature vector and the preference vector of contents belonging to the given group of contents, and list generation means for generating a list of contents selected by applying the first content selection means and the second content selection means in an overlapping manner to a plurality of contents. 
         [0008]    Further, a content recommendation method according to the present invention includes a preference vector obtaining step for obtaining a preference vector representing a feature of contents preferred by an user, a first content selection step for selecting a part of a given group of contents according to a successively generated condition of an attribute value of attributes of one or a plurality of contents, a second content selection step for selecting a part or all of a group according to a degree of similarity between a feature vector and the preference vector of contents belonging to the given group of the contents, and a list generation step for generating a list of contents selected by applying the first content selection step and the second content selection step in an overlapping manner to a plurality of contents. 
         [0009]    Further, a program according to the present invention includes preference vector obtaining means for obtaining a preference vector representing a feature of contents preferred by an user, first content selection means for selecting a part of a given group of contents according to a successively generated condition of an attribute value of attributes of one or a plurality of contents, second content selection means for selecting a part or all of a group according to a degree of similarity between a feature vector and the preference vector of each of contents belonging to the given group of the contents, and list generation means for generating a list of contents selected by applying the first content selection means and the second content selection means in an overlapping manner to a plurality of contents. 
         [0010]    Further, an information storage medium according to the present invention causes a computer to function as preference vector obtaining means for obtaining a preference vector representing a feature of contents preferred by an user, first content selection means for selecting a part of a given group of contents according to a successively generated condition of an attribute value of attributes of one or a plurality of contents, second content selection means for selecting a part or all of the group according to a degree of similarity between a feature vector and the preference vector of each of the contents belonging to the given group of the contents, and list generation means for generating a list of contents selected by applying the first content selection means and the second content selection means in an overlapping manner to a plurality of contents. 
         [0011]    Further, one embodiment of the present invention, the first content selection means selects a part of the plurality of the contents, the second content selection means selects a part or all of the contents selected by the first content selection means, and the content presenting means presents the user the contents selected by the second content selection means. 
         [0012]    Further, one embodiment of the present invention the content recommendation system further includes related condition generation means for successively obtaining a condition for the attribute values of the one or the plurality of attributes, and successively generating another condition related to the condition based on the obtained condition. The first content selection means selects a part of the given group of the contents according to the condition successively generated by the related condition generation means, 
         [0013]    Further, one embodiment of the present invention, the condition is to be determined based on random digits. For example, the content recommendation system may further include preference distribution storage means for storing a degree of the user&#39;s preference with respect to each attribute value of the attributes for each of the attributes, and condition determining means for selecting attribute values of one or a plurality of attributes according to a probability based on the degree of the user&#39;s preference stored in the preference distribution storage means, and determining the condition to be used by the first content selection means according to the selected attribute values. At this time, the content recommendation system may further include operation information obtaining means for obtaining the user&#39;s operation information with respect to the content presented by the contents presenting means, and preference distribution update means for updating storage contents in the preference distribution storage means, based on the operation information obtained by the operation information obtaining means. 
     
    
     
       BRIEF DESCRIPTION OF DRAWINGS 
         [0014]      FIG. 1  is an overall configuration diagram illustrating a content recommendation system according to an embodiment of the present invention. 
           [0015]      FIG. 2  is a hardware configuration diagram illustrating a server. 
           [0016]      FIG. 3  is a perspective view illustrating an external appearance of a game system used as a user apparatus. 
           [0017]      FIG. 4  is a hardware configuration diagram illustrating a game machine. 
           [0018]      FIG. 5  is a configuration diagram illustrating first metadata. 
           [0019]      FIG. 6  is a configuration diagram illustrating second metadata. 
           [0020]      FIG. 7  is an operation flow diagram illustrating a content recommendation system according to an embodiment of the present invention. 
           [0021]      FIG. 8  is a diagram schematically illustrating theme template data. 
           [0022]      FIG. 9  is a diagram schematically illustrating theme preference distribution data. 
           [0023]      FIG. 10  is a diagram schematically illustrating attribute value preference distribution data. 
           [0024]      FIG. 11  is a configuration diagram illustrating theme group data. 
           [0025]      FIG. 12  is a diagram schematically illustrating an attribute value conversion dictionary. 
           [0026]      FIG. 13  is a functional block diagram illustrating a user apparatus. 
           [0027]      FIG. 14  is a functional block diagram illustrating a server and a database. 
           [0028]      FIG. 15  is a modified operation flow diagram illustrating a content recommendation system according to an embodiment of the present invention. 
           [0029]      FIG. 16  is an external view illustrating a portable game machine. 
           [0030]      FIG. 17  is a hardware configuration diagram illustrating a portable game machine. 
           [0031]      FIG. 18  is a hardware configuration diagram illustrating a general-purpose personal computer. 
       
    
    
     DESCRIPTION OF EMBODIMENTS 
       [0032]    An embodiment of the present invention will be hereinafter explained in detail with reference to drawings. 
         [0033]      FIG. 1  is an overall configuration diagram illustrating a content recommendation system according to an embodiment of the present invention. As shown in this figure, this content recommendation system  10  is connected to a data communication network  18  such as the Internet, and includes a server  14  (first content recommendation apparatus) capable of mutual data communication and a plurality of user apparatuses  12  (second content recommendation apparatus). The server  14  includes a database  14   a . For example, the user apparatus  12  may be a computer system installed in each home such as a personal computer, a computer game system, and a home server, and a portable machine such as a portable game machine. The user apparatus  12  accesses the server  14 , and receives a list of songs recommended to a user of the user apparatus  12 . The user apparatus  12  requests the server  14  to provide song data included in the list, receives the song data, and play the songs. On the other hand, for example, the server  14  is constituted by a computer system such as a known server computer, and transmits, to each user apparatus  12 , a list of songs recommended to the user of the user apparatus  12 . In addition, the server  14  transmits individual song data in response to a request of each user apparatus  12 . In this example, the present invention is applied to recommendation of songs. However, the present invention is not limited thereto. It is to be understood that the present invention may be applied to recommendation of various kinds of contents, e.g., a motion image such as a movie, a still image such as a picture, and a document such as a novel. 
         [0034]      FIG. 2  is a figure illustrating an example of hardware configuration of the server  14 . As shown in this figure, the server  14  includes a processor  70 , a memory  71 , a hard disk drive  73 , a medium drive  74 , and a communication interface  76 , which are connected to a bus  72  so as to mutually exchange data. The memory  71  includes a ROM and a RAM. The ROM stores various kinds of system programs. 
         [0035]    The RAM is mainly used for a work area of the processor  70 . The hard disk drive  73  stores a program for distributing songs and distributing a list of recommended songs, and the database  14   a  is structured for distributing songs and distributing a list of recommended songs. The medium drive  74  is a device for reading data stored in a computer-readable medium  75  such as a CD-ROM and a DVD-RAM, or writing data to the computer-readable medium  75 . The communication interface  76  controls data communication via the communication network  18  with the user apparatus  12 . The processor  70  controls each unit of the server  14  according to a program stored in the memory  71 , the hard disk drive  73 , or the medium  75 . 
         [0036]    Subsequently, the user apparatus  12  will be explained in detail.  FIG. 3  is an external view illustrating a computer game system used as the user apparatus  12 . This computer game system includes a game machine  200 , an operation device  202 , and a television monitor  204 . The game machine  200  is a computer game system, which executes not only game programs but also various kinds of programs such as a Web browser and movie/music player programs. The program may be read from various kinds of computer-readable media such as various kinds of optical disks, internal or external hard disk drives, and semiconductor memories, or may be downloaded via a computer network such as the Internet. The operation device  202  is wirelessly communicatively connected to the game machine  200  or communicatively connected thereto via a wire. 
         [0037]    The game machine  200  includes a disk insertion slot  206  compatible with optical disks, a USB connection terminal  208 , and the like. The disk insertion slot  206  is configured such that optical disks such as a BD (Blu-ray disk, trademark), a DVD-ROM, and a CD-ROM can be loaded in the slot. A touch sensor  210  is used to instruct the game machine  200  to unload a disk. A touch sensor  212  is used to instruct the game machine  200  to turn the power on or off. A power switch, an audio and video output terminal, an optical digital output terminal, an AC power input terminal, a LAN connector, an HDMI terminal, and the like (not shown) are provided at the rear side of the game machine  200 . 
         [0038]    The game machine  200  is also provided with a multimedia slot for receiving multiple types of detachable semiconductor memories. Multiple slots, not shown, are exposed to receive respectively different types of semiconductor memories, when a lid  214  arranged on the front surface of the game machine  200  is opened. 
         [0039]    The operation device  202  is driven by a not-shown battery, and includes a plurality of buttons and keys with which a user makes operation inputs. When the user operates the buttons and keys on the operation device  202 , the operation contents are transmitted to the game machine  200  wirelessly or by a wire. 
         [0040]    The operation device  202  has an arrow key  216 , joy sticks  218 , and a group of operation buttons  220 . The arrow key  216 , the joy sticks  218 , and the group Of operation buttons  220  are arranged on a top surface  222  of the casing. The four types of operation buttons  224 ,  226 ,  228 , and  230  are marked with different symbols in different colors in order to distinguish them from each other. More specifically, the operation button  224  is marked with a red circle, the operation button  226  is marked with a blue cross, the operation button  228  is marked with a purple square, and the operation button  230  is marked with a green triangle. A rear surface  232  of the casing of the operation device  202  is provided with a plurality of LEDs, not shown. 
         [0041]    The user holds a left side grip portion  234   b  with the left hand, and a right side grip portion  234   a  with the right hand when operating the operation device  202 . The arrow key  216 , the joy sticks  218 , and the group of operation buttons  220  are arranged on the top surface  222  of the casing so that they can be operated by the user who is holding the left side grip portion  234   b  and the right side grip portion  234   a  with the right and left hands. 
         [0042]    An LED button  236  is also provided on the top surface  222  of the casing. The LED button  236  is used, for example, to display a particular menu screen on the television monitor  204  with the game machine  200 . It also has the functions of indicating the battery level of the operation device  202  with the lighting status of the LED. For example, the LED is lit in red during charging, lit in green when fully charged, and blinks in red when the battery level is low. 
         [0043]    The arrow key  216  is configured such that it can be pressed in four directions, i.e., up, down, right, and left directions, eight directions, i.e., up, down, right, and left directions and four directions therebetween, or in any direction. For example, the arrow key  216  is used to move in up, down, right and left directions a cursor on a screen of the television monitor  204 , and scroll various kinds of information on the screen. Respectively different functions are allocated to the group of operation buttons  220  by an application program. 
         [0044]    The joy joystick  218  has a stick supported in such a manner that the stick can be inclined in any direction, and has a sensor for detecting the amount of inclination. The stick is designed to return to a neutral position with the aid of an urging means such as a spring. The stick returns back to the neutral position when not operated. When the stick is inclined, the amounts of inclinations in a plurality of reference directions arc converted into digital values, and the values are transmitted to the game machine  200  as an operation signal. 
         [0045]    The operation device  202  further includes a select button  240 , a start button  238 , and the like. The start button  238  is used, e.g., when the user instructs the game machine  200  to start a program, and starts/pauses playing a movie or music. On the other hand, the select button  240  is used, e.g., when the user selects one of items of the menu displayed on the television monitor  204 . 
         [0046]    Now, the internal circuit configuration of the game machine  200  will be explained. As shown in  FIG. 4 , the game machine  200  includes, as its principal components, a main CPU  300 , a GPU (graphic processing unit)  302 , an input/output processor  304 , an optical disk reproduction unit  306 , a main memory  308 , a mask ROM  310 , and a sound processor  312 . The main CPU  300  performs signal processing and control of various internal components based on various kinds of programs. The GPU  302  performs image processing. The input/output processor  304  performs interfacing or processing between the GPU  300  and some of the components in the apparatus and components outside of the apparatus. In addition, the input/output processor  304  may have functions for executing application programs, so that the game machine  200  has compatibility with other game machines. 
         [0047]    The optical disk reproduction unit  306  reproduces an optical disk, such as a BD, DVD or CD, storing an application program or multimedia data. The main memory  308  serves as a work area for the main CPU  300  and a buffer for temporarily storing data read from an optical disk. The mask ROM  310  stores operating system programs to be executed mainly by the main CPU  300  and the input/output processing unit  304 . The sound processor  312  performs audio signal processing. 
         [0048]    The game machine  200  further includes a CD/DVD/BD processor  314 , an optical disk reproduction driver  316 , a mechanical controller  318 , a hard disk drive  334 , and a card-type connector (e.g., PC card slot)  320 . The CD/DVD/BD processor  314  performs, e.g., error correction processing (e.g., CIRC (cross interleave Reed-Solomon coding)), expansion decoding processing, and so on, to a disk reproduction signal read from a CD, DVD, or BD by the optical disk reproduction unit  306  and then amplified by an RF amplifier  328 , thereby reproducing data recorded on the CD, DVD, or BD. The optical disk reproduction driver  316  and the mechanical controller  318  perform rotation control of a spindle motor of the optical disk reproduction unit  306 , focus/tracking control of an optical pickup, loading control of a disk tray, etc. 
         [0049]    For example, the hard disk drive  334  stores saved data for programs and game programs read by the optical disk reproduction unit  306 , or stores data such as photos, moving images, and music acquired via the input and output processor  304 . The card-type connector  320  is a connection port for, e.g., a communication card, an external hard disk drive, or the like. 
         [0050]    These internal components are connected with each other mainly through bus lines  322 ,  324 , and the like. The main CPU  300  and the GPU  302  are connected through a dedicated bus. Additionally, the main CPU  300  and the input/output processor  304  are connected through a high-speed BUS. Likewise, the input/output processor  304 , the CD/DVD/BD processor  314 , the mask ROM  310 , the sound processor  312 , the card-type connector  320 , and the hard disk drive  334  are connected through the high-speed BUS. 
         [0051]    The main CPU  300  executes an operating system program for the main CPU  300  stored in the mask ROM  310  to control the operation of the game machine  200 . Further, the main CPU  300  reads various kinds of programs and other data from an optical disk such as a BD, DVD-ROM, or CD-ROM and loads the programs into the main memory  308 . Furthermore, the main CPU  300  executes the programs loaded to the main memory  308 . Alternatively, the main CPU  300  downloads various kinds of programs and other data via the communication network, and executed the downloaded programs. 
         [0052]    The input/output processor  304  executes an operating system program for the input/output processor stored in the mask ROM  310  to control data input/output with the operation device  202 , a memory card  326 , the USB connection terminal  208 , Ethernet (registered trademark)  330 , an IEEE1394 terminal, not shown, and the PC card slot. Data input/output with the operation device  202  and the memory card  326  are controlled via the interface  232  including a multimedia slot and a wireless communication port. 
         [0053]    The GPU  302  has a function of a geometry transfer engine for executing coordinate conversion and so on, and a function of a rendering processor. The GPU  302  draws an image in a frame buffer, not shown, according to rendering instructions given by the main CPU  300 . For example, in the case where programs stored on an optical disk use  3 D graphics, the GPU  302  calculates, in a geometry operation process, the coordinates of polygons to constitute a three-dimensional object. Further, the GPU  302  makes, in a rendering process, an image that may be obtained by shooting the three-dimensional object by a virtual camera. The GPU  302  writes the thus obtained image into the frame buffer. The GPU  302  then outputs a video signal corresponding to the stored image to the television monitor  204 . Thus, an image is displayed on a screen  204   b  of the television monitor  204 . 
         [0054]    The sound processor  312  has an ADPCM (Adaptive Differential Pulse Code Modulation) decoding function, an audio signal reproducing function, and a signal modulating function. The ADPCM decoding function is a function for generating waveform data from sound data encoded with ADPCM. The audio signal reproduction function is a function for generating an audio signal for, e.g., sound effects, from waveform data stored in a sound buffer incorporated in or externally connected with the sound processor  312 . Internal speakers  204   a ,  204   a  of the television monitor  204  output sound represented by an audio signal. The signal modulating function is a function for modulating waveform data stored in the sound buffer. 
         [0055]    When the game machine  200  is turned on, the operating system programs for the main CPU  300  and the input/output processor  304  are read from the mask ROM  310 . These operating system programs are executed by the main CPU  300  and the input/output processor  304 . Thus, the main CPU  300  centrally controls each component of the game machine  200 . On the other hand, the input/output processor  304  controls signal input/output between elements such as the controller  202 , and the memory card  326 , and the game machine  200 . Also, by executing the operating system program, the main CPU  300  performs initialization such as operation check and so on. The main CPU  300  then controls the optical disk reproduction unit  306  to read an application program for a game and the like from an optical disk. After loading the application program in the main memory  308 , the main CPU  300  executes the program. By executing the application program, the main CPU  300  controls the GPU  302  and the sound processor  312  following the operator&#39;s instructions received through the operation device  202  and the input/output processor  304  to control image display and production of a sound effect, a music sound, or the like. 
         [0056]    The content recommendation system  10  applies two kinds of filters in an overlapping manner to select songs recommended to a user from among many songs.  FIG. 5  is a figure schematically illustrating first metadata using a first filter.  FIG. 6  is a figure schematically illustrating second metadata using a second filter. Any one of them is stored in the database  14   a . As shown in  FIG. 5 , the first metadata includes a music ID and a plurality of attribute values of attributes. The music ID is information for identifying each of many songs recommended by the content recommendation system  10  to the user. A plurality of attributes suitable for representing features of each song are prepared in advance, and these attribute values of attributes are given to each song. Regarding attributes and attribute values, in a case where the attribute is a style of song, examples of attribute values include rock music, pop music, classical music, jazz music, and the like. In a case where the attribute is a year when an artist was born and a year when an artist made debut, examples of attribute values include 1950, 1960, 1970, and the like. In a case where the attribute is a year when a song was rated in hit chart, examples of attribute values include 1999, 2000, 2001, and the like. In a case where the attribute is a nationality of an artist, examples of attribute values include Japan, America, and the like. In a case where the attribute is a sex of an artist, examples of attribute values include male and female. Some of attribute values of attributes may be input as a result of analytic processing performed by a computer. However, most of the attributes are desirably input by a person. 
         [0057]    As shown in  FIG. 6 , the second metadata includes a music ID and a plurality of feature quantities of features. Examples of features include a tempo of a song, the degree how much a sound having a particular frequency is included in a song, and the degree how many times a particular keyword appears in an explanatory text of a song. These feature quantities may be input as a result of analytic processing performed by a computer. In the explanation below, a vector whose component is the feature quantity of a feature is described as a feature vector. 
         [0058]    In the content recommendation system  10 , in view of user&#39;s preference, a condition of an attribute value (attribute value condition) is successively changed by a random number, so that a song whose first metadata satisfies the attribute value condition is extracted from many songs using the first filter. Subsequently, the degree of similarity between a preference vector representing a feature of the song preferred by the user and a feature vector of each song is calculated for each song thus extracted. A predetermined number of songs having a higher degree of similarity are determined, in the descending order of the degree of similarity, as songs which are to be recommended to the user. Like the feature vector of each song, the preference vector is a vector whose component is the feature quantity of a feature as shown in  FIG. 6 . These preference vectors may be generated by composing the feature vectors of songs preferred by the user. The degree of similarity between vectors may be an angle between both of the vectors. In this case, the smaller the formed angle is, the higher the degree of similarity is. According to the present embodiment, various types of songs are successively presented to the user, and contents continuously interesting to the user can be recommended. 
         [0059]      FIG. 7  is an operation flow diagram of the content recommendation system  10 . First, in the content recommendation system  10 , theme data is selected by the user apparatus  12  (S 201 ). The theme data includes a theme template ID and an attribute value serving as a parameter of a theme template identified by the theme template ID. As shown in  FIG. 8 , the theme template is a template for generating a condition of each attribute value (attribute value condition) of a song, and attribute values of attributes specified by the theme template is given as parameters, whereby an attribute value condition of the song is obtained. In  FIG. 8 , attributes of “year when an artist was born” and “style” are specified, and for example, “1980” and “rock music” are given to these attributes, whereby an attribute value condition indicating that “the year when the artist was born is 1980&#39;s, and the style is rock music” is obtained. In the above first filter, reference is made to the first metadata as shown in  FIG. 5 , and songs satisfying the attribute value condition thus determined are selected from among many songs. 
         [0060]    A plurality of theme templates are generated by a person in advance, and the theme template ID is information for identifying each theme template. As shown in  FIG. 9 , for each theme template ID, the user apparatus  12  stores the degree of user&#39;s preference of the theme template identified by the theme template ID (the degree how much the user prefers it), i.e., theme preference distribution data. The user apparatus  12  generates a random number, and successively selects each theme template ID according to a probability based on the degree of preference. Then, the attribute specified by the theme template identified by the selected theme template ID is obtained, and an attribute value of the attribute in question is selected. Also at this occasion, the attribute value of each attribute is selected according to a random number based on the degree of attribute. In other words, as shown in  FIG. 10 , for all the attributes, the user apparatus  12  stores the degree of user&#39;s preference for each attribute value, i.e., attribute value preference distribution data. The user apparatus  12  generates a random number, and selects an attribute value of the attribute specified according to a probability based on the degree of preference. Thereafter, the user apparatus  12  transmits, to the server  14 , the preference vector and the theme data of the user stored in advance (S 202 ). 
         [0061]    The server  14  applies a change to the theme data received from the user apparatus  12  (S 401 ). In other words, the database  14   a  stores theme group data as shown in  FIG. 11 . The theme group data includes IDs of a plurality of common theme templates and a group ID. When the server  14  obtains a theme template ID included in theme data, the server  14  refers to the theme group data, and selects one of theme template IDs which belongs to the same group as the obtained theme template ID based on a random number. Then, the attribute specified by the theme template identified by the theme template ID thus selected is obtained, and the attribute value is determined. At this occasion, as shown in  FIG. 12 , the database  14   a  stores an attribute value conversion dictionary including many pairs of attributes and attribute values, each associated with one or more pairs of other attributes and attribute values. The server  14  refers to the attribute value conversion dictionary to convert the attribute value of each attribute included in theme data received from the user apparatus  12  into the attribute value of the attribute newly obtained. Thus, the server  14  generates another theme data related to the theme data received from the user apparatus  12 . Thereafter, an attribute value condition is obtained from theme data thus generated. Then, while referring to the first metadata, songs satisfying the obtained attribute value condition are selected from among many songs managed by the database  14   a  (S 402 ). When the songs are selected in this manner, songs can be selected in a more unexpected manner, compared with a case where songs are selected simply using the theme data transmitted from the user apparatus  12 . 
         [0062]    Subsequently, the server  14  calculates the degree of similarity between the preference vector received from the user apparatus  12  and the feature vector of each song selected in S 402 , and selects a predetermined number of songs having a higher degree of similarity in the descending order of the degree of similarity (S 403 ). Then, a list of songs including music IDs of the predetermined number of songs is replied to the user apparatus  12  (S 404 ). When the user apparatus  12  receives a music list, the user apparatus  12  transmits one of music IDs included in the music list to the server  14  (S 203 ), and the server  14  reads data of songs identified by the music ID from the database  14   a , and replies the data (S 405 ). The user apparatus  12  plays data of the song thus replied (S 204 ), and the internal speakers  204   a ,  204   a  of the television monitor  204  output songs. At this occasion, information such as the title and the name of the artist of the currently played may be displayed on the screen  204   b  of the television monitor  204 . When the songs of all the music IDs included in the music list are played as described above, the user apparatus  12  executes the processing of S 201  again. 
         [0063]    Now, the functional configurations of the user apparatus  12  and the server  14  will be explained.  FIG. 13  is a functional block diagram of the user apparatus  12 .  FIG. 14  is a functional block diagram of the server  14 . The functional blocks as shown in these figures are achieved by causing the user apparatus  12  and the server  14  to respectively execute programs. Each program is previously stored in a readable information storage medium in the user apparatus  12  or the server  14 , and may be installed to the user apparatus  12  and the server  14  via the medium. Alternatively, it may be downloaded from another computer via the data communication network  18 . 
         [0064]    As shown in  FIG. 13 , the user apparatus  12  includes a theme selection unit  41 , a theme preference distribution data storage unit  42 , a theme preference distribution data learning unit  43 , a request unit  44 , an attribute value determination unit  45 , an attribute value preference distribution data storage unit  46 , an attribute value preference distribution data learning unit  47 , a preference vector storage unit  48 , a theme template storage unit  49 , a preference vector learning unit  50 , an operation unit  51 , and a music reproduction unit  52 . 
         [0065]    First, the theme preference distribution data storage unit  42  is mainly constituted by the hard disk drive  334  or the memory  308 , and stores theme preference distribution data as shown in  FIG. 9 . The theme preference distribution data learning unit  43  is mainly constituted by the main CPU  300  and the memory  308 . The theme preference distribution data is updated according to the contents of operation performed on the operation unit  51 . More specifically, for a predetermined number of songs or more included in the music list transmitted from the server  14 , processing is performed to increase the degree of user&#39;s preference associated with the ID of the template used for generating the music list in the server  14 , when (1) where s song is played to the end without performing a skip operation (positive situation  1 ) and when (2) a particular operation is performed to indicate that the song is preferred by the user (positive situation  2 ). In other words, when the positive situation  1  or  2  occurs with respect to the song in the music list generated by the theme template, the degree of preference of the theme template is increased. On the contrary, for a predetermined number of songs or more, processing is performed to decrease the degree of user&#39;s preference associated with the ID, when (1) playback of the song is interrupted by performing skip operation (negative situation  1 ) and when (2) a operation of characteristic is performed to indicate that the song is not preferred by the user (negative situation  2 ). In other words, when the negative situation  1  or  2  occurs with respect to the song in the music list generated by the theme template, the degree of preference of the theme template is decreased. The theme selection unit  41  is mainly constituted by the main CPU  300  and the memory  308 . The theme selection unit  41  refers to the theme preference distribution data stored in the theme preference distribution data storage unit  42  to successively select each theme template ID according to a probability based on the degree of preference. More specifically, the theme selection unit  41  has a range of random values in association with each theme template ID, and the size of the range is set according to the degree of preference. The theme selection unit  41  generates a random number, and selects a theme template ID associated with the range to which the random number belongs. 
         [0066]    The attribute value preference distribution data storage unit  46  is mainly constituted by the hard disk drive  334  or the memory  308 , and stores the attribute value preference distribution data as shown in  FIG. 10 . The attribute value preference distribution data learning unit  47  updates the attribute value preference distribution data according to the contents of operation performed on the operation unit  51  and the attribute values of music data stored in the user apparatus  12 . More specifically, when any one of the above positive conditions occurs with respect to a predetermined number of songs or more in the music list transmitted from the server  14 , a pair of attributes and attribute values which are necessary conditions in the attribute value condition used for generating the music list in the server  14  are obtained, and processing is performed to increase the degree of user&#39;s preference associated with the obtained attribute value in the attribute value preference distribution data relating to the obtained attribute. On the contrary, when any one of the above negative conditions occurs with respect to a predetermined number of songs or more, processing is performed to decrease the degree of user&#39;s preference associated with the attribute value in the attribute value preference distribution data. 
         [0067]    When any one of the above positive conditions occurs with respect to the song currently played in the user apparatus  12 , the first metadata of the song in question is obtained from the server  14 . Then, processing is performed to increase the degree of user&#39;s preference associated with the attribute value of the attribute included in the obtained first metadata in respective attribute value preference distribution data. On the contrary, when any one of the above negative conditions occurs, the first metadata of the song in question is obtained from the server  14 . Then, processing is performed to decrease the degree of user&#39;s preference associated with the attribute value of the attribute included in the obtained first metadata in respective attribute value preference distribution data. 
         [0068]    Further, the attribute value preference distribution data learning unit  47  is mainly constituted by the main CPU  300  and the memory  308 . The attribute value preference distribution data learning unit  47  searches all the music data stored in the hard disk drive  334  and other storage devices arranged in the user apparatus  12  of the user owned by the user, and obtains the first metadata of each song from the server  14 . Then, processing is performed to increase the degree of user&#39;s preference associated with the attribute value of the attribute included in the obtained first metadata in respective attribute value preference distribution data. By doing so, respective attribute value preference distribution data can be made according to the songs owned by the user, and reflect a variety of user&#39;s preferences about songs, whereby various kinds of songs can be recommended to the user. In this case, respective attribute value preference distribution data are updated according to music data stored in the storage device arranged on the user apparatus  12 . When the music data of the songs owned by the user are stored in another computer connected to the data communication network  18  of the server  14  and the like, respective attribute value preference distribution data may be updated according to the music data of the user stored in the another computer. 
         [0069]    The theme template storage unit  49  is mainly constituted by the hard disk drive  334  or the memory  308 , and stores many theme templates as shown in  FIG. 8 . The attribute value determination unit  45  is mainly constituted by the main CPU  300  and the memory  308 . When the attribute value determination unit  45  receives the theme template ID from the theme selection unit  41 , the attribute value determination unit  45  reads the theme template identified by the theme template ID from the theme template storage unit  49  to check attribute (the name of attribute) specified therein. Then, the attribute value preference distribution data of each attribute specified from the attribute value preference distribution data storage unit  46 . Thereafter, the attribute value determination unit  45  refers to the attribute value preference distribution data having been read, and selects an attribute value of each attribute according to a probability based on the degree of preference. More specifically, the attribute value determination unit  45  has a range of random values in association with each attribute value, and the size of the range is set according to the degree of preference. The attribute value determination unit  45  generates a random number, and selects an attribute value associated with the range to which the random number belongs. 
         [0070]    The preference vector storage unit  48  is mainly constituted by the hard disk drive  334  or the memory  308 , and stores preference vector of the user. The request unit  44  is mainly constituted by the main CPU  300 , the memory  308 , the input/output processor  304 , and the Ethernet  330 . The preference vector and the theme data are paired, and transmitted to the server  14 . The theme data includes the theme template ID output from the theme selection unit  41  and the attribute value of each attribute output from the attribute value determination unit  45 . 
         [0071]    The preference vector learning unit  50  is mainly constituted by the main CPU  300  and the memory  308 , and updates the preference vector based on the contents of operation performed with the operation unit  51 . More specifically, when any one of the above positive conditions occurs with respect to the song currently played in the user apparatus  12 , the preference vector learning unit  50  obtains the second metadata of the song in question from the server  14 . Then, the preference vector is updated so as to bring the current preference vector closer to the feature vector represented by the obtained second metadata. On the contrary, when any one of the above negative conditions occurs, the metadata of the song in question is obtained from the server  14 , and the preference vector may be updated so as to bring the current preference vector away from the feature vector represented by the obtained second metadata. 
         [0072]    The music reproduction unit  52  is mainly constituted by the main CPU  300 , the memory  308 , the sound processor  312 , the input/output processor  304 , and the Ethernet  330 . The music reproduction unit  52  receives a music list from the server  14 , and transmits music IDs included in the music list to the server  14  in order. Then, the music reproduction unit  52  receives music data corresponding to the music ID from the server  14 , and reproduces the music data. The operation unit  51  is configured to include the operation device  202 . The operation unit  51  is used to instruct the music reproduction unit  52  to skip a currently-played song, explicitly indicate that the song is a user&#39;s favorite song, or explicitly indicate that the song is a song which is not preferred by the user. 
         [0073]    Subsequently, as shown in  FIG. 14 , the server  14  includes a server main body  14   b  and a database  14   a . The server main body  14   b  is arranged with a request reception unit  21 , a first filter  22  including a theme data change unit  22   a  and a music list generation unit  22   b , a second filter  23 , music list reply unit  24 , and a music distribution unit  25 . On the other hand, the database  14   a  is arranged with a theme group data storage unit  31 , a theme template storage unit  32 , an attribute value conversion dictionary storage unit  33 , a first metadata storage unit  34 , a second metadata storage unit  35 , and a music data storage unit  36 . 
         [0074]    First, the theme group data storage unit  31  is mainly constituted by the hard disk drive  73  or the memory  71 , and stores the theme group data as shown in  FIG. 11 . The theme template storage unit  32  stores the theme template as shown in  FIG. 8 . The attribute value conversion dictionary storage unit  33  is mainly constituted by the hard disk drive  73  or the memory  71 , and stores the attribute value conversion dictionary as shown in  FIG. 12 . The first metadata storage unit  34  is mainly constituted by the hard disk drive  73  or the memory  71 , and stores the first metadata as shown in  FIG. 5 . Further, the second metadata storage unit  35  is mainly constituted by the hard disk drive  73  or the memory  71 , and stores the second metadata as shown in  FIG. 6 . Further, the music data storage unit  36  is mainly constituted by the hard disk drive  73 , and stores data of many songs (music data) associated with identification information of the songs, i.e., music IDs. 
         [0075]    The request reception unit  21  is mainly constituted by the processor  70 , the memory  71 , and the communication interface  76 , and receives the preference vector and the theme data from the user apparatus  12 . The theme data change unit  22   a  is mainly constituted by the processor  70  and the memory  71 . The theme data change unit  22   a  refers to the theme group data stored in the theme group data storage unit  31 , and selects one of theme template IDs which belong to the same group as the theme template ID included in the received theme data according to a random number. Further, the theme template of the selected theme template ID is read from the theme template storage unit  32 , and checks the attribute specified by the theme template. Then, the attribute value conversion dictionary stored in the attribute value conversion dictionary storage unit  33  is looked up, and the attribute value of each attribute included in the received theme data is converted to an attribute value of each specified attribute. The theme template ID thus newly selected and the converted attribute value of each attribute are given to the music list generation unit  22   b  as theme data. 
         [0076]    The music list generation unit  22   b  is mainly constituted by the processor  70  and the memory  71 . The music list generation unit  22   b  refers to the first metadata stored in the first metadata storage unit  34 , and selects a song attached with the received attribute value of each attribute. Then, the music list generation unit  22   b  outputs a list of music IDs of these songs. 
         [0077]    The second filter  23  is mainly constituted by the processor  70  and the memory  71 , and receives a list of music IDs from the music list generation unit  22   b , and receives the preference vector from the request reception unit  21 . Then, the feature vector stored in the second metadata storage unit  35  is read in association with each music ID included in the list, and the degree of similarity between each feature vector and the preference vector is calculated. Then, the songs are sorted by the degree of similarity, and a predetermined number of songs are selected in the descending order of the degree of similarity. Then, a list of IDs of the songs thus selected is output. The music list reply unit  24  replies the thus obtained list to the user apparatus  12 . 
         [0078]    The music distribution unit  25  is mainly constituted by the processor  70 , the memory  71 , and the communication interface  76 . The music distribution unit  25  receives the music ID from the music reproduction unit  52  of the user apparatus  12 , reads the music data stored in the music data storage unit  36  in association with the music ID, and replies the music data to the user apparatus  12 . 
         [0079]    The content recommendation system  10  as described above applies the first filter  22  and the second filter  23  in an overlapping manner to select some of many contents, and causes the user apparatus  12  to reproduce and output the selected contents in order. The first filter  22  selects songs according to attribute value conditions successively generated by the theme selection unit  41 , the attribute value determination unit  45 , and the theme data change unit  22   a . The second filter  23  selects songs according to the degree of similarity between the feature vector of each song and the preference vector of the user. Therefore, various songs can be recommended to the user, compared with a case where songs are selected simply using a preference vector. In particular, since the attribute value condition is determined based on a random number, songs can be recommended to the user in an unexpected manner. Further, the first filter  22  extracts some of many songs, and thereafter, the processing of the second filter  23  is executed on some of the songs. Therefore, the amount of calculation necessary for recommending songs can be reduced. 
         [0080]    Further, the theme data are generated upon stochastically selecting a theme template according to the theme preference distribution data and stochastically selecting an attribute value according to the attribute value preference distribution data. Therefore, various kinds of theme data can be generated according to the user&#39;s preference. Since songs are selected using these various kinds of theme data, various kinds of songs can be recommended to the user. Further, the theme data change unit  22   a  uses the theme group data and the attribute value conversion dictionary to change the theme data received from the user apparatus  12  to another theme data. Accordingly, the first filter  22  can select songs according to the theme template and the attribute value which are not yet stored in the user apparatus  12 . Therefore, the degree of unexpectedness and diversity in song selection can be increased. 
         [0081]    Further, in the content recommendation system  10 , the attribute value preference distribution data are updated according to the attribute values of the songs owned by the user. Therefore, even though the user has various kinds of preferences in music, various kinds of songs can be recommend according to the various kinds of preferences. 
         [0082]    The present invention is not limited to the above embodiment. Various modifications may be applied. For example, the content recommendation processing may not be shared by the user apparatus  12  and the server  14 . One computer may select songs recommended to the user. On the contrary, the content recommendation processing may be shared by many computers. In the explanation above, the attribute value preference distribution data are updated based on the contents of operation performed with the operation unit  51 . However, the attribute value preference distribution data may be updated based on only the songs owned by the user. Alternatively, instead of using the second filter  23 , songs selected by the first filter  22  may be recommended to the user as they are. 
         [0083]    Alternatively, first, the server  14  may select songs with the second filter, and thereafter, the user apparatus  12  may further select songs from among the selection result (narrowing down) with the first filter.  FIG. 15  illustrates this modified operation flow diagram. In the content recommendation system  10  according to the modification, first, the user apparatus  12  transmits user&#39;s preference vector to the server  14  (S 501 ). 
         [0084]    The server  14  calculates the degree of similarity between the preference vector received from the user apparatus  12  and each feature vector of all or some of the songs stored in the music database  36 , and selects a predetermined number of songs having a higher degree of similarity in the descending order of the degree of similarity (S 601 ). Then, a music list including the music IDs of the predetermined number of songs is replied to the user apparatus  12  (S 602 ). When the user apparatus  12  receives the music list, theme data are selected (S 502 ). The method for selecting theme data is the same as  FIG. 7 . Then, the user apparatus  12  obtains an attribute value condition based on the theme data selected in S 502 . Thereafter, while referring to the first metadata, songs satisfying the obtained attribute value condition are selected from among the songs included in the music list received from the server  14 , and the music IDs of the songs thus selected are included in the music list (S 503 ). Thereafter, finally, one of the music IDs included in the music list is transmitted to the server  14  (S 504 ). Then, the server  14  reads data of the song identified by the music ID from the database  14   a , and replies the data (S 603 ). The user apparatus  12  reproduces the data of the song thus replied (S 505 ), and the internal speakers  204   a ,  204   a  of the television monitor  204  output music. When the songs of all the music IDs included in the music list are reproduced in this manner, the user apparatus  12  executes the processing of S 201  again. When the processings are thus performed, the load of the processings of the server  14  can be reduced. 
         [0085]    Alternatively, selection of songs based on the first metadata may be shared by the user apparatus  12  and the server  14 . For example, when the attribute value condition includes a plurality of AND conditions (product set), the server  14  may select songs satisfying some of the conditions, and the user apparatus  12  may select songs satisfying the remaining conditions from among the songs included in the selection result. The user apparatus  12  may determine, based on the remaining conditions, the order of reproduction of the songs included in the selection result given by the server  14  or the songs further satisfying the remaining conditions. 
         [0086]    Alternatively, songs reproduced by the user apparatus  12  or the server  14  may exclude songs which the user does not like. In a case where an operation is performed with the operation device  202  to explicitly indicate negative evaluation during reproduction of a song (particular operation indicating that the user does not like the song) or an operation is performed to give an instruction of pausing reproduction, the user apparatus  12  causes the music ID of the song to be included in a disliked music list stored in the hard disk drive  334 . When the user apparatus  12  receives the music list from the server, and the music list includes a music ID of the song listed in the disliked music list, the song may not be allowed to be reproduced. Alternatively, when the disliked music list of each user is managed by the server  14 , and a music list is generated in the server  14 , the music list may not include the music ID of the song listed in the disliked music list. 
         [0087]    Instead of generating the disliked music list, a classifier (SVM: Support Vector Machine) may be used to determine whether the user likes or dislikes each song. For example, classifier software is installed to the user apparatus  12 . In a case where an operation is performed with the operation device  202  to explicitly indicate negative evaluation during reproduction of a song (particular operation indicating that the user does not like the song, or an operation is performed to give an instruction of pausing reproduction, or in a case where an operation is performed with the operation device  202  to explicitly indicate favorable evaluation during reproduction of a song (particular operation indicating that the user likes the song), or the song is played until the end of the song without interruption, this fact is input to the classifier, so that the classifier learns the user&#39;s preference. Then, for each song having the music ID included in the music list transmitted from the server  14 , the classifier may determine whether the user likes a song or not, and the song disliked by the user may not be allowed to be reproduced. 
         [0088]    The user apparatus  12  may be achieved with various kinds of hardware. For example, the user apparatus  12  may be achieved with the portable game machine.  FIG. 16  illustrates an external appearance of a portable game machine. The portable game machine  400  reproduces digital contents such as moving images, still images and music, and executes a game program and the like. Each content is read from an external storage medium detachable from the portable game machine  400 , or is downloaded via data communication. The external storage medium according to this embodiment is a small optical disk  402  such as a UMD (Universal Media Disc) and a memory card  426 . The optical disk  402  and the memory card  426  respectively are mounted on a drive device (not shown) provided in the portable game machine  400 . The optical disk  402  is not only capable of storing music data and still image data but also storing moving image data such as a movie having a relatively large data size. The memory card  426  is a small memory card which can also be detachably installed in a digital camera or a cell phone. The memory card  426  primarily stores still image data, moving image data, audio data, and the like, generated by the user by using another device or data exchanged with other devices. 
         [0089]    The portable game machine  400  is provided with a liquid crystal display  404 , operation unit members such as an arrow key  416 , an analog stick  418 , buttons  420 , and the like. The user holds the right and left ends of the portable game machine  400  with both hands. The arrow key  416  or the analog stick  418  is operated primarily by the left thumb to specify up/down/left/right movement. The buttons  420  are used primarily by the right thumb to provide various instructions. Unlike the arrow key  416  and the buttons  420 , a home button  436  is provided at a position not likely to be pressed by any finger when the left and right ends of the portable game machine  400  are held with both hands, thereby preventing erroneous operations. The liquid crystal display  404  displays a menu screen and a reproduction screen of each content. The portable game machine  400  is also provided with communication functions achieved via a USB port and a wireless LAN, for data exchange with other devices using the USB port and the wireless LAN. The portable game machine  400  is further provided with a select button  440 , a start button  438 , and the like. The start button  438  is used, e.g., when the user instructs the portable game machine  400  to start a game, start reproduction of contents such as a movie or music, or pause the game or the playback of the movie or music. The select button  440  is used to select a menu item displayed on the liquid crystal display  404 . 
         [0090]      FIG. 17  illustrates an internal circuit configuration of the portable game machine  400 . The portable game machine  400  includes a control system  540  including a CPU  541 , peripheral devices, and the like, a graphics system  550  including a GPU  552  and the like for drawing an image in a frame buffer  553 , a sound system  560  including a SPU (sound processing unit)  561  and the like for generating music sounds, sound effects, and the like, an optical disk control unit  570  for controlling an optical disk  402  storing an application program, a wireless communication unit  580 , an interface unit  590 , an operation input unit  502 , a bus connected to each of the above units, and the like. 
         [0091]    The sound system  560  includes an SPU  561  for generating, e.g., music sounds and sound effects under the control of the control system  540 , a sound buffer  562  in which waveform data and the like are recorded by this SPU  561 , and a speaker  544  for outputting, e.g., music sounds and sound effects which are generated by the SPU  561 . 
         [0092]    The SPU  561  has an ADPCM decoding function for reproducing sound data encoded with ADPCM, a reproduction function for generating e.g., sound effects, by reproducing waveform data stored in the sound buffer  562 , and a modulation function for modulating and reproducing waveform data stored in the sound buffer  562 . 
         [0093]    The optical disk control unit  570  includes an optical disk device  571  for reproducing data such as programs recorded in an optical disk, a decoder  572  for decoding recorded data attached with, e.g., Error Correction Code (ECC), and a buffer  573  increasing the speed of reading data from the optical disk by temporarily storing data read from the optical disk device  571 . The decoder  572  is connected to a sub-CPU  574 . 
         [0094]    The interface unit  590  includes a parallel I/O interface (PIO)  591  and a serial I/O interface (S 10 )  592 . These are interfaces connecting the memory card  426  and the portable game machine  400 . 
         [0095]    The operation input unit  502  provides an operation signal according to user&#39;s operation to the CPU  541 . The wireless communication unit  580  wirelessly communicates via an infrared port or a wireless LAN. Under the control of the control system  540 , the wireless communication unit  580  transmits data to another apparatus and receives data from another apparatus directly or via a wireless communication network such as the Internet. 
         [0096]    The graphics system  550  includes a geometry transfer engine (GTE)  551 , a GPU  552 , a frame buffer  553 , an image decoder  554 , and a display unit  404 . 
         [0097]    The GTE  551  has a parallel computing mechanism for executing multiple computations in parallel. The GTE  551  performs high-speed calculation of coordinate conversion, light-source calculation, calculation of matrix and vector, and the like in response to calculation request given by the main CPU  541 . Then, based on the calculation result of the GTE  551 , the control system  540  defines a three-dimensional model as a combination of basic unit figures (polygons) such as a triangle and a quadrangle, and transmits a drawing instruction corresponding to each polygon for drawing a three-dimensional image to the GPU  552 . 
         [0098]    The GPU  552  draws a polygon in the frame buffer  553  according to a drawing instruction given by the control system  540 . Further, the GPU  552  performs flat shading, Gouraud shading for determining the color in the polygon by interpolating the color at the apexes of the polygon, and texture mapping for pasting textures stored in a texture region of the frame buffer to the polygon. 
         [0099]    The frame buffer  553  stores an image drawn by the GPU  552 . This frame buffer  553  is constituted by a so-called dual port RAM. The frame buffer  553  can perform, at a time, drawing operation of the GPU  552 , transfer from the main memory  543 , and reading operation for display. This frame buffer  553  includes not only a display region for outputting as a video output but also a CLUT region storing a Color Look Up Table (CLUT) which is looked up by the GPU  552  to draw a polygon and the like and the texture region storing textures. These CLUT region and the texture region are dynamically changed according to changes of display region and the like. 
         [0100]    Under the control of the control system  540 , the display unit  3  displays an image stored in the frame buffer  553 . Under the control of the CPU  541 , the image decoder  554  decodes image data of still images or moving images stored in the main memory  543  and compressed and encoded by orthogonal transformation such as discrete cosine transform under the control of the CPU  541 , and stores the decoded image data to the main memory  543 . 
         [0101]    The control system  540  includes the CPU  541 , a peripheral device control unit  542  for performing, e.g., control of direct memory access (DMA) transfer and interruption control, the main memory  543  made of a RAM, and a ROM  544 . The ROM  544  stores programs such as an operating system and the like for controlling the respective units of the portable game machine  400 . The CPU  541  controls the overall portable game machine  400  by reading the operating system stored in the ROM  544  to the main memory  543  and executing the operating system having been read. The user apparatus  12  can also be achieved using the portable game machine  400  as described above. 
         [0102]    The user apparatus  12  can also be achieved using a general-purpose personal computer.  FIG. 18  illustrates an internal circuit configuration of the general-purpose personal computer. 
         [0103]    The general-purpose personal computer includes, as its principal components, a main CPU  600 , a graphics processing unit  602 , an input unit  604 , an output unit  605 , a drive  614 , a main memory  608 , and a ROM  610 . The main CPU  600  controls signal processing and internal constituent elements based on programs such as an operating system and an application. The GPU  602  performs image processing. 
         [0104]    These units are connected with each other via a bus line  622 . The bus line  622  is further connected to an input/output interface  632 . The input/output interface  632  is connected to a storage unit  634  such as a hard disk and a nonvolatile memory, an output unit  605  including a display and a speaker, an input unit  604  including a keyboard, a mouse, a microphone, and the like, a peripheral device interface such as USB and IEEE1394, a communication unit  630  including a network interface for a wired or wireless LAN, and a drive  614  for driving a removable recording medium  626  such as an own plane disk, an optical disk, or a semiconductor memory. 
         [0105]    The main CPU  600  controls the overall operation of the personal computer by executing the operating system stored in the storage unit  634 . Further, the main CPU  600  executes various kinds of programs read from the removable recording medium  626  and loaded to the main memory  608  or downloaded via the communication unit  630 . 
         [0106]    The GPU  602  has functions of a geometry transfer engine and a rendering processor. The GPU  602  performs drawing processing according to a drawing instruction given by the main CPU  600 , and stores a display image to a frame buffer, not shown. The GPU  602  converts the display image stored in the frame buffer into a video signal, and outputs the video signal. The user apparatus  12  can also be achieved with the personal computer as described above.