Abstract:
Disclosed are a method and apparatus for recommending personalized content in an Internet Protocol Television (IPTV) service environment. The content recommending method includes: acquiring a user&#39;s viewing history information regarding broadcasting content; analyzing the user&#39;s preference for each content item based on the user&#39;s viewing history information; creating a list of recommended content items based on the analysis of the user&#39;s preference; and providing the list of recommended content items to the user&#39;s terminal. Accordingly, it is possible to recommend personalized content according to users&#39; preference.

Description:
CROSS-REFERENCE TO RELATED APPLICATION 
     This application claims the benefit under 35 U.S.C. §119(a) of Korean Patent Application No. 10-2008-114563, filed on Nov. 18, 2008, the disclosure of which is incorporated by reference in its entirety for all purposes. 
     BACKGROUND 
     1. Field 
     The following description relates to an Internet Protocol television (IPTV) service technology, and more particularly, to a technology for recommending personalized content based on user preference. 
     2. Description of the Related Art 
     An Internet Protocol Television (IPTV) service, which is a broadcast-communication integrated service, enables content providers to provide multi-channel broadcasting services, Video on Demand (VoD) services, digital video recorders (DVR) services, etc., as well as existing services such as IP-based interactive multimedia services and digital broadcasting services, via an IP-based communication network. Following the development of IPTV services, the types and amount of content that is provided has become more and more various and large in size. 
     In general, when using an IPTV service, a user selects and uses desired content by searching for a title, actor, producer, keyword, etc. of the content through an electronic program guide (EPG) with a terminal, for example, with a set-top box which supports IPTV services. However, if too many types of content are found or too much content is found, it will be difficult for the user to find desired content. This means that accuracy of searching is poor and accordingly the user&#39;s satisfaction with the IPTV service is lowered. In order to resolve this problem, studies into technologies for recognizing what content is demanded by users to perceive the users&#39; preference and recommending personalized content to the users based on the users&#39; preference are being developed. 
     Most known content recommending methods are based on content recommendation according to content preference information received and stored in advance from users. However, the conventional methods recommend content based on relatively correct preference information as users are required to themselves input information regarding their preference, but users have the inconvenience of having to update information regarding their preference whenever changes occur in preference. Also, the conventional methods do not reflect the importance between content description parameters in representing personal preference. In other words, the conventional methods have failed to perceive a content description parameter most influencing each user&#39;s preference among content description parameters, such as a content title, actor, producer, keyword, etc. 
     SUMMARY 
     The following description relates to a technology for evaluating users&#39; preferences for content. 
     According to an exemplary aspect, there is provided a method of recommending personalized content to users in an Internet Protocol television (IPTV) service environment, including: acquiring a user&#39;s viewing history information of a user regarding broadcasting content; analyzing the user&#39;s preference for each content item based on the user&#39;s viewing history information; creating a list of recommended content items based on the analysis of the user&#39;s preference; and providing the list of recommended content items to the user&#39;s terminal. 
     The acquiring of the user&#39;s viewing history information includes determining whether the user&#39;s viewing history information meets a validity condition, and considering the user&#39;s viewing history information as valid information if the user&#39;s viewing history information meets the validity condition. 
     The analyzing of the user&#39;s preference for each content item includes: acquiring information on the lower items of each content description parameter of a content item corresponding to a content identifier included in the user&#39;s viewing history information; incrementing a usage counter of a corresponding lower item according to the acquired information on the lower items of each content description parameter, with respect to a user identifier included in the user&#39;s viewing history information; calculating degrees of the user&#39;s sensitivities to the respective lower items based on usage counters of the lower items; and obtaining a degree of the user&#39;s preference for each content item that is to be served, based on the calculated degrees of the user sensitivities to the lower items. 
     A degree of the user&#39;s sensitivity to each lower item is calculated by subtracting an average value of usage counters of all lower items belonging to a corresponding content description parameter from a usage counter of the lower item, squaring the value of the subtraction, and dividing the squared value by a square of a standard deviation of the usage counters of all lower items. 
     The degree of the user&#39;s preference for each content item that is to be served is calculated by summing all the user&#39;s sensitivities calculated for the respective lower items of the content item. 
     According to another exemplary aspect, there is provided an apparatus of recommending personalized content in an Internet Protocol television (IPTV) service environment, including: a viewing history profile storage in which viewing history information of each user regarding broadcasting content is stored; a content profile storage in which content description parameters for each content item and lower items of each content description parameter are stored; a viewing history information manager to acquire a user&#39;s viewing history information regarding broadcasting content and store the acquired user&#39;s viewing history information in the viewing history profile storage, and to acquire information on lower items of each content description parameter of a content item associated with the user&#39;s viewing history information from the content profile storage, increment a usage counter of a corresponding lower item with respect to a user identifier included in the user&#39;s viewing history information, and store the usage counter of the lower item in the viewing history profile storage; and a user sensitivity calculator to calculate degrees of the user&#39;s sensitivities to the lower items based on information stored in the viewing history profile storage; and a content recommendation unit to create a list of recommended content items based on the degrees of the user&#39;s sensitivities to the lower items and provide the list of recommended content items to the user&#39;s terminal. 
     The content recommending method recommends personalized broadcasting services in real time by evaluating a user&#39;s preference for broadcasting content based on the user&#39;s viewing history information regarding broadcasting content and on the user&#39;s sensitivities for content description parameters. Following the popularization of IPTV services, content for such IPTV services is becoming more and more varied and large in size. Following the development of IPTV services, the content recommending method proposes a technology for recommending personalized content by evaluating users&#39; preference in order to provide satisfaction and convenience to users who use IPTV services. 
     Particularly, since the content recommending method evaluates a user&#39;s preference based on the user&#39;s viewing history information regarding broadcasting content, recent information on the user&#39;s preference for broadcasting content is reflected in real time to a system, which eliminates the inconvenience of having to directly update their preference at regular time periods. Also, since the content recommending method determines what item among various content description parameters, such as content title, actor, producer and keyword, most influences a user by evaluating the user&#39;s preference based on sensitivity to content, the content recommending method can recommend personalized content with a higher evaluation quality than existing recommendation methods. This sensitivity-based evaluation on the user&#39;s preference is a new trial which has never been introduced in conventional technologies. Through this method, user-demanded content can be easily and exactly provided to users, thereby minimizing difficulties in searching for desired content in vast amounts of content, which contributes to increasing the satisfaction of all users. 
     Other objects, features and advantages will be apparent from the following description, the drawings, and the claims. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  is a block diagram illustrating a content recommending apparatus according to an exemplary embodiment. 
         FIG. 2  shows an example of usage counters for each user that are stored in the user&#39;s viewing history profile regarding broadcasting content. 
         FIG. 3  is a flowchart illustrating a method of managing usage counters for the lower items of respective content description parameters of content that is used by a user, according to an exemplary embodiment. 
         FIG. 4  is a flowchart illustrating a method of recommending content based on usage counters for the respective lower items, according to an exemplary embodiment. 
     
    
    
     Elements, features, and structures are denoted by the same reference numerals throughout the drawings and the detailed description, and the size and proportions of some elements may be exaggerated in the drawings for clarity and convenience. 
     DETAILED DESCRIPTION 
     The detailed description is provided to assist the reader in gaining a comprehensive understanding of the methods, apparatuses and/or systems described herein. Various changes, modifications, and equivalents of the systems, apparatuses, and/or methods described herein will likely suggest themselves to those of ordinary skill in the art. Also, descriptions of well-known functions and constructions are omitted to increase clarity and conciseness. 
       FIG. 1  is a block diagram illustrating a content recommending apparatus  200  according to an exemplary embodiment. 
     In  FIG. 1 , a user terminal  100  is a device capable of using Internet Protocol (IP) services and may be a set-top box (STB). The user terminal  100  is a physical device which is separated from the content recommending apparatus  200 , and may communicate with the content recommending apparatus  200  through an IP network. The user terminal  100  provides the user&#39;s viewing history information regarding broadcasting content to the content recommending apparatus  200 . The user&#39;s viewing history information regarding broadcasting content will be described in more detail later. 
     The content recommending apparatus  200  includes a viewing history manager  210 , a viewing history profile storage  220 , a content profile storage  230 , a user sensitivity calculator  240  and a content recommending unit  250 . The viewing history manager  210  receives a user&#39;s viewing history information regarding broadcasting content from the user&#39;s terminal  100 . Here, the user&#39;s viewing history information is created when the user initially accesses broadcasting content and is updated whenever the user uses the broadcasting content. For example, in the case of multi-channel broadcasting, whenever a user performs channel switching, the user terminal  100  creates the user&#39;s viewing history information regarding broadcasting content with respect to a newly converted channel, and transmits the user&#39;s viewing history information to the content recommending apparatus  200 . Accordingly, the history manager  210  receives the user&#39;s viewing history information from the user terminal  100 . As another example, in the case of video-on-demand (VoD), a user&#39;s viewing history information regarding video content demanded by the user may be created. 
     The user&#39;s viewing history information is composed of a user identifier, a content identifier and a timestamp. The user identifier, which is an ID by which the user is identified, may have various formats. According to an exemplary embodiment, the user identifier may be a Session Initiation Protocol-Uniform Resource Identifier (SIP-URI). Alternatively, the user identifier may be a Content Reference Identifier (CRID) which is defined according a standard developed by the TV-Anytime Forum to identify individual content. A CRID of content which the user begins to newly use may be included in the user&#39;s viewing history information. For example, a CRID of a new channel after channel switching or a CRID of VoD which the user begins to newly watch may be included in the user&#39;s viewing history information. A timestamp is information indicating a time at which the user terminal  100  creates new viewing history information regarding broadcasting content and transmits it to the viewing history manager  210 . The Timestamp may be defined as follows. 
     YYYY-MM_DDThh:mm:ss, 
     where YYYY represents “Year”, MM represents “Month” and D represents “Day”. Also, hh represents “Hours”, mm represents “Minutes” and ss represents “Seconds”. Accordingly, for example, “2008-09-01T12:34:12” indicates “12:34:12, 1 Sep. 2008”. 
     Meanwhile, the user terminal  100  creates a user&#39;s viewing history information regarding broadcasting content and transmits it to the viewing history manager  210  whenever the user begins to use new broadcasting content. A method of transmitting the user&#39;s viewing history information to the viewing history manager  210  may be various. According to an exemplary embodiment, the user terminal  100  may transmit the user&#39;s viewing history information to the viewing history manager  210  using a SIP-based PUBLISH message. 
     The viewing history manager  210  receives users&#39; viewing history information regarding broadcasting content from user terminals  100 , processes the received information on the users&#39; viewing histories, and stores the results of the processing in the viewing history profile storage  220 . Through this operation, usage frequencies of broadcasting content that the users are currently using may be perceived. The viewing history manager  210 , stores, instead of storing all of acquired viewing history information in the viewing history profile storage  220 , only viewing history information meeting a validity condition in the viewing history profile storage  220 . By applying a validity condition to selectively store viewing history information, viewing history information acquired when frequent channel switching occurs or viewing history information regarding broadcasting content viewed only for a short period of time may be ignored and accordingly more correct information on usage frequency may be collected. The validity condition may be set as follows. 
     
       
         
           
             
               
                 
                   
                     
                       
                         T 
                         1 
                       
                       - 
                       
                         T 
                         0 
                       
                     
                     
                       T 
                       content 
                     
                   
                   ≥ 
                   K 
                 
               
               
                 
                   ( 
                   1 
                   ) 
                 
               
             
           
         
       
     
     In equation 1, T 1  represents a timestamp of currently acquired viewing history information, T 0  represents a timestamp of just previously acquired viewing history information and T content  represents a length of just previously viewed content. For example, T content  may be the running time of movie or the length of a program. A time difference between T 1  and T 0  is a total time for which the user viewed the corresponding broadcasting content. Accordingly, the viewing history manager  210  determines that the acquired viewing history information meets the validity condition when a ratio of the total viewed time of the corresponding content to the length of the content exceeds K. Here, K is set to 0.15. This means that the viewing history manager  210  determines that a user viewed content when the user viewed 15% or more of the entire amount of the content. 
     Meanwhile, the content profile unit  230  is a database in which content description parameters or content metadata for individual service content is stored. Generally, content description parameters are generated by a content provider when the corresponding content is created. The content description parameters provide details associated with the content, and may include genre, actor, producer, keyword, time of production, country of production, release information, price, length (running time) of content, etc. Hereinafter, for convenience of description, it is assumed that the content description parameters only include genre, actor, producer and keyword. However, the content description parameters are not limited to examples proposed herein. 
     The viewing history manager  210  extracts a CRID from the acquired viewing history information, and searches for information on the lower items of the respective content description parameters “genre, actor, producer and keyword” corresponding to the CRID in the content profile storage  230 . For example, the lower items of a content description parameter “genre” may include horror, Monday and Tuesday dramas, love, action, soccer, kids, etc. The viewing history manager  210  reflects information regarding the respective content description parameters to the viewing history profile storage  220 . 
     When reflecting information regarding the respective content description to parameters to the viewing history profile storage  220 , if the viewing history manager  210  determines that a lower item of a content description parameter of a user&#39;s viewing history information, which has to be stored, exists in a viewing history profile of the user identified by the user identifier included in the user&#39;s viewing history information, the viewing history manager  210  increments a usage counter of the lower item by ‘1’, and otherwise, the viewing history manager  210  sets the usage counter of the lower item to ‘1’. 
     For example, when a user identifier of viewing history information that has to be stored is ‘kanglee@etri.re.kr’ and a genre of the viewing history information is ‘horror’, if the lower item ‘horror’ exists in the content description parameter ‘genre’ among viewing history information of ‘kanglee@etri.re.kr’ stored in the viewing history profile storage  220 , the viewing history manager  210  increments a usage counter of the lower item ‘horror’ by ‘1’. Meanwhile, if no lower item ‘horror’ exists in the content description parameter ‘genre’, the viewing history manager  210  newly creates a lower item ‘horror’ and sets a usage counter of the ‘horror’ item to ‘1’. In the same way, the viewing history manager  210  stores information associated with the content description parameters ‘actor’, ‘producer’ and ‘keyword’ in the viewing history profile storage  220 . An exemplary usage counter stored in an individual viewing history profile is shown in  FIG. 2 . 
     Meanwhile, the user sensitivity calculator  240  calculates sensitivity of each user using the viewing history information stored in the viewing history profile storage  220 . According to an exemplary embodiment, sensitivity of each user is defined as a value representing how sensitive the user acts with respect to each of the content description parameters ‘genre’, ‘actor’, ‘producer’ and ‘keyword’. For example, sensitivity to the ‘horror’ item of genre is a value representing how sensitive the user acts with respect to content whose genre is classified as ‘horror’. Accordingly, the higher the sensitivity is, the more likely the user is to want to see the content, i.e. the user&#39;s preference level is higher to the corresponding item. Sensitivity to each lower item can be calculated by the following equation 2. 
                       SG   i     =         (       G   i     -     μ   G       )     2       σ   G   2         ,           (   2   )               
where SG i  represents sensitivity to a lower item i and G i  represents a usage counter of the lower item i. Also, μ G  represents an average of usage counters of all items belonging to ‘genre’, σ G  represents a standard deviation of the usage counters of all items belonging to ‘genre’, and i represent a lower item of genre, such as ‘horror’, ‘love’, ‘short drama’, ‘action’, ‘kid’, ‘animation’, ‘soccer’, etc.
 
     For example, it is assumed that usage counters for the lower items of the content description parameter ‘genre’ of the user ‘kanglee@etri.re.kr’ are as follows. 
     
       
         
               
               
               
             
           
               
                   
                 TABLE 1 
               
               
                   
                   
               
             
             
               
                   
                 Horror 
                 10 
               
               
                   
                 Monday and 
                 20 
               
               
                   
                 Tuesday Dramas 
               
               
                   
                 Love 
                 10 
               
               
                   
                 Action 
                 5 
               
               
                   
                 Animation 
                 20 
               
               
                   
                 Soccer 
                 10 
               
               
                   
                 Kids 
                 20 
               
               
                   
                   
               
             
          
         
       
     
     In this case, an average of the usage counters for the lower items of the ‘genre’ parameter is (10+20+10+5+20+10+20)/7, that is, about 13.57, and a standard deviation of the usage counters is 6.25. Accordingly, sensitivity of the user ‘kanglee@etri.re.kr’ to the ‘horror’ item can be calculated as follows. 
     
       
         
           
             
               
                 
                   
                     
                       SG 
                       horror 
                     
                     ⁡ 
                     
                       ( 
                       
                         sensitivity 
                         ⁢ 
                         
                             
                         
                         ⁢ 
                         to 
                         ⁢ 
                         
                             
                         
                         ⁢ 
                         genre 
                       
                       ) 
                     
                   
                   = 
                   
                     
                       
                         
                           ( 
                           
                             10 
                             - 
                             13.57 
                           
                           ) 
                         
                         2 
                       
                       
                         
                           ( 
                           6.26 
                           ) 
                         
                         2 
                       
                     
                     ≈ 
                     0.325 
                   
                 
               
               
                 
                   ( 
                   3 
                   ) 
                 
               
             
           
         
       
     
     The user&#39;s sensitivities to the other items can also be calculated in the same way. That is, the user&#39;s sensitivities to the ‘actor’, ‘producer’ and ‘keyword’ items can be calculated as follows. 
     
       
         
           
             
               
                 
                   
                     
                       SA 
                       i 
                     
                     ⁡ 
                     
                       ( 
                       
                         sensitivity 
                         ⁢ 
                         
                             
                         
                         ⁢ 
                         to 
                         ⁢ 
                         
                             
                         
                         ⁢ 
                         actor 
                       
                       ) 
                     
                   
                   = 
                   
                     
                       
                         ( 
                         
                           
                             A 
                             i 
                           
                           - 
                           
                             μ 
                             A 
                           
                         
                         ) 
                       
                       2 
                     
                     
                       σ 
                       A 
                       2 
                     
                   
                 
               
               
                 
                   ( 
                   4 
                   ) 
                 
               
             
             
               
                 
                   
                     
                       SP 
                       i 
                     
                     ⁡ 
                     
                       ( 
                       
                         sensitivity 
                         ⁢ 
                         
                             
                         
                         ⁢ 
                         to 
                         ⁢ 
                         
                             
                         
                         ⁢ 
                         producer 
                       
                       ) 
                     
                   
                   = 
                   
                     
                       
                         ( 
                         
                           
                             P 
                             i 
                           
                           - 
                           
                             μ 
                             P 
                           
                         
                         ) 
                       
                       2 
                     
                     
                       σ 
                       P 
                       2 
                     
                   
                 
               
               
                 
                   ( 
                   5 
                   ) 
                 
               
             
             
               
                 
                   
                     
                       SK 
                       i 
                     
                     ⁡ 
                     
                       ( 
                       
                         sensitivity 
                         ⁢ 
                         
                             
                         
                         ⁢ 
                         to 
                         ⁢ 
                         
                             
                         
                         ⁢ 
                         keyword 
                       
                       ) 
                     
                   
                   = 
                   
                     
                       
                         ( 
                         
                           
                             K 
                             i 
                           
                           - 
                           
                             μ 
                             K 
                           
                         
                         ) 
                       
                       2 
                     
                     
                       σ 
                       K 
                       2 
                     
                   
                 
               
               
                 
                   ( 
                   6 
                   ) 
                 
               
             
           
         
       
     
     The user sensitivity calculator  240  calculates sensitivities of each user at regular time intervals. A time interval at which sensitivities are calculated may be set to a proper one of Day, Week and Month in consideration of a time required for calculation. 
     After sensitivity to each lower item is calculated by the user sensitivity calculator  240 , the content recommending unit  250  performs a process of recommending broadcasting content. Recommendation of broadcasting content is performed for each user and carried out in a manner to create lists of recommended broadcasting content items and provide CRIDs of the lists to corresponding users. 
     First, the content recommending unit  250  obtains a sum of sensitivities of a user to lower items with respect to all serviceable content stored in the content profile storage  230 . A sum of sensitivities of a user j to broadcasting content i can be expressed as in Equation 7.
 
Content sensitivity i,j   =SG   i,j   +SA   i,j   +SP   i,j   +SK   i,j   (7)
 
     Content sensitivity i,j  is a sum of sensitivities of the user j to the content i, SG i,j  is sensitivity of the user j to the ‘genre’ parameter of the content i and SA i,j  is sensitivity of the user j to the ‘actor’ parameter of the content i. Also, SP i,j  is sensitivity of the user j to the ‘producer’ parameter of the content i and SK i,j  is sensitivity of the user j to the ‘keyword’ parameter of the content i. 
     For example, it is assumed that content description parameters stored in the content profile storage  230  are ‘action’ as genre, ‘Michael’ as actor, ‘Hong Kildong’ as producer, and ‘War’ as keyword. In this case, if sensitivity to the ‘action’ genre of a user j is 0.3, sensitivity to the actor ‘Michael’ is 0.1, sensitivity to the producer ‘Hong Kildong’ is 0.3, and sensitivity to the keyword ‘War’ is 0.2, a sum of sensitivities of the user j to content i is calculated to be 0.5+0.1+0.3+0.2=1.1. This sum of content sensitivities is defined as a degree of content preference of the user j to the content i. 
     The content recommending unit  250  calculates a sum of sensitivities to each of all content stored in the content profile storage  230 , thereby obtaining degrees of content preference. Finally, the content recommending unit  250  creates a list of recommended content items arranged in the descending order of the degrees of content preference and provides a CRID of the list of recommended content to the user terminal  100 . Accordingly, the user terminal  100  displays the list of recommended content items and allows the user to select desired content from the list. Here, the number of lists of recommended content items depends on the user&#39;s settings or system settings. 10 or more lists of recommended content items may be created. 
       FIG. 3  is a flowchart illustrating a method of managing usage counters for the lower items of respective description parameters of a content item that is used by a user, according to an exemplary embodiment. 
     Referring to  FIGS. 1 and 3 , the viewing history manager  210  acquires viewing history information regarding broadcasting content for each user (operation  310 ). This operation is performed by receiving viewing history information regarding broadcasting content from the user terminal  100 . Then, the viewing history manager  210  determines whether the viewing history information meets a validity condition (operation  320 ). According to an exemplary embodiment, the validity condition may be the above-proposed equation 1. If the viewing history information meets the validity condition, the viewing history manager  210  stores the viewing history information regarding broadcasting content in the viewing history profile storage  220 . 
     Then, the viewing history manager  210  extracts a CRID from the viewing history information, and searches for information regarding the lower items (that is, ‘genre’, ‘actor’, ‘producer’ and ‘keyword’) of content description parameters of a corresponding content item, in the content profile storage  230 , using the CRID. If information regarding the lower items exist in the viewing history profile storage  220 , the viewing history manager  210  increments a usage counter of each lower item by ‘1’, and if any information regarding the lower items is found in the viewing history profile storage  220 , the viewing history manager  210  newly creates the corresponding lower items and sets a usage counter of each lower item to ‘1’ (operations  340 ,  350  and  360 ). Details for this operation have been described above, and the method illustrated in  FIG. 3  is repeatedly performed. 
       FIG. 4  is a flowchart illustrating a method of recommending content based on usage counters for the respective lower items, according to an exemplary embodiment. 
     Referring to  FIGS. 1 and 3 , the user sensitivity calculator  240  calculates user sensitivities based on usage counters for lower items that are classified according to each user identifier and stored in the viewing history profile storage  220  (operation  410 ). As described above with equations 3 through 6, the user sensitivities are calculated for each content description parameter. Then, the content recommending unit  250  analyzes the user&#39;s preference for each of all content items stored in the content profile storage  230  (operation  420 ). Here, the user&#39;s preference is obtained by summing all the user sensitivities to the lower items, which are calculated in operation  410 . After obtaining degrees of the user&#39;s preference for all content items, the content recommending unit  250  creates a limited number of lists of recommended content items, wherein each list is arranged in the descending order of the degrees of the user&#39;s preference (operation  430 ). Then, CRIDs of the lists of recommended content items are provided to the user terminal  100  (operation  440 ). 
     It will be apparent to those of ordinary skill in the art that various modifications can be made to the exemplary embodiments of the invention described above. However, as long as modifications fall within the scope of the appended claims and their equivalents, they should not be misconstrued as a departure from the scope of the invention itself.