Abstract:
Content recommendation apparatus and methods using a tag cloud provide a content recommendation service via a network. The apparatus includes a content tag cloud generating module configured to generate a content tag cloud by analyzing a tag assigned to each content and accumulating frequencies per tag of each content. The apparatus also includes a user tag cloud generating module configured to generate a user tag cloud by accumulating frequencies per tag of contents used by a user. The apparatus further includes a similarity computing module and a recommending module. The similarity computing module is configured to compute a similarity between users using the user tag cloud, and the recommending module is configured to recommend content by computing a probability that a target user will use a specific content based on the computed similarity between users.

Description:
CLAIM OF PRIORITY 
       [0001]    This application claims priority under 35 U.S.C. §119(a) to Korean Patent Application No. 10-2007-0117987, filed on Nov. 19, 2007, in the Korean Intellectual Property Office, the entire contents of which are hereby incorporated by reference. 
       FIELD OF THE INVENTION 
       [0002]    The invention relates to content recommendation apparatus and methods, and in particular to content recommendation apparatus and methods that (a) compute similarities between users using tag clouds assigned to content and (b) recommend content to a user based on the computed similarities. 
       BACKGROUND OF THE INVENTION 
       [0003]    As the Internet continues to increase in popularity, the amount of available content continues to increase geometrically. In particular, the number of moving image-type UCCs (User Created Content) is increasing explosively. In this environment, users with limited information and limited time are having difficulty finding content that satisfies their interests. Recommendation systems are thus being used more and more to recommend appropriate content to users based on their inclinations and preferences. Known recommendation systems recommend content by determining a user neighborhood having similar inclinations as a target user and utilizing a relationship between the target user and a user of the user neighborhood. 
         [0004]    Conventional recommendation technology, however, has the following limitations. First, in the case of explicit data collection, the actual number of contents that are purchased, used, and/or evaluated by users is often small and, thus, the amount of content that can be recommended is limited. 
         [0005]    Also, conventional recommendation technologies often select users similar to a target user based on those users who used the same content as the target user. Thus, the range of similar users may be limited and, consequently, the range of recommendable content also may be limited, possibly resulting in the recommendation of undesired content. 
         [0006]    Moreover, in cases where the number of contents is larger than the number of users, the number of users who used the same content as the target user is usually small. Thus, finding users similar to a target user is difficult. 
         [0007]    Another limitation of conventional recommendation technologies is that similar users are selected on the basis of content used by a target user in the past. Then, only a content related to the subject in which the target user had an interest in the past is recommended. 
         [0008]    And because similar users are selected from those who used the same content as a target user, coverage for content beyond that actually used by the similar and target users is very low, for example, only about 10% to 30%. 
       SUMMARY OF THE INVENTION 
       [0009]    An object of the invention is to provide content recommendation apparatus and methods that increase coverage for contents by using tag clouds assigned to the contents. In those cases where the amount of content is large, the invention increases recommendation performance by effectively finding users similar to a target user. 
         [0010]    A content recommendation apparatus according to a first aspect of the invention provides a content recommendation service via a network, and includes a content tag cloud generating module configured to generate a content tag cloud by analyzing a tag assigned to each content and accumulating frequencies per tag of each content. Frequencies per tag is the number of times a particular tag was assigned by users to a given content. The content recommendation apparatus also includes a user tag cloud generating module, a similarity computing module, and a recommending module. The user tag cloud generating module is configured to generate a user tag cloud by accumulating frequencies per tag of contents used by a user. The similarity computing module is configured to compute a similarity between users using the user tag cloud, and the recommending module is configured to recommend a content by computing a probability that a target user will use a specific content based on the computed similarity between users. 
         [0011]    A content recommendation method according to a second aspect of the invention provides a content recommendation service via a network, and includes (a) generating a content tag cloud by analyzing a tag assigned to each content and accumulating frequencies per tag of each content; (b) generating a user tag cloud by accumulating frequencies per tag of contents used by a user; (c) computing a similarity between users using the user tag cloud; and (d) recommending a content by computing a probability that a target user will use a specific content based on the computed similarity between users. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0012]    The features and advantages of the invention will become more apparent upon consideration of the detailed description taken in conjunction with the accompanying drawings, in which like reference characters refer to like parts throughout, and in which: 
           [0013]      FIG. 1  illustrates a network configuration of a content recommendation system according to an embodiment of the invention; 
           [0014]      FIG. 2  illustrates an embodiment of the service management unit of  FIG. 1 ; 
           [0015]      FIG. 3  illustrates an embodiment of the content recommendation unit of  FIG. 1 ; 
           [0016]      FIG. 4  is a flow chart illustrating a process of constructing a content tag cloud according to an embodiment of the invention; 
           [0017]      FIG. 5  is a flow chart illustrating a process of constructing a user tag cloud according to an embodiment of the invention; and 
           [0018]      FIG. 6  is a flow chart illustrating a process for recommending content according to an embodiment of the invention. 
       
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
       [0019]      FIG. 1  shows a network configuration of a content recommendation system in accordance with the invention. The content recommendation system includes a plurality of user terminals  110  coupled to a content recommendation server  200  via a network  130 . Network  130  is capable of sending and receiving content and may be, for example, the Internet, a mobile communication network, or a wired or wireless network. User terminals  110  preferably have a wired or wireless Internet browser, and can be connected to the content recommendation server  200  using the browser. User terminals  110  are capable of receiving content provided by the content recommendation server  200 , and may be, for example, a desktop PC (personal computer), a notebook PC, a PDA (personal digital assistant), or a mobile communication terminal. Content recommendation server  200  recommends content to users at user terminals  110 . Content provided by content recommendation server  200  may include a moving image, a still image, a sound source (for example, an MP3 file), or an advertisement. 
         [0020]    The content recommendation server  200  provides a Web site including content and a content recommendation service to user terminals  110  connected to server  200  via network  130 . As shown in  FIG. 1 , content recommendation server  200  includes a service management unit  210  and a content recommendation unit  230  in accordance with the invention. The service management unit  210  stores and manages various content to be provided to a plurality of user terminals  110 . When a user terminal  110  is connected, service management unit  210  provides a Web site including content to the user terminal  110 . The service management unit  210  provides the user terminal  110  with a tag setting interface to enable a user to assign a related word (i.e., a tag) to each content included in the Web site, and stores and manages the tag assigned to each content. A set of tags assigned to each content is stored and managed as a tag cloud of each content. A user can assign, for example, a related word or words as a tag to a specific music video, such as, “sexy,” “wonder girls,” or “‘dance.” The service management unit  210  then stores and manages “sexy,” “wonder girls” and “dance” as a tag cloud of that music video. 
         [0021]    The service management unit  210  also provides content to a plurality of user terminals  110 , and generates, stores, and manages a tag cloud for each user. Where any one user uses a plurality of contents, the service management unit  210  synthesizes tag clouds of contents used by the user, generates a tag cloud for the corresponding user, and stores and manages the tag cloud. In generation of a tag cloud for each user, the service management unit  210  manages a generation frequency of each tag of the tag cloud. 
         [0022]    The content recommendation unit  230  selects a user neighborhood having similar inclinations using tag clouds of users that are generated, stored and managed by the service management unit  210 . The content recommendation unit  230  also recommends content to users in the similar user neighborhood based on a list of contents used by the users in the user neighborhood. A content recommendation algorithm is described in detail below. 
         [0023]      FIG. 2  shows a configuration of the service management unit  210  of  FIG. 1  according to an embodiment of the invention. Service management unit  210  includes a content usage list managing module  211 , a content tag cloud generating module  213 , a user tag cloud generating module  215 , a usage list database  212 , a content tag cloud database  214 , and a user tag cloud database  216 . 
         [0024]    The content usage list managing module  211  registers in the usage list database  212  a list of contents used by a user among various contents provided to a plurality of the user terminals  110  by the content recommendation server  200 . The content usage list managing module  211  also manages the content usage list. When a user terminal  110  connects to the content recommendation server  200  and uses a specific content, the content usage list managing module  211  indicates that usage in a user identification information (for example, cookie information, ID, and so on) of the user terminal  110 , and stores the content usage information in the usage list database  212 . The usage list database  212  maps an identification information of a content used by a user with each user identification information, and stores the mapping information. 
         [0025]    The content tag cloud generating module  213  registers in the content tag cloud database  214  tags assigned to various content provided to a plurality of user terminals  110  by the content recommendation server  200 . The content tag cloud generating module  213  manages the tags, provides the user terminals  110  with an interface to enable a user to directly assign a tag to a content, and receives the tag assigned to the content from the user. 
         [0026]    The content tag cloud generating module  213  receives a user-defined tag as a tag of a content. Alternatively, the content tag cloud generating module  213  provides a user with a plurality of preset tags, and receives any one tag or a plurality of tags as a tag of a content. The content tag cloud generating module  213  stores in the content tag cloud database  214  frequencies of tags assigned to each content by a user. The content tag cloud database  214  maps an identification information of each content with frequencies of tags assigned to a corresponding content, and stores the mapping information. For example, where a user # 1  assigns tags of “Park Ji-Sung” and “Manchester United” to a moving image A, and a user # 2  assigns tags of “Football” and “Park Ji-Sung” to the moving image A, the following is constructed in the content tag cloud database  214  as a tag cloud of the moving image A: {Park Ji-Sung2, Manchester United1, Football1}. 
         [0027]    The content tag cloud constructed by the content tag cloud generating module  213  is represented by Equation 2 below. Specifically, assuming that 
         [0028]    U={u 1 , u 2 , . . . , u l } is a neighborhood of users, 
         [0029]    V={v 1 , v 2 , . . . , v m } is a set of contents, 
         [0030]    T={t 1 , t 2 , . . . , t n } is a set of tags, and 
         [0031]    f ijk  is a variable having a value of ‘1’ when a user u i  assigns a tag t k  to a content v j , or otherwise having a value of ‘0’, 
         [0000]    a tag cloud VTC j  of content v j  is represented by the following Equation 2. 
         [0000]    
       
         
           
             
               
                 
                   
                     VTC 
                     j 
                   
                   = 
                   
                     ( 
                     
                       
                         
                           ∑ 
                           
                             i 
                             = 
                             1 
                           
                           l 
                         
                          
                         
                           f 
                           
                             ij 
                              
                             
                                 
                             
                              
                             1 
                           
                         
                       
                       , 
                       
                         
                           ∑ 
                           
                             i 
                             = 
                             1 
                           
                           l 
                         
                          
                         
                           f 
                           
                             ij 
                              
                             
                                 
                             
                              
                             2 
                           
                         
                       
                       , 
                       … 
                        
                       
                           
                       
                       , 
                       
                         
                           ∑ 
                           
                             i 
                             = 
                             1 
                           
                           l 
                         
                          
                         
                           f 
                           ijn 
                         
                       
                     
                     ) 
                   
                 
               
               
                 
                   Equation 
                    
                   
                       
                   
                    
                   2 
                 
               
             
           
         
       
     
         [0032]    That is, VTC j  is an n-dimensional vector indicating the total frequency of each tag t k  that users have assigned to a specific content v j . 
         [0033]    Whenever a user uses a content, the user tag cloud generating module  215  accumulates tag clouds assigned to the contents used by the user, and stores the tag clouds in the user tag cloud database  216  as a user tag cloud. The user tag cloud generating module  215  accumulates the frequency of each tag constructed for contents used by a user according to tag, and stores the frequencies of the entire tags in the user tag cloud database  216  as a user tag cloud. 
         [0034]    The user tag cloud constructed by the user tag cloud generating module  215  is represented by Equation 3 below. Assuming that a tag cloud of a user u i  is UTC i , when the user u i  signs up, the tag cloud UTC i  (which is an n-dimensional vector) is initialized to 0. Whenever the user u i  uses a content v j , the tag cloud UTC i  of the user u i  is updated according to Equation 3. 
         [0000]      UTC i ←UTC i +NVTC j    Equation 3 
         [0035]    Here, NVTC j  is obtained by normalizing VTC j , which is defined in Equation 4 below: 
         [0000]    
       
         
           
             
               
                 
                   
                     
                       
                         
                           NVTC 
                           j 
                         
                         = 
                         
                           
                             1 
                             
                               
                                 ∑ 
                                 
                                   k 
                                   = 
                                   1 
                                 
                                 n 
                               
                                
                               
                                 
                                   ∑ 
                                   
                                     i 
                                     = 
                                     1 
                                   
                                   l 
                                 
                                  
                                 
                                   f 
                                   ijk 
                                 
                               
                             
                           
                            
                           
                             VTC 
                             j 
                           
                         
                       
                     
                   
                   
                     
                       
                         = 
                         
                           ( 
                           
                             
                               
                                 
                                   ∑ 
                                   
                                     i 
                                     = 
                                     1 
                                   
                                   l 
                                 
                                  
                                 
                                   f 
                                   
                                     ij 
                                      
                                     
                                         
                                     
                                      
                                     1 
                                   
                                 
                               
                               
                                 
                                   ∑ 
                                   
                                     k 
                                     = 
                                     1 
                                   
                                   n 
                                 
                                  
                                 
                                   
                                     ∑ 
                                     
                                       i 
                                       = 
                                       1 
                                     
                                     l 
                                   
                                    
                                   
                                     f 
                                     ijk 
                                   
                                 
                               
                             
                             , 
                             
                               
                                 
                                   ∑ 
                                   
                                     i 
                                     = 
                                     1 
                                   
                                   l 
                                 
                                  
                                 
                                   f 
                                   
                                     ij 
                                      
                                     
                                         
                                     
                                      
                                     2 
                                   
                                 
                               
                               
                                 
                                   ∑ 
                                   
                                     k 
                                     = 
                                     1 
                                   
                                   n 
                                 
                                  
                                 
                                   
                                     ∑ 
                                     
                                       i 
                                       = 
                                       1 
                                     
                                     l 
                                   
                                    
                                   
                                     f 
                                     ijk 
                                   
                                 
                               
                             
                             , 
                             … 
                              
                             
                                 
                             
                             , 
                             
                               
                                 
                                   ∑ 
                                   
                                     i 
                                     = 
                                     1 
                                   
                                   l 
                                 
                                  
                                 
                                   f 
                                   
                                     ijn 
                                      
                                     
                                         
                                     
                                   
                                 
                               
                               
                                 
                                   ∑ 
                                   
                                     k 
                                     = 
                                     1 
                                   
                                   n 
                                 
                                  
                                 
                                   
                                     ∑ 
                                     
                                       i 
                                       = 
                                       1 
                                     
                                     l 
                                   
                                    
                                   
                                     f 
                                     ijk 
                                   
                                 
                               
                             
                           
                           ) 
                         
                       
                     
                   
                 
               
               
                 
                   Equation 
                    
                   
                       
                   
                    
                   4 
                 
               
             
           
         
       
     
         [0036]    Synthesizing Equations 3 and 4, UTC i  is the distribution of interest of user u i  in the subject of each tag. The use of the content v j  by the user u i  means that the user u i  has an interest in the subject of the content represented as NVTC j . Thus, Equation 3 represents a process in which an interest of a user is updated through a content usage behavior. 
         [0037]    For example, assume that {Park Ji-Sung2, Manchester United1, Football1} is constructed as a tag cloud of a moving image A and that a new user # 1  uses the moving image A. A tag cloud of user # 1  is normalized and constructed as {Park Ji-Sung1/2, Manchester United1/4, Football1/4}. And, in the case where user # 1  uses a moving image B having a tag cloud of {Lee Young-Pyo2, Tottenham1, Football1}, the tag cloud of the moving image B {Lee Young-Pyo2, Tottenham1, Football1} is normalized and added to the tag cloud of user # 1 : {Park Ji-Sung1/2, Manchester United1/4, Football1/4}. Finally, {Park Ji-Sung1/2, Manchester United1/4, Lee Young-Pyo1/2, Tottenham1/4, Football1/2} is constructed as a tag cloud of user # 1 . Here, a frequency of tags is arranged in a tag cloud of an n-dimensional vector according to a process for generating the entire tags. 
         [0038]      FIG. 3  shows a configuration of the content recommendation unit  230  of  FIG. 1  according to an embodiment of the invention. Content recommendation unit  230  includes a user similarity computing module  231  and a content recommending module  233 . User similarity computing module  231  computes a similarity between each user using tag clouds of the users stored in the user tag cloud database  216 . The user similarity computing module  231  computes a tag cloud similarity between two arbitrary users u i  and u i′  based on user tag clouds stored in the user tag cloud database  216 . The tag cloud similarity is represented by Equation 5 below. 
         [0039]    Assuming that a tag cloud similarity between two arbitrary users u i  and u i′  is sim(u i , u i′ ), a tag cloud of a user u i  is UTC i =(α 1   i , α 2   i , . . . , α n   i ) and a tag cloud of a user u i′  is UTC i′ =(α 1   i′ , α 2   i′ , . . . , α n   i′ ), sim(u i , u i′ ) can be computed as a cosine value of each angle between two vectors as shown in Equation 5. 
         [0000]    
       
         
           
             
               
                 
                   
                     
                       
                         
                           sim 
                            
                           
                             ( 
                             
                               
                                 u 
                                 i 
                               
                               , 
                               
                                 u 
                                 
                                   i 
                                   ′ 
                                 
                               
                             
                             ) 
                           
                         
                         = 
                         
                           cos 
                            
                           
                             ( 
                             
                               
                                 UTC 
                                 i 
                               
                               , 
                               
                                 UTC 
                                 
                                   i 
                                   ′ 
                                 
                               
                             
                             ) 
                           
                         
                       
                     
                   
                   
                     
                       
                         = 
                         
                           
                             
                               UTC 
                               i 
                             
                             · 
                             
                               UTC 
                               
                                 i 
                                 ′ 
                               
                             
                           
                           
                             
                               
                                  
                                 
                                   UTC 
                                   i 
                                 
                                  
                               
                               2 
                             
                             × 
                             
                               
                                  
                                 
                                   UTC 
                                   
                                     i 
                                     ′ 
                                   
                                 
                                  
                               
                               2 
                             
                           
                         
                       
                     
                   
                   
                     
                       
                         = 
                         
                           
                             
                               ∑ 
                               
                                 k 
                                 = 
                                 1 
                               
                               n 
                             
                              
                             
                               
                                 α 
                                 k 
                                 i 
                               
                                
                               
                                 α 
                                 k 
                                 
                                   i 
                                   ′ 
                                 
                               
                             
                           
                           
                             
                               
                                 
                                   ∑ 
                                   
                                     k 
                                     = 
                                     1 
                                   
                                   n 
                                 
                                  
                                 
                                   
                                     ( 
                                     
                                       α 
                                       k 
                                       i 
                                     
                                     ) 
                                   
                                   2 
                                 
                               
                             
                              
                             
                               
                                 
                                   ∑ 
                                   
                                     k 
                                     = 
                                     1 
                                   
                                   n 
                                 
                                  
                                 
                                   
                                     ( 
                                     
                                       α 
                                       k 
                                       
                                         i 
                                         ′ 
                                       
                                     
                                     ) 
                                   
                                   2 
                                 
                               
                             
                           
                         
                       
                     
                   
                 
               
               
                 
                   Equation 
                    
                   
                       
                   
                    
                   5 
                 
               
             
           
         
       
     
         [0040]    Here, UTC i ·UTC i′  is a dot product of two vectors UTC i  and UTC i′ . 
         [0041]    The content recommending module  233  computes for all contents a probability that a target user will use a specific content using a computed similarity by the user similarity computing module  231  between the target user and an arbitrary user. The content recommending module  233  recommends a content to the target user in a descending order of probability. At this time, the content recommending module  233  excludes content that the target user had already used. And, in computation of a probability that a target user will use a specific content, when a recommendation list should be changed promptly, the content recommending module  233  updates the probability whenever the target user uses a new content, or otherwise, simultaneously updates probabilities of all users in a type of periodic update processing. 
         [0042]    A process in which the content recommending module  233  computes a probability that a target user will use a specific content is represented by Equation 6: 
         [0000]    
       
         
           
             
               
                 
                   
                     π 
                     
                       i 
                       , 
                       j 
                     
                   
                   = 
                   
                     k 
                      
                     
                       
                         ∑ 
                         
                           
                             u 
                             
                               i 
                               ′ 
                             
                           
                           ∈ 
                           ⋃ 
                         
                         
                             
                         
                       
                        
                       
                         
                           sim 
                            
                           
                             ( 
                             
                               
                                 u 
                                 i 
                               
                               , 
                               
                                 u 
                                 
                                   i 
                                   ′ 
                                 
                               
                             
                             ) 
                           
                         
                         × 
                         
                           p 
                           
                             
                               i 
                               ′ 
                             
                             , 
                             j 
                           
                         
                       
                     
                   
                 
               
               
                 
                   Equation 
                    
                   
                       
                   
                    
                   6 
                 
               
             
           
         
       
     
         [0043]    Here, U is a user neighborhood similar to a target user u i , and p i′,j  is a variable indicating whether or not a user u i  used a specific content v j . Where user u i  used the specific content v j -p i′,j  is ‘1’, and where user u i  did not use the specific content v j -p i′,j  is ‘0’. The normalization constant, ‘k,’ is as follows: 
         [0000]    
       
         
           
             k 
             = 
             
               1 
               / 
               
                 
                   ∑ 
                   
                     
                       u 
                       
                         i 
                         ′ 
                       
                     
                     ∈ 
                     ⋃ 
                   
                   
                       
                   
                 
                  
                 
                   
                     sim 
                      
                     
                       ( 
                       
                         
                           u 
                           i 
                         
                         , 
                         
                           u 
                           
                             i 
                             ′ 
                           
                         
                       
                       ) 
                     
                   
                   . 
                 
               
             
           
         
       
     
         [0044]    The content recommending module  233  generally determines as a user neighborhood U similar to a target user, a neighborhood of users S i  who have used at least two contents among a set of contents used by the target user u i . However, where the number of contents is overwhelmingly larger than the number of users, the number of users who have used at least two contents is remarkably small, and thus it is difficult to find users similar to the target user. And where the target user has used just one content, it is impossible to determine a user neighborhood U. Therefore, the content recommending module  233  determines a user neighborhood U as follows: 
         [0045]    (1) where |S i |≧N, U=S i ; and 
         [0046]    (2) where |S i |&lt;N, U is a neighborhood of N users most similar to the target user based on the similarity computed in Equation 5. 
         [0047]    Here, N is a constant value determined experimentally to maximize the performance of the recommendation system. 
         [0048]      FIG. 4  illustrates a process of constructing a content tag cloud in accordance with the invention. Content recommendation server  200  publishes a plurality of contents stored therein on a web page such as a home page (S 401 ). The contents may be self-created contents and/or UCCs (User Created Contents) and may include moving images, photographs, or broadcasts. When the plurality of contents are published on a home page and so on by the content recommendation server  200 , users can connect to the home page of the content recommendation server  200  using user terminals  110  and can access/use the plurality of contents. 
         [0049]    When a user uses a specific content, the content recommendation server  200  provides the user terminal  110  with a related interface to enable the user to assign a tag that indicates features of the corresponding content. More particularly, the content recommendation server  200  provides an interface to enable the user to directly define a tag of the content, or offers the user a plurality of predefined tags from which to choose. After the tag is defined or chosen by the user, the content recommendation server  200  receives the tag of the content. 
         [0050]    When the user uses specific content and assigns a tag to the content through the interface, the content recommendation server  200  stores the assigned tag and its generation frequency as a tag cloud of the corresponding content. The content recommendation server  200  also updates and stores a content usage list (S 403 ). For example, after a user # 1  uses a moving image A and assigns a tag {Park Ji-Sung, Football} to the corresponding moving image A, the content recommendation server  200  stores the tag {Park Ji-Sung, Football} and its generation frequency {1, 1} for the moving image A. 
         [0051]    Next, when another user uses the same content and assigns a tag to the content through the interface, the content recommendation server  200  updates the stored tag cloud of the corresponding content and the stored content usage list (S 405 ). That is, the content recommendation server  200  updates a tag of the content, its generation frequency, and the content usage list. For example, assume a tag of a stored tag cloud of a moving image A is {Park Ji-Sung, Football} and its generation frequency is {1, 1}. When a new tag {Park Ji-Sung, Manchester United} is assigned to the moving image A, the tag is updated to {Park Ji-Sung, Football, Manchester United} and its generation frequency is updated to {2, 1, 1}. 
         [0052]    The above-mentioned process is repeatedly performed on all contents used by all users to construct tag clouds and content usage lists for those contents. This process is represented by Equation 2 above. 
         [0053]      FIG. 5  illustrates a process of constructing a user tag cloud in accordance with the invention. This process begins after tag clouds of all contents provided by the content recommendation server  200  are constructed as described above with respect to  FIG. 4 . When a new user uses a content provided by the content recommendation server  200 , a tag cloud of the corresponding new user is then constructed. As shown in  FIG. 5 , when a new user connects to the content recommendation server  200 , the content recommendation server  200  initializes an n-dimensional (equal to the number of tags generated by the content recommendation server  200 ) tag cloud corresponding to the new user (S 501 ). 
         [0054]    Subsequently, when the new user uses any one of the contents provided by the content recommendation server  200 , the content recommendation server  200  updates the tag cloud of the new user by adding a tag cloud of a content used by the new user to the initialized tag cloud of the new user (S 503 ). In some implementations, the content recommendation server  200  normalizes a tag generation frequency of a content and adds the normalized tag generation frequency to a tag generation frequency of the new user. For example, assume a new user uses a moving image A having a tag of {Park Ji-Sung, Football, Manchester United} and a tag generation frequency of {2, 1, 1}. The tag of the new user is {Park Ji-Sung, Football, Manchester United} and the associated tag generation frequency is { 2/4, ¼, ¼}={0.5, 0.25, 0.25}. 
         [0055]    When the new user uses another content provided by the content recommendation server  200 , the content recommendation server  200  accumulates a tag cloud of that other content on the tag cloud of the new user that was generated at S 503  to update the tag cloud of the new user (S 505 ). At this time, the content recommendation server  200  preferably normalizes the tag generation frequency of the corresponding content and accumulates the normalized tag generation frequency on the tag generation frequency of the new user. 
         [0056]    The above-described process is performed equally for all users to construct tag clouds for those users. This is represented by Equations 3 and 4 above. 
         [0057]      FIG. 6  illustrates a process of recommending content in accordance with the invention. When tag clouds of users are constructed as described above with respect to  FIG. 5 , the content recommendation server  200  recommends content of interest to any one user (hereinafter referred to as a target user). To do so, content recommendation server  200  first computes a “similarity” between the target user and other users based on user tag clouds (S 601 ). The content recommendation server  200  computes as a similarity cosine values of angles between a tag cloud vector of the target user and tag cloud vectors of other users. The computed similarity is represented above by Equation 5. 
         [0058]    The content recommendation server  200  then determines a user neighbor having a similar inclination to the target user (S 603 ). Assuming that a user neighbor is S i , who has used at least two contents among a set of contents used by the target user, a user neighborhood U similar to the target user is determined as follows: 
         [0059]    (1) where |S i |≧N, U=S i    
         [0060]    (2) where |S i |&lt;N, U is a neighborhood of N users most similar to the target user based on the computed similarity. 
         [0061]    Here, N is a constant determined experimentally to maximize the performance of the recommendation system. 
         [0062]    After the user neighbor is determined, the content recommendation server  200  computes a probability for all contents not used in the past by the target user that the target user will use a content based on (a) similarity between the target user and users in the similar user neighborhood and (b) content usage lists of the users of the similar user neighborhood (S 605 ). This is represented by Equation 6 above. 
         [0063]    Next, the content recommendation server  200  recommends a content to the target user in a descending order of probability based on the computed probabilities for all contents that the target user will use a content (S 607 ). The content recommendation server  200  may recommend to the target user all contents in order or some contents of higher rank. 
         [0064]    Although this embodiment shows that the content recommendation server  200  recommends individual content to the target user, the invention is not limited in this regard. After determining content to be recommended to the target user, the content recommendation server  200  may also recommend to a user a package of items having a large amount of content or a web page having a large amount of content in addition to the determined recommended content. Thus, the content recommendation unit  230  of  FIG. 1  may include a package and shop recommending module for recommending to a user a package of items or a web page having a large amount of content that may be additionally recommended to the target user by the content recommending module  233 . 
         [0065]    In sum, the invention (a) generates and updates a tag cloud of a user according to content usage type of the user based on a tag cloud assigned collectively to content by a plurality of users, (b) measures similarities between users, and (c) recommends more suitable and appropriate content to users. 
         [0066]    As mentioned above, the content recommendation method according to the invention deduces similarities between two users using a tag cloud, and although the two users did not use the same content, the users can be identified as user neighbors having similar inclinations. Conventionally, similarities between two users was deduced using an average or statistical value of evaluations, feedback, etc. given by users to the same content or purchase information of the same content by the users. However, such conventional methods has low coverage for a large set of contents, while the invention advantageously has high coverage for a large set of contents. 
         [0067]    The recommendation apparatus and method according to the invention may be incorporated as computer readable code on a computer readable storage medium. The computer readable storage medium includes all kinds of storage devices for storing data readable by a computer system. For example, the computer readable medium may be a CD-ROM (compact disc read only memory), RAM (random access memory), ROM (read only memory), floppy disc, hard disc, or magneto-optical disc. 
         [0068]    While this specification contains many specifics, these should not be construed as limitations on the scope of the invention or of what may be claimed, but rather, they should be construed as descriptions of features that may be specific to particular embodiments of the invention. Certain features that are described herein in the context of separate embodiments may also be implemented in a single embodiment. Conversely, various features that are described in the context of a single embodiment may also be implemented in multiple embodiments separately or in any suitable subcombination. Moreover, although features may have been described above as acting in certain combinations and even initially claimed as such, one or more features from a claimed combination may in some cases be excised from the combination, and the claimed combination may be directed to a subcombination or a variation of a subcombination. 
         [0069]    Similarly, while processes are depicted in the drawings in a particular order, this should be understood as requiring that such processes be performed in the particular order shown or in sequential order, or that all illustrated operations be performed, to achieve desirable results. Note that in certain circumstances, multitasking and parallel processing may be possible and advantageous. Moreover, the separation of various system components in the embodiments described above should not be understood as requiring such separation in all embodiments, and it should be understood that the described program components and systems can generally be integrated together in a single software product or packaged into multiple software products. 
         [0070]    Although only a few implementations and examples are described above, other implementations, enhancements, and variations may be made by those of ordinary skill in the art that would still be within the scope of the invention. The invention is therefore only limited by the following claims.