Method and device for training group classification model for content recommendation and recommending content by using trained model in content streaming system
By training a group classification model to group users based on viewing habits, the method addresses the computational challenges of hyper-personalized recommendations, achieving efficient and personalized content delivery in content streaming systems.
Patent Information
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- TVING CO LTD
- Filing Date
- 2025-12-30
- Publication Date
- 2026-07-09
Smart Images

Figure KR2025023070_09072026_PF_FP_ABST
Abstract
Description
Training of a group classification model for content recommendation in a content streaming system and a method and device for recommending content using the trained model
[0001] The present disclosure relates to a content streaming system, and more specifically to a method and apparatus for recommending content using a group classification model for content recommendation in a content streaming system and the learned model.
[0002] With the advancement of various technologies and changes in consumption trends, significant changes have occurred in the methods of content supply and consumption. The development of digital technology, computer technology, and internet / communication technology has blurred the boundaries between content types and producers, leading to major shifts in content production and consumption patterns. Platforms have emerged that enable the general public to create and distribute content. Furthermore, accessibility to diverse content has been ensured, and various options for consumption methods have begun to be provided.
[0003] Amidst these many changes in the content industry, OTT (over the top) services exist. As a media platform based on the internet and mobile communication, OTT services go beyond traditional broadcasting services to provide consumers with a wide variety of content without the need for separate equipment such as set-top boxes. The concept of OTT services initially began with the provision of movies and television programs via VOD (video on demand), but the service is still expanding, currently extending its scope to include not only the provision of content produced in-house by OTT service providers but also mobile platforms.
[0004] The present disclosure is intended to provide a method and apparatus for training a group classification model for content recommendation in a content streaming system.
[0005] The present disclosure is intended to provide a method and apparatus for content recommendation in a content streaming system.
[0006] The present disclosure is intended to provide a method and apparatus for grouping users in a content streaming system by taking into account the characteristics of the users.
[0007] The present disclosure is intended to provide a method and apparatus for recommending content by grouping users in a content streaming system.
[0008] The present disclosure is intended to provide a method and apparatus for training a vectorization model in a content streaming system.
[0009] The present disclosure is intended to provide a method and apparatus for training a group classification model in a content streaming system.
[0010] The technical objectives to be achieved in this disclosure are not limited to those mentioned above, and other unmentioned technical problems may be considered by those skilled in the art to which the technical configuration of this disclosure applies, based on the embodiments of this disclosure described below.
[0011] A method for training a model for classifying user groups in a content provision system according to an embodiment of the present disclosure, comprising: a step of obtaining a plurality of viewing content information based on information about content viewed by each of a plurality of users, wherein the viewing content information includes information about N content among content viewed by one user, and N is a natural number; a step of generating a plurality of user features using the plurality of viewing content information and a vectorization model, wherein the user features are embedding vectors corresponding to information about N content included in the viewing content information; a step of grouping the plurality of user features using a density-based clustering module; a step of determining, based on the grouping result, a group number for each of the target user features included in the group among the plurality of user features and an outlier user feature not included in the group among the plurality of user features; a step of generating training data by labeling the target user features, excluding the outlier user feature among the plurality of user features, with the group number corresponding to each of the target user features; and using the training data, receiving a user feature and a group number It may be a method that includes a step of training an output group classification model.
[0012] According to one embodiment of the present disclosure, the information regarding the N contents included in the viewing content information may be the titles of N contents watched consecutively among the contents watched by the user at a preset completion rate or higher.
[0013] According to one embodiment of the present disclosure, the plurality of viewing content information may include first viewing content information including information on N content items continuously viewed at a first time point among content items viewed by a first user at a preset completion rate or higher, and second viewing content information including information on N content items continuously viewed at a second time point different from the first time point among content items viewed by the first user at a preset completion rate or higher.
[0014] According to one embodiment of the present disclosure, N may be 3.
[0015] According to one embodiment of the present disclosure, the step of generating the plurality of user features may include: determining the frequency of content for the entire content based on information about N content included in each of the plurality of viewing content information; classifying the entire content into popular content and unpopular content based on the frequency; classifying the plurality of viewing content information into popular viewing content information and unpopular viewing content information based on the number of popular content among the N content included in the viewing content information; extracting target viewing content information by sampling the popular viewing content information and the unpopular viewing content information among the plurality of viewing content information at a preset ratio; and generating the plurality of user features using the target viewing content information and the vectorization model.
[0016] According to one embodiment of the present disclosure, the popular viewing content information is viewing content information in which the popular content is the majority of the N contents included in the viewing content information, and the unpopular viewing content information is viewing content information in which the unpopular content is the majority of the N contents included in the viewing content information, and the preset ratio of the popular viewing content information to the unpopular viewing content information may be 1:3.
[0017] According to one embodiment of the present disclosure, the vectorization model is an unsupervised artificial intelligence model that receives information about one content and outputs one M-dimensional vector, wherein M is a natural number, and the user feature can be generated by obtaining N M-dimensional vectors by inputting information about N contents included in the viewing content information into the vectorization model, calculating statistical values of component values of the same index for the N M-dimensional vectors, and concatenating the calculated statistical values for each index.
[0018] According to one embodiment of the present disclosure, M is 32, the statistical values are summed values, multiplied values, variance values and median values, and the user feature may be a 128-dimensional vector.
[0019] According to one embodiment of the present disclosure, the grouping step may include the step of generating a plurality of low-dimensional user features corresponding to each of the plurality of user features by reducing the dimensionality of each of the plurality of user features using a dimensionality reduction module, and the step of grouping the plurality of low-dimensional user features using a density-based clustering module.
[0020] According to one embodiment of the present disclosure, the dimensionality reduction module reduces dimensions based on similarity, and the low-dimensional user feature may be a two-dimensional vector.
[0021] According to one embodiment of the present disclosure, a learning device for a model classifying user groups in a content provision system comprises a memory for storing information necessary for the operation of the device and a processor connected to the memory, wherein the processor acquires a plurality of viewing content information based on information regarding content viewed by each of a plurality of users, wherein the viewing content information includes information regarding N content among content viewed by one user, wherein the processor generates a plurality of user features using the plurality of viewing content information and a vectorization model, wherein the user features are embedding vectors corresponding to information regarding N content included in the viewing content information, wherein the processor groups the plurality of user features using a density-based clustering module, wherein, based on the grouping result, the processor determines the group number of each target user feature included in the group among the plurality of user features and the outlier user feature not included in the group among the plurality of user features, and thereby provides learning data by labeling the target user features excluding the outlier user feature among the plurality of user features with the group number corresponding to each of the target user features. It may be a device that generates, using the above training data, learns a group classification model that receives user features as input and outputs a group number.
[0022] A method for recommending content in a content streaming system according to one embodiment of the present disclosure may include: a step of obtaining information on recently viewed content of a first user, wherein the recently viewed content information includes information on N contents recently viewed by the first user, and wherein N is a natural number; a step of obtaining a first embedding vector corresponding to the recently viewed content information using the recently viewed content information and a vectorization model; a step of obtaining a first group number corresponding to the first embedding vector by inputting the first embedding vector into a group classification model; a step of determining a first recommendation band corresponding to the first group number among a preset band list, wherein the band includes a plurality of contents in which at least one of the genre, production company, country, director, actor, viewing age, or channel is the same; and a step of determining a first reordered recommendation band by reordering the recommendation ranking of the content included in the first recommendation band based on the recently viewed content information of the first user, wherein the first reordered recommendation band is included in the final recommendation band list for the first user.
[0023] According to one embodiment of the present disclosure, the group classification model may be trained using embedding vectors labeled with group numbers to classify embedding vectors obtained from similar recently viewed content into the same group.
[0024] According to one embodiment of the present disclosure, information regarding N pieces of content recently viewed by the first user may be the titles of each of the N pieces of content most recently viewed by the first user, which have a pre-set completion rate or higher.
[0025] According to one embodiment of the present disclosure, the N may be characterized as being 3.
[0026] According to one embodiment of the present disclosure, the first embedding vector may be one vector corresponding to information about the N contents.
[0027] According to one embodiment of the present disclosure, the vectorization model is an unsupervised artificial intelligence model that receives information about one content and outputs one M-dimensional vector, wherein M is a natural number, and the step of obtaining the first embedding vector may include the step of obtaining N M-dimensional vectors by inputting each of the information about the N contents into the vectorization model, the step of calculating statistical values of component values of the same index for the N M-dimensional vectors, and the step of obtaining one first embedding vector by concatenating the calculated statistical values for each index.
[0028] According to one embodiment of the present disclosure, M is 32, the statistical values are sum, multiplication, variance, and median, and the first embedding vector may be a 128-dimensional vector.
[0029] According to one embodiment of the present disclosure, the step of determining the first recommendation band corresponding to the first group number may include: generating a first viewing content list based on the recent viewing content information of the first user and the recent viewing content information of users of the first group number other than the first user; generating a top score content list by scoring the viewing content included in the first viewing content list based on frequency; and determining the first recommendation band by comparing the content included in each band within the preset band list with the top score content list.
[0030] According to one embodiment of the present disclosure, the step of determining a first recommended band by comparing the list of top-scoring content may include: generating a first group of intermediate band lists by extracting at least one content identical to the list of top-scoring content among the content included in each band for each band in the preset band list; identifying representative content of the first group based on a score based on the frequency of the content included in the list of top-scoring content; calculating a score for each band in the intermediate band list based on the representative content and the content included in each band in the intermediate band list; and determining the first recommended band among the bands included in the intermediate band list based on the score for each band.
[0031] According to one embodiment of the present disclosure, the step of calculating a score for each band within the intermediate band list may be performed based on at least one of the most frequent genre among the representative content, the most frequent channel among the representative content, or the title of the representative content, and the number of matching instances of the content included in each band for each band within the intermediate band list.
[0032] According to one embodiment of the present disclosure, the step of generating the score-top content list may further include: calculating the frequency of each viewing content included in the first viewing content list; calculating a first frequency score for each viewing content by performing log scaling on the frequency; calculating a second frequency score for each viewing content based on the frequency ranking of the viewing content; calculating a meta score for each viewing content based on content characteristics for each viewing content—the content characteristics include at least one of genre, channel, or viewing age—and calculating a final score for each viewing content based on the average value of the first frequency score, the second frequency score, and the meta score.
[0033] According to one embodiment of the present disclosure, the step of determining the first reordered recommendation band may include the step of determining a weight for each content included in the first recommendation band based on the viewing history of the first user, and the step of reordering the recommendation ranking of the content included in the first recommendation band based on the weight.
[0034] According to one embodiment of the present disclosure, the weights include a positive weight and a negative weight, wherein the positive weight is determined based on at least one of the genre and channel of the content viewed by the first user, and the negative weight may be determined based on whether the content exposed to the first user has been viewed.
[0035] According to one embodiment of the present disclosure, the method further comprises the steps of: determining a second recommendation band corresponding to the first group number, wherein the second recommendation band has a lower recommendation ranking than the first recommendation band; determining a second reordered recommendation band by reordering the recommendation ranking of the content included in the second recommendation band based on the recent viewing content information of the first user; and filtering content that is identical to the content included in the first reordered recommendation band among the content included in the second reordered recommendation band, wherein the final recommendation band list may include the first reordered recommendation band and the filtered second reordered recommendation band.
[0036] According to one embodiment of the present disclosure, the step of determining the first reorder recommendation band may further include the step of reordering content other than one of the content in the series to a lower priority for content of the same series among the content included in the first recommendation band.
[0037] According to one embodiment of the present disclosure, a device for recommending content in a content streaming system comprises a memory for storing information necessary for the operation of the device and a processor connected to the memory, wherein the processor obtains recent viewing content information of a first user—the recent viewing content information includes information on N pieces of content recently viewed by the first user, wherein N is a natural number—, using the recent viewing content information and a vectorization model, obtains a first embedding vector corresponding to the recent viewing content information, and obtains a first group number corresponding to the first embedding vector by inputting the first embedding vector into a group classification model, and determines a first recommendation band corresponding to the first group number among a preset band list—the band includes a plurality of contents in which at least one of genre, production company, country, director, actor, viewing age, or channel is the same—, and determines a first reordered recommendation band by reordering the recommendation ranking of the content included in the first recommendation band based on the recent viewing content information of the first user—the first reordered recommendation band is in the final recommendation band list for the first user Included - May be a device
[0038] According to the present disclosure, a method and apparatus for content recommendation in a content streaming system can be provided.
[0039] According to the present disclosure, a method and apparatus for grouping users in a content streaming system by considering the characteristics of the users can be provided.
[0040] According to the present disclosure, a more efficient content recommendation method and apparatus can be provided by grouping users and recommending content to each group.
[0041] According to the present disclosure, the amount of computation and complexity of content recommendation can be reduced by grouping users and recommending content by group.
[0042] According to the present disclosure, the same group-specific recommended content is provided to users belonging to the same group, and by reordering the recommendation rankings based on each user's viewing history, customized (hyper-personalized) content recommendations for each user are made possible even within the same group.
[0043] According to the present disclosure, unlike existing methods that run individual recommendation models for each user, users can be grouped based on density to perform primary filtering (band determination) on a group basis, and then reordered only within the bands. This provides a technical improvement that significantly reduces the computational load of the server while maintaining personalized recommendation accuracy through the reordering process.
[0044] According to the present disclosure, a method and apparatus for training a vectorization model in a content streaming system can be provided.
[0045] According to the present disclosure, a method and apparatus for training a group classification model in a content streaming system can be provided.
[0046] The effects obtainable from the present disclosure are not limited to those mentioned above, and other unmentioned effects will be clearly understood by those skilled in the art to which the present disclosure pertains from the description below.
[0047] FIG. 1 illustrates a content streaming system according to one embodiment of the present disclosure.
[0048] FIG. 2 illustrates the structure of a client device according to one embodiment of the present disclosure.
[0049] FIG. 3 illustrates the structure of a server according to one embodiment of the present disclosure.
[0050] FIG. 4 illustrates the concept of a content streaming service according to one embodiment of the present disclosure.
[0051] FIG. 5 illustrates the structure of an artificial neural network applicable to a system according to one embodiment of the present disclosure.
[0052] FIG. 6 is a flowchart of the operation of a group classification model according to one embodiment of the present disclosure.
[0053] FIG. 7 is a flowchart of the operation of a vectorization model according to one embodiment of the present disclosure.
[0054] FIG. 8 is a flowchart of a group classification model learning method according to one embodiment of the present disclosure.
[0055] FIG. 9 is a flowchart of a method for generating a plurality of user features according to one embodiment of the present disclosure.
[0056] FIG. 10 is a flowchart of a content recommendation method according to one embodiment of the present disclosure.
[0057] FIG. 11 is a flowchart for determining a recommended band according to one embodiment of the present disclosure.
[0058] FIG. 12 is a drawing illustrating a method for generating a recommended band according to one embodiment of the present disclosure.
[0059] Hereinafter, embodiments of the present disclosure are described in detail with reference to the attached drawings so that those skilled in the art can easily implement them. However, the present disclosure may be embodied in various different forms and is not limited to the embodiments described herein.
[0060] In describing the embodiments of the present disclosure, detailed descriptions of known configurations or functions are omitted if it is determined that such descriptions could obscure the essence of the present disclosure. Additionally, parts of the drawings unrelated to the description of the present disclosure have been omitted, and similar parts are denoted by similar reference numerals.
[0061] The functional blocks shown in the drawings and described below are merely examples of possible implementations. In other implementations, other functional blocks may be used without departing from the spirit and scope of the detailed description. Additionally, while one or more functional blocks of the present disclosure are shown as individual blocks, one or more of the functional blocks of the present disclosure may be a combination of various hardware and software configurations that perform the same function.
[0062] Furthermore, the expression that it includes certain components is an "open-ended" expression that merely designates the existence of such components and should not be understood as excluding additional components. Moreover, when it is mentioned that a component is "connected" or "joined" to another component, it should be understood that while it may be directly connected or joined to that other component, there may also be other components present in between.
[0063] Additionally, unless the context clearly indicates otherwise, a singular expression for an object may be understood as a plural expression. In this disclosure, expressions such as "A or B" or "at least one of A and / or B" may be understood to include all possible combinations of items listed together. Expressions such as "first," "second," "third," etc., may modify the object regardless of order or importance and are used merely to distinguish one object from other objects of the same kind.
[0064] Furthermore, in the present disclosure, "configured to" may be understood to have a technically equivalent meaning to any one of the expressions "suitable for," "capable of," "modified to," "made to," "capable of," or "designed to," depending on the context, in terms of hardware or software, and may be interchangeable. Hereinafter, a method for training a group classification model for content recommendation and a method for recommending content in a content streaming system according to the present disclosure will be described.
[0065] In this specification, 'User Feature' refers to vectorized data representing a user's viewing characteristics used as training data during the learning process. It should be noted that this is vector data having technically the same dimensions and attributes as the 'Embedding Vector' obtained by receiving the user's viewing history during the content recommendation (inference) stage described later. In other words, the trained model classifies users into specific groups using the 'Embedding Vector' during the inference stage.
[0066] FIG. 1 illustrates a content streaming system according to one embodiment of the present disclosure. FIG. 1 illustrates a system for providing content-related services, such as content streaming and the provision of content-related information, and entities belonging to the system. In the present disclosure, various content-related services may be referred to as 'content services' or other terms having an equivalent technical meaning.
[0067] Referring to FIG. 1, a content streaming system may include a client device (110) and a server (120). Here, the client device (110) is exemplified as a set of three client devices (110-1 to 110-3), but the content streaming system may include two or fewer or four or more client devices. Additionally, the server (120) is exemplified as one, but the content streaming system may include multiple servers that interact and share various functions.
[0068] The client device (110) receives and displays content. The client device (110) can receive content streamed from the server (120) after connecting to the server (120) via a network. That is, the client device (110) is hardware installed with client software or an application designed to use the content service provided by the server (120), and can interact with the server (120) through the installed software or application. The client device (110) can be implemented in various forms of devices. For example, the client device (110) may be one of a portable device, a device that is portable but typically fixed during use, or a device that is fixedly installed at a specific location.
[0069] Specifically, the client device (110) may be implemented in at least one form among a smartphone (110-1), a desktop computer (110-2), a tablet PC, a laptop PC, a netbook computer, a workstation, a server, a PDA (personal data assistant), a PMP (portable multimedia player), a camera, or a wearable device. Here, the wearable device may be implemented in at least one form among an accessory type (e.g., a watch, ring, bracelet, anklet, necklace, glasses, contact lenses, HMD (head-mounted-device)), a garment type, a body-attached type (e.g., a skin pad or tattoo), or a bio-implantable circuit. Additionally, the client device (110) may be implemented as a home appliance, for example, in at least one form among a television (110-3), a DVD (digital video disk) player, an audio system, a refrigerator, an air conditioner, a vacuum cleaner, an oven, a microwave oven, a washing machine, and an air purifier.
[0070] The server (120) performs various functions to provide content services. In other words, the server (120) can provide content streaming and various content-related services to the client device (110) by utilizing various functions. Specifically, the server (120) can convert content into data so that it can be streamed and transmit it to the client device (110) via a network. To this end, the server (120) can perform at least one function among content encoding, data segmentation, transmission scheduling, and streaming transmission. Additionally, for the convenience of content usage, the server (120) can further perform at least one function among providing content guides, user account management, user preference analysis, and content recommendation based on preferences. Multiple functions among the aforementioned various functions may be provided, and to this end, the server (120) may be implemented as multiple servers.
[0071] A client device (110) and a server (120) exchange information through a network, and based on the exchanged information, a content service may be provided to the client device (110). At this time, the network may be a single network or a combination of various types of networks. The network may be understood as a form in which different types of networks are connected according to sections. For example, the networks may include at least one of a wireless network and a wired network. Specifically, the networks may include a cellular network based on at least one of 6G (6th generation), 5G (5th generation), LTE (Long Term Evolution), LTE-A (LTE Advance), CDMA (code division multiple access), WCDMA (wideband CDMA), UMTS (universal mobile telecommunications system), WiMAX (Wireless Broadband), or GSM (Global System for Mobile Communications). Additionally, the networks may include a short-range network based on at least one of a wireless local area network (WLAN), Bluetooth, Zigbee, near field communication (NFC), and ultra-wideband (UWB). Additionally, the networks may include wired networks such as the Internet and Ethernet.
[0072] FIG. 2 illustrates the structure of a client device according to one embodiment of the present disclosure. FIG. 2 illustrates the block structure of a client device (e.g., the client device (110) of FIG. 1).
[0073] Referring to FIG. 2, the client device includes a display (202), an input unit (204), a communication unit (206), a sensing unit (208), an audio input / output unit (210), a camera module (212), a memory (214), a power supply unit (216), an external connection terminal (218), and a processor (220). However, depending on the type of device, at least one of the components exemplified in FIG. 2 may be omitted.
[0074] The display (202) outputs information such as visually recognizable images and graphics. To this end, the display (202) may include a panel and a circuit that controls the panel. For example, the panel may include at least one of an LCD (liquid crystal display), an LED (light emitting diode), an LPD (light emitting polymer display), an OLED (organic light emitting diode), an AMOLED (active matrix organic light emitting diode), and an FLED (flexible LED).
[0075] The input unit (204) receives input generated by a user. The input unit (204) may include various types of input detection means. For example, the input unit (204) may include at least one of a physical button, a keypad, and a touchpad. Alternatively, the input unit (204) may include a touch panel. If the input unit (204) includes a touch panel, the input unit (204) and the display (202) may be implemented as a single module.
[0076] The communication unit (206) provides an interface for a client device to form a network with another device and to transmit or receive data through the network. To this end, the communication unit (206) may include a circuit for physically processing signals (e.g., encoder / decoder, modulator / demodulator, RF (radio frequency) front end, etc.), a protocol stack for processing data according to a communication standard (e.g., modem), etc. According to various embodiments, the communication unit (206) may include a plurality of modules to support a plurality of different communication standards.
[0077] The sensing unit (208) collects sensing data including data regarding the state of the client device or the surrounding environment. For example, the sensing unit (208) may measure physical values or changes in values related to the operating state or posture of the client device and generate an electrical signal representing the measured result. Additionally, the sensing unit (208) may measure physical values or changes in values regarding the surrounding environment of the client device and generate an electrical signal representing the measured result. To this end, the sensing unit (208) may include at least one sensor and a circuit for controlling at least one sensor. Specifically, the sensing unit (208) may include at least one of a gyroscope sensor, a magnetic sensor, an accelerometer sensor, a grip sensor, a proximity sensor, a color sensor, a biosensor, a barometric pressure sensor, a temperature sensor, a humidity sensor, an illuminance sensor, or a UV (ultra violet) sensor, an olfactory (e-nose) sensor, a gesture sensor, an EMG (electromyography) sensor, an EEG (electroencephalogram) sensor, an ECG (electrocardiogram) sensor, an IR (infrared) sensor, an iris sensor, and a fingerprint sensor.
[0078] The audio input / output unit (210) outputs sound according to an electrical signal generated based on audio data and detects external sound. That is, the audio input / output unit (210) can convert sound and electrical signals into each other. To this end, the audio input / output unit (210) may include at least one of a speaker, a microphone, and a circuit for controlling them.
[0079] The camera module (212) collects data for generating images and videos. To this end, the camera module (212) may include at least one of a lens, a lens driving circuit, an image sensor, a flash, and an image processing circuit. The camera module (212) can collect light through the lens and generate data expressing the color value and luminance value of the light using the image sensor.
[0080] Memory (214) stores the operating system, programs, applications, commands, configuration information, etc., required for the client device to operate. Memory (214) can store data temporarily or non-temporarily. Memory (214) may be composed of volatile memory, non-volatile memory, or a combination of volatile and non-volatile memory.
[0081] The power supply unit (216) supplies the power required for the operation of the components of the client device. To this end, the power supply unit (216) may include a converter circuit that converts the power into a power of the amount required by each component. The power supply unit (216) may rely on an external power source or include a battery. If it includes a battery, the power supply unit (216) may further include a charging circuit. The charging circuit may support wired charging or wireless charging.
[0082] The external connection terminal (218) is a physical connection means for connecting a client device to another device. For example, the external connection terminal (218) may include at least one of various standard terminals, such as a USB (universal serial bus) terminal, an audio terminal, an HDMI (high definition multimedia interface) terminal, an RS-232 (recommended standard-232) terminal, an infrared terminal, an optical terminal, and a power terminal.
[0083] The processor (220) controls the overall operation of the client device. The processor (220) controls the operation of other components and can perform various functions using other components. For example, the processor (220) can also request content data from the server through the communication unit (206) and receive content data. Additionally, the processor (220) can restore content by decoding the received content data. Additionally, the processor (220) can output content received from the server through the display (202) and the audio input / output unit (210). Additionally, the processor (220) can control the state related to the playback of content based on information input or detected by at least one of the input unit (204), the communication unit (206), the sensing unit (208), the audio input / output unit (210), the camera module (212), the power unit (216), and the external connection terminal (218). To this end, the processor (220) may include at least one of at least one processor, at least one microprocessor, and at least one digital signal processor (DSP). In particular, the processor (220) may control other components and perform necessary operations so that the client device operates according to various embodiments described below.
[0084] In the structure of the client device described with reference to FIG. 2, the components are exemplified as being all connected to the processor (220). Although not shown in FIG. 2, at least some of the components may be connected via a bus. In this case, direct data exchange between some of the components may be performed under the control of the processor (220).
[0085] FIG. 3 illustrates the structure of a server according to one embodiment of the present disclosure. FIG. 3 illustrates the block structure of a server (e.g., the server (120) of FIG. 1).
[0086] Referring to FIG. 3, the server includes a communication unit (302), memory (304), storage (306), and a processor (308). However, depending on various embodiments, at least one of the components illustrated in FIG. 3 may be omitted.
[0087] The communication unit (302) provides an interface for communication with other devices of the server. To this end, the communication unit (302) may include a circuit that generates and interprets physical signals for communication. The interface provided by the communication unit (302) may support wired communication or wireless communication.
[0088] The memory (304) stores various information, commands and / or information, and can load computer programs, commands, etc. stored in the storage (306). The memory (304) temporarily stores data and commands, etc. for server operations and may include RAM (random access memory). Alternatively, the memory (304) may include various storage media.
[0089] Storage (306) may temporarily store an operating system for the operation of a server, a program for performing functions of a server, configuration information for the operation of a server, etc. For example, storage (306) may include at least one of non-volatile memory such as ROM (read only memory), EPROM (erasable programmable ROM), EEPROM (electrically erasable programmable ROM), flash memory, a hard disk, a removable disk, an SSD (solid state drive), or any type of computer-readable recording medium widely known in the art to which this disclosure belongs.
[0090] The processor (308) controls the overall operation of the server. The processor (308) controls the operation of other components and can perform various functions using other components. The processor (308) may include at least one of a CPU (central processing unit), an MPU (micro processor unit), an MCU (micro controller unit), or a type of processor widely known in the art to which this disclosure belongs. In particular, the processor (220) can control other components and perform necessary operations so that the server operates according to various embodiments described below.
[0091] In the structure of the client device described with reference to FIG. 3, the components are exemplified as being all connected to the processor (308). Although not shown in FIG. 3, at least some of the components may be connected via a bus. In this case, direct data exchange between some of the components may be performed under the control of the processor (308).
[0092] FIG. 4 illustrates the concept of a content streaming service according to one embodiment of the present disclosure. FIG. 4 is a schematic representation of some functions related to content streaming, and a content streaming service according to various embodiments may have various additional functions in addition to the functions exemplified in FIG. 4.
[0093] Referring to FIG. 4, control data and content data can be transmitted and received between a client (410) and a server (420). Specifically, transmission of control data from the client (410) to the server (420), transmission of control data from the server (420) to the client (410), and transmission of content data from the server (420) to the client (410) can be performed.
[0094] The server (420) stores user information (422a), content information (422b), and a content database (422c). User information (422a) may include user account information, information on users' service usage history, information on users' preferences, etc. Content information (422b) may include a list of serviceable content, guide information for the content, meta information for the content, information on the consumption history of the content, etc. The content database (422c) may include content stored in a digitized state. In addition, the server (420) may store other information necessary to provide the service.
[0095] Control data from the client (410) to the server (420) may include information regarding user login, information regarding user content selection, information regarding user content control, etc. To this end, the client (410) may generate and transmit control data from user input through a user input processing operation (401). The control data from the client (410) is processed through a control / management operation (403) and used for providing content. For example, control data and / or content may be selected based on the control data from the client (410) by the control / management operation (403). Additionally, preferences may be determined by analyzing the user's consumption history and behavior by the control / management operation (403), and content to be recommended may be selected according to the determined preferences.
[0096] Referring to FIG. 4, the procedure for providing content to a user is as follows. First, the client (410) generates control data including login information (e.g., ID and password) entered by the user through a user input processing operation (401) and transmits the control data. The server (420) can determine whether the user is valid by searching for the login information included in the control data from the client (410) in user information (422a) and determine the scope of content and services allowed according to the user's authority. However, if a login is not required or if limited services that can be provided without a login are supported, the transmission and processing of login information may be omitted.
[0097] Next, the server (420) extracts content guide information from content information (422b) through a control / management operation (403) and transmits control data containing the content guide information to the client (410). The client (410) outputs the content guide information included in the control data and confirms the user's selection. The user's selection is transmitted to the server (420) as control data through a user input processing operation (401). Information regarding the user's selection is processed by the control / management operation (403) and used to select the content to be streamed. The server (420) searches for the selected content in the content DB (422c), performs compression and segmentation on the content through an encoding operation (407) on the searched content, and then transmits the content data. The content data may be compressed and stored in advance through the encoding operation (407). Here, the encoding operation (407) may include not only the operation of compressing the original content video, but also the operation of decoding the content data generated through compression and then compressing it again. At this time, compression can be performed based on the resolution, bitrate, and frames per second of the content video. If the content is stored in a pre-compressed state, the compression operation is omitted, and the server (420) can perform segmentation on the content data. The content data can be restored through a decoding operation (409) and provided to the user through a playback operation (411). At this time, for compression, at least one of various video codecs and various audio codecs may be used. For example, various video codecs include MPEG-2 (Moving Picture Experts Group-2), H.264 AVC (Advanced Video Coding), H.265 HEVC (High Efficiency Video Coding), H.266 It may include at least one of VVC (Versatile Video Coding), VP8 (Video Processor 8), VP9 (Video Processor 9), AV1 (AOMedia Video 1), DivX, Xvid, VC-1, Theora, and Daala.
[0098] Audio codecs may include MP3 (MPEG 1 Audio Layer 3), AC3 (Dolby Digital AC-3), E-AC3 (Enhanced AC-3), AAC (Advanced Audio Coding, MPEG 2 Audio), FLAC (Free Lossless Audio Codec), HE-AAC (High Efficiency Advanced Audio Coding), OGG Vorbis, and OPUS.
[0099] Multiple content data can be generated in advance by compressing the content video according to various resolutions, bitrates, and frames per second of the video. The client (410) can measure throughput (or bandwidth) and determine the bitrate based on the measured throughput (or bandwidth).
[0100] The client (410) can receive information regarding multiple content data from the server (420). The received information may include information indicating the bitrate, resolution, frames per second, and location of the multiple content data.
[0101] The client (410) determines at least one content data among a plurality of content data based on a bitrate, and can determine a playable content data and its location among at least one content data corresponding to a playable resolution and frames per second based on capability information of the client (410). At this time, the capability information may include the client's maximum supported resolution and maximum supported frame rate, but is not limited thereto.
[0102] The client (410) can send a content request to the server (420) based on the location of the playback content data. Based on the received content request, the server (420) can send content data corresponding to the content request to the client (410).
[0103] According to another embodiment, the client (410) receives user input regarding at least one of the resolution of the video and the number of frames per second, determines playback content data and its location according to the user input, and can send a content request to the server (420).
[0104] FIG. 5 illustrates the structure of an artificial neural network applicable to a system according to one embodiment of the present disclosure. An artificial neural network such as FIG. 5 can be understood as the structure of artificial intelligence (AI) models stored in a server (120) or a third device capable of interacting with the server (120). Additionally, an artificial neural network such as FIG. 5 can be understood as the structure of models used in the present invention, and can also be understood as the structure of a Feed Forward Neural Network (FFNN) within the model.
[0105] Referring to FIG. 5, the artificial neural network consists of an input layer (501), at least one hidden layer (502), and an output layer (503). Each of the layers (501, 502, 503) is composed of multiple nodes, and each node is connected to the output of at least one node belonging to the previous layer. Each node calculates the inner product of each output value of the nodes of the previous layer and the corresponding connection weight, and then transmits the output value multiplied by a non-linear activation function to at least one neuron of the next layer.
[0106] An artificial neural network such as that shown in FIG. 5 can be formed by learning (e.g., machine learning, deep learning, etc.). In addition, the artificial neural network model used in various embodiments of the present invention may include at least one of a fully convolutional neural network, a convolutional neural network, a recurrent neural network, a restricted Boltzmann machine (RBM), and a deep belief neural network (DBN), but is not limited thereto. Alternatively, it may include machine learning methods other than deep learning. Alternatively, it may include a hybrid model combining deep learning and machine learning. For example, a deep learning-based model may be applied to extract features of an image, and a machine learning-based model may be applied when classifying or recognizing the image based on the extracted features. The machine learning-based model may include a Support Vector Machine (SVM), AdaBoost, etc., but is not limited thereto.
[0107] Hereinafter, a method and apparatus for training a group classification model for content recommendation according to the present disclosure will be described. Conventionally, hyper-personalized content recommendation systems for each user have been used, and models trained with the features of each user have been utilized for user-specific content recommendation. However, as the number of users using content streaming systems increases, the amount of computation and / or complexity required to train a hyper-personalized content recommendation model may increase. Accordingly, the present disclosure aims to reduce the amount of computation and / or complexity required to train a content recommendation model by grouping multiple users and recommending content by group. Furthermore, by providing the same group-specific recommended content to users belonging to the same group, and by reordering the content recommendation rankings based on each user's viewing history, it enables customized (hyper-personalized) content recommendation for each user even within the same group.
[0108] Hereinafter, a method and apparatus for learning a group classification model used to group users in a content streaming system according to the present disclosure, and a method and apparatus for recommending content using the group classification model are proposed.
[0109]
[0110] FIG. 6 illustrates a flowchart of the operation of a group classification model according to one embodiment of the present disclosure. The group classification model of FIG. 6 may be a model for classifying users with similar recently viewed content into the same group. When embedding vectors corresponding to the recently viewed content of each user are grouped using the group classification model, users with similar recently viewed content may belong to the same group.
[0111] The group classification model may be a model trained to classify users with similar recently viewed content into the same group. The group classification model may be a model trained to receive an embedding vector corresponding to information on recently viewed content as input and output a group number. The group classification model may be trained with training data that includes an embedding vector and a group number labeled on each of the embedding vectors. In this case, embedding vectors with similar information on recently viewed content corresponding to the embedding vector may be labeled with the same group number. The group classification model may be a K-Nearest Neighbors (KNN) model, but the present disclosure is not limited thereto and may include various group classification models. The KNN model may be a model for finding the nearest neighbor k at the time of prediction and determining the label of a new data point based on this label. The KNN model may utilize a distance measurement method, the number of neighbors to reference, and neighbor weights. For example, the distance measurement method may be one of Euclidean distance, Manhattan distance, or Minkowski distance, but is not limited thereto.
[0112] Additionally, the group classification model of FIG. 6 may be one of the models included in the content streaming system according to the present disclosure.
[0113] Referring to FIG. 6, the group classification model can receive an embedding vector as input (S610). The embedding vector may be a vector generated from the vectorization model of FIG. 8. That is, the first embedding vector generated in FIG. 8 can be input to the group classification model. The group classification model that receives the embedding vector can output a group number corresponding to the embedding vector (S630). Based on the group number output by the group classification model (e.g., first group number, second group number, …, or Xth group number), the content streaming system can determine the group to which the user belongs and recommend content to the user based on the group to which the user belongs. The training method of the group classification model for determining the group number will be explained below.
[0114] FIG. 7 is a flowchart of the operation of a vectorization model according to an embodiment of the present disclosure. The vectorization model is an artificial intelligence model that vectorizes images, text, etc., and may be an unsupervised artificial intelligence model that receives information about a single piece of content as input and outputs a single M-dimensional vector. The vectorization model may output similar M-dimensional vectors for similar content information. Here, similar content information may refer to content that is highly relevant when considering specific criteria or content attributes. The vectorization model may be an I2V (item to vector) model, but the present disclosure is not limited thereto and may include various vectorization models. Additionally, the vectorization model of FIG. 7 may be one of the models included in the content streaming system according to the present disclosure.
[0115] Information regarding content according to the present disclosure may include not only the content title but also the content genre or channel. Hereinafter, information regarding content is described assuming that it is the content title; however, it is obvious that the present disclosure is not limited thereto and may also apply to information including various features for classifying content, such as content genre or channel.
[0116] Referring to FIG. 7, the vectorization model may receive information on N content items recently watched by the first user (S710). For example, the vectorization model may receive the titles of each of the N content items recently watched by the first user. Here, N may be a natural number. For example, N may be 3, but the present disclosure is not limited thereto. The N may be a fixed number (e.g., 3 items), but is not limited thereto and may be determined variably on a session-based basis, such as 'content watched within the last hour'. That is, N may be determined by reflecting the window size of the viewing history input to the model to reflect the user's 'short-term interest'.
[0117] The vectorization model can generate N M-dimensional vectors corresponding to N recently viewed content titles (S730). Specifically, the vectorization model can generate N M-dimensional vectors by receiving each of the N content titles as input. Here, M can be a natural number. For example, M can be 32, but the present disclosure is not limited thereto.
[0118] The vectorization model can generate one first embedding vector based on the N M-dimensional vectors generated (S750). Specifically, the content streaming system can calculate statistical values of component values of the same index for the M-dimensional vectors. Here, the statistical values may be at least one of sums, products, variances, or medians. By concatenating the K types of statistical values calculated in this way, one KxM-dimensional first embedding vector can be generated. For example, let us assume that content A, content B, and content C are input into the vectorization model (i.e., N is 3) and M is 32. The vectorization model can infer a 32-dimensional vector A for content A, a 32-dimensional vector B for content B, and a 32-dimensional vector C for content C as follows.
[0119] - Vector A = (A1, A2, A3, … , A32)
[0120] - Vector B = (B1, B2, B3, … , B32)
[0121] - Vector C = (C1, C2, C3, … , C32)
[0122] Subsequently, the vectorization model can calculate the statistical values of vectors A, B, and C. The calculated statistical values may be as follows.
[0123] - Sum = (A1+B1+C1, A2+B2+C2, …, A32+B32+C32)
[0124] - Multiplication value (prod) = (A1*B1*C1, A2*B2*C2, …, A32*B32*C32)
[0125] - Variance value (var) = (var(A1,B1,C1), var(A2,B2,C2), …, var(A32,B32,C32))
[0126] - Median = (median (A1,B1,C1), median (A2,B2,C2), …, median(A32,B32,C32))
[0127] By concatenating the statistical values generated in this way as follows, a single 128-dimensional first embedding vector can be generated.
[0128] - First embedding vector = (A1+B1+C1, A2+B2+C2, …, A32+B32+C32, A1*B1*C1, A2*B2*C2, …, A32*B32*C32, var(A1,B1,C1), var(A2,B2,C2), …, var(A32,B32,C32), median (A1,B1,C1), median (A2,B2,C2), … , median(A32,B32,C32))
[0129] The present disclosure can group users based on a first embedding vector generated by the method described above, and can recommend content to the grouped users. In the above, FIG. 7 is described only with respect to the process for generating a first embedding vector for a first user, but is not limited thereto, and the same process can be applied to each of all users (first user, second user, third user, …, Mth user) to generate a first embedding vector, a second embedding vector, a third embedding vector, …, an Mth embedding vector.
[0130] FIG. 8 is a flowchart of a learning method for a group classification model according to an embodiment of the present disclosure. Referring to FIG. 8, a content streaming system can acquire a plurality of viewing content information (S810). Here, each of the viewing content information may include information about N pieces of content among the content watched by one user. The information about N pieces of content may be the titles of N pieces of content watched consecutively among the content watched at a pre-set completion rate or higher. Here, N may be a natural number, and for example, N may be 3.
[0131] For example, one of the viewing content information may be information about N pieces of content viewed by a first user. Accordingly, the multiple viewing content information may be a set of information about N pieces of content viewed by each of the multiple users. Alternatively, the multiple viewing content information may be information about N pieces of content viewed by each of the multiple users, but may also include multiple viewing content information for a single user. For example, the multiple viewing content information may include first viewing content information containing information about N pieces of content viewed continuously at a first point in time among the content viewed by the first user above a preset completion rate, and second viewing content information containing information about N pieces of content viewed continuously at a second point in time different from the first point in time among the content viewed by the first user above a preset completion rate. That is, the multiple viewing content information may include multiple viewing content information for the first user (e.g., first viewing content information and second viewing content information).
[0132] A content streaming system can generate multiple user features using multiple viewing content information and a vectorization model (S820). Here, the user feature may be an embedding vector corresponding to information about N content items included in the viewing content information. For example, the user feature may be a single embedding vector (e.g., a first embedding vector) corresponding to information about N content items viewed by a first user. Accordingly, the multiple user features may be multiple embedding vectors corresponding to information about N content items viewed by each of the multiple users. Additionally, since multiple viewing content information may be obtained for a single user, the multiple user features may include multiple embedding vectors for a single user. The vectorization model used to generate the embedding vector of FIG. 8 may be the same model as the vectorization model of FIG. 7. Furthermore, a method for generating multiple user features will be described later using FIG. 9.
[0133] A content streaming system can group multiple user features using a density-based clustering module (S830). By using a density-based clustering module, the content streaming system can perform grouping without knowing the number of clusters of user features. Here, the density-based clustering module may be a Hierarchical Density-Based Spatial Clustering of Applications with Noise (HDBSCAN) module, but the present disclosure is not limited thereto and may include various modules for grouping. A density-based clustering module can determine clusters appropriately based on density even without specifying the number of clusters. That is, a density-based clustering module can identify high-density areas as clusters and low-density points as noise. In the case of a Density-Based Spatial Clustering of Applications with Noise (DBSCAN) module, clusters can be identified by measuring density based on a fixed radius and a minimum number of points (minPts). In the case of HDBSCAN, clusters can be identified using core distance (the minimum distance required for a point to become a core point, defined as the distance to the farthest neighbor within a given minimum number of samples) and minimum spanning trees. HDBSCAN forms a graph based on distances and generates a minimum spanning tree from this graph. A minimum spanning tree is the set of the shortest paths connecting all nodes. HDBSCAN can create clusters hierarchically by cutting the generated graph. In other words, HDBSCAN separates clusters by cutting out low-density areas and identifies high-density areas as clusters.
[0134] To group multiple user features, a content streaming system can generate multiple low-dimensional user features corresponding to each of the multiple user features by reducing the dimensionality of each of the multiple user features using a dimensionality reduction module. Here, the dimensionality reduction module may be a module having an algorithm that reduces dimensionality based on similarity. As an example, the dimensionality reduction module may be a TSNE (t-Distributed Stochastic Neighbor Embedding) module, but is not limited thereto. The content streaming system can group multiple low-dimensional user features using a density-based clustering module. Here, the low-dimensional user features may be 2-dimensional vectors.
[0135] The content streaming system can determine the number of groups of multiple user features, the group number of each target user feature, and outlier user features based on the grouping results (S840). Here, the target user feature may be a feature included in a group among the multiple user features. The outlier user feature may be a feature not included in a group among the multiple user features. That is, a feature that is not classified into a group during the grouping process may be classified as an outlier user feature.
[0136] A content streaming system can generate training data by labeling target user features, excluding outlier user features among multiple user features, with a group number corresponding to each target user feature (S850). Using the generated training data, the content streaming system can train a group classification model that receives user features as input and outputs a group number (S860). Accordingly, the 'first group number' output by the trained group classification model corresponds to one of the clusters (groups) defined by the density-based clustering module during the training phase. That is, the trained group classification model can output a logically identical group number by determining which of the cluster distributions defined during the training phase the input embedding vector is closest to.
[0137]
[0138] FIG. 9 is a flowchart of a method for generating a plurality of user features used for training a group classification model according to one embodiment of the present disclosure. Referring to FIG. 9, a content streaming system can determine the frequency of each content for the entire content based on information about N content included in each of the plurality of viewing content information (S910). That is, the content streaming system can determine the frequency of the entire content included in the plurality of viewing content information.
[0139] A content streaming system can classify all content into popular content and unpopular content based on content frequency (S930). Here, popular content may be content with the top X% frequency. Unpopular content may be content with the bottom (100-X)% frequency. Here, X may be a natural number less than or equal to 100, for example, X may be 10.
[0140] A content streaming system can classify multiple viewing content information into popular viewing content information and unpopular viewing content information based on the number of popular content included in the viewing content information (S950). Here, the popular viewing content information may be viewing content information in which popular content makes up the majority of the N content items included in the viewing content information. The unpopular viewing content information may be viewing content information in which unpopular content makes up the majority of the N content items included in the viewing content information.
[0141] A content streaming system can extract target viewing content information by sampling popular viewing content information and unpopular viewing content information among multiple viewing content information at a preset ratio (S970). Here, the preset ratio for popular viewing content information and unpopular viewing content information may be such that the proportion of unpopular viewing content information is larger. For example, the preset ratio for popular viewing content information and unpopular viewing content information may be 1:3. The sampling ratio of popular content and unpopular content (e.g., 1:3) is a technical setting intended to resolve data imbalance in training data. In a typical streaming environment, the proportion of viewing of popular content is overwhelmingly high; therefore, if this is trained as is, the group classification model becomes biased toward popular content, leading to a problem where it fails to distinguish subtle differences in user preferences. The present disclosure enables the model to learn the characteristics of users with diverse viewing patterns more universally and accurately by intentionally setting the proportion of unpopular content high and oversampling.
[0142] The present disclosure allows for learning by adjusting the ratio of popular and unpopular content information, rather than learning using all viewing content information, in order to increase learning accuracy. Specifically, by adjusting the ratio of unpopular content information to be higher than that of popular content information, it is possible to prevent the dilution of unpopular content caused by the group classification model being skewed toward popular content among all content, and to enable the group classification model to learn the overall content distribution in a more balanced manner.
[0143] A content streaming system can generate multiple user features using sampled target viewing content information and a vectorization model (S990).
[0144] Here, the vectorization model may be an unsupervised artificial intelligence model trained to receive information about a single piece of content and output a single M-dimensional vector. Additionally, the vectorization model may be an artificial intelligence model trained to output similar M-dimensional vectors for similar content information. The vectorization model mentioned in Fig. 9 may be identical to the vectorization model of Fig. 8 described above.
[0145] Hereinafter, a method for recommending content by group using a group classification model is described. FIG. 10 illustrates a flowchart of a content recommendation method according to an embodiment of the present disclosure. A content streaming system can obtain information on recently viewed content of a first user (S1010). Here, the information on recently viewed content of the first user may be the titles of N content items recently viewed by the first user. N may be a natural number, for example, N may be 3. The N content items recently viewed by the first user may be determined based on a pre-set completion rate in the content streaming system. For example, if the pre-set completion rate is 0.8, the N recently viewed content items may be the N content items most recently viewed among the content items that the first user has watched 80% or more of.
[0146] A content streaming system can obtain a first embedding vector corresponding to recently viewed content information by using recently viewed content information and a vectorization model (S1030). Here, the vectorization model may be an unsupervised artificial intelligence model that receives information about the content as input and outputs an M-dimensional vector. M may be a natural number, for example, M may be 32. The vectorization model of FIG. 10 may be the same model as the vectorization model of FIG. 8 described above. That is, the vectorization model used in the inference step is a model having the same structure and parameters as the model used to generate training data in the preceding training step (Figs. 7 and 9). Therefore, the first embedding vector obtained in the inference step is located in the same vector space as the user features of the training step, thereby ensuring accurate group prediction by the previously trained group classification model.
[0147] The first embedding vector obtained using recent viewing content information and a vectorization model may be a single vector corresponding to N pieces of recent viewing content information. For example, if the three pieces of content recently viewed by the first user with a completion rate of 0.8 or higher are Content A, Content B, and Content C, the content streaming system may obtain three M-dimensional vectors by inputting Content A, Content B, and Content C, respectively, into a vectorization model, and finally obtain one first embedding vector based on the three M-dimensional vectors. Since the specific method for obtaining the first embedding vector is described in detail in FIG. 8, a redundant explanation is omitted.
[0148] A content streaming system can obtain a first group number corresponding to the first embedding vector by inputting the first embedding vector into a group classification model (S1050). Here, the group classification model may be a model for classifying similar users with similar recently viewed content into the same group. That is, the group classification model can be trained with training data in which, when multiple embedding vectors corresponding to the recently viewed content information of each of the multiple users are grouped, embedding vectors belonging to the same group are classified into the same group. Accordingly, when the recently viewed content of the first user and the recently viewed content of the second user are similar to each other, the group number obtained by inputting the embedding vector obtained from the recently viewed content information of the first user into the group classification model may be the same as the group number obtained by inputting the embedding vector obtained from the recently viewed content information of the second user into the group classification model.
[0149] The content streaming system can determine a first recommended band corresponding to a first group number among a pre-set list of bands (S1070). Here, the band may be a set of content in which at least one of the genre, production company, country, director, actor, viewing age, or channel is the same. For example, the band may mean a set of content such as an action series, a comedy series, a drama series, a sports series, a thriller series, a romance series, an action drama, a horror drama, an entertainment series, an animation series, an educational series, a science fiction movie, a comedy movie, etc. An action series is a set of content whose genre is action, a comedy series is a set of content whose genre is comedy, a drama series is a set of content whose genre is drama, a sports series is a set of content whose genre is sports, a thriller series is a set of content whose genre is thriller, a romance series is a set of content whose genre is romance, an action drama is a set of content whose genre is both action and drama, a horror drama is a set of content whose genre is both horror and drama, an entertainment series is a set of content whose genre is entertainment, an animation series is a set of content whose genre is animation, an educational series is a set of content whose genre is educational, a sci-fi movie is a set of content whose genre is both sci-fi and film, and a comedy movie is a set of content whose genre is both comedy and film. The aforementioned examples of bands are examples based on the genre of the content, and bands may be determined by at least one of the production company, country, director, actor, viewing age, or channel.
[0150] A pre-set band list may include multiple bands, and each band may include multiple contents. For example, a pre-set band list may include an action series band, a comedy series band, a drama series band, a sports series band, a thriller series band, a romance series band, an action drama band, a horror drama band, an entertainment series band, an animation series band, an educational series band, a science fiction movie band, a comedy movie band, etc., and the types of bands included in the band list are not limited to the examples mentioned above.
[0151] The content streaming system can determine a first recommended band corresponding to a first group number among multiple bands included in a pre-configured band list. The 'band' or 'band list' may be a static database pre-built by a system administrator by genre / tag, but is not limited thereto. For example, it may be a dynamic cluster that is dynamically created or updated within the server based on metadata of new content that is periodically updated, and this may be flexibly changed according to the system's operational policy.
[0152] The first recommended band can be determined based on the viewing history of users belonging to the first group. For example, the first recommended band can be determined as a band containing a large number of content related to content primarily watched by users belonging to the first group among multiple bands included in the band list. To determine the first recommended band, the content streaming system can create a first viewing content list by collecting information on the first user's recently viewed content and information on the recently viewed content of similar users assigned the same group number as the first user. Subsequently, the content streaming system can generate a list of top-scoring content by scoring the content included in the first viewing content list based on frequency. The first recommended band can be determined by comparing the generated list of top-scoring content with each content included in each band within the pre-set band list. A specific method for determining the recommended band corresponding to the group will be described later in FIG. 11.
[0153] The content streaming system can determine a first reordered recommendation band by reordering the recommendation rankings of the content included in the first recommendation band based on the first user's recently viewed content information (S1090). Specifically, the content streaming system can determine weights for each piece of content included in the first recommendation band based on the first user's viewing history. Based on the determined weights, the content streaming system can generate a first reordered recommendation band by reordering the recommendation rankings of the content included in the first recommendation band. Since the recommendation rankings of the content within the band are reordered based on each user's viewing history, hyper-personalized content recommendation for each user can be performed even if the same recommendation band is determined for users belonging to the same group.
[0154] The content streaming system can determine the first reordered recommendation band by reordering content other than one of the series to a lower rank among the content included in the first recommendation band, for content of the same series. For example, if the first recommendation band includes Movie 1, Movie 2, and Movie 3, the content streaming system can maintain the rank of Movie 1 and reorder the ranks of Movie 2 and Movie 3 to a lower rank, and the content to be reordered to a lower rank is not limited to the example described above. By reordering content of the same series to a lower rank among the content included in a band, the inconvenience caused by the repeated recommendation of content of the same series can be reduced when a user recognizes recommended content.
[0155] The first reordered recommended band may be included in the final recommended band list. Here, the final recommended band list is the final list of bands to be displayed to the first user and may include multiple reordered bands.
[0156] The weights for rearranging content within the first recommendation band may include positive weights and negative weights. The positive weight may be determined based on the genre and / or channel of the content viewed by the first user. If multiple contents included in the band belong to the same genre, the positive weight may be determined based on the channel of the content viewed by the first user. The negative weight may be determined based on whether the content exposed to the first user has been viewed. For example, a negative weight may be assigned to content that was exposed to the first user but was not viewed by the first user. Here, whether the content has been exposed to the user may be determined based on whether the content's title is displayed above a certain level on the display of the client device (the first user's device). To make this determination, the content streaming system may separately manage the title of the exposed content, whether it has been viewed, whether it has been selected, and / or clicked for each user.
[0157] Although the above description is based on the first recommendation band, the present disclosure is not limited thereto and X recommendation bands can be determined for the first user, and a final recommendation band list including the reordered X recommendation bands can be determined by performing content ranking reordering for each of the X recommendation bands. For example, the content streaming system may further determine a second recommendation band corresponding to the first group number. The second recommendation band may be determined based on the viewing history of users belonging to the first group. For example, the second recommendation band may be determined as a band that includes a number of content related to content primarily watched by users belonging to the first group, excluding the first recommendation band from among the multiple bands included in the band list. In this case, the second recommendation band may have a lower ranking than the first recommendation band. The second reordered recommendation band may be determined by reordering the recommendation ranking of the content included in the second recommendation band based on the first user's recently viewed content information. If the second reordered recommendation band contains content identical to the first recommendation band, the content streaming system may determine a filtered second reordered recommendation band by deleting content identical to that included in the first recommendation band from the second reordered recommendation band. In this case, the filtered second reordered recommendation band may be included in the final recommendation band list.
[0158] Although FIG. 10 is described based on one user (the first user), the same process can be performed for each of all users (the second user, the third user, ..., the nth user) using the content streaming system. Additionally, the process of FIG. 9 can be performed a predetermined number of times. For example, the process of FIG. 10 can be performed once a day for each user, but is not limited thereto.
[0159] FIG. 11 is a flowchart for determining a recommendation band according to an embodiment of the present disclosure. According to the present disclosure, a content streaming system can generate a viewing content list based on recent viewing content information of users assigned the same group number (S1110). That is, the content streaming system can generate a viewing content list (e.g., a first viewing content list) by collecting recent viewing content information of each user assigned the same group number. Here, the recent viewing content information can be determined based on each user's viewing log. For example, the recent viewing content information may include only content with a predetermined completion rate or higher. Alternatively, the recent viewing content information may include only content with a predetermined completion rate or higher within the last Y days. Here, Y is a natural number, and Y may be set differently depending on the content genre.
[0160] A content streaming system can generate a list of top-scoring content by scoring the content included in the viewing content list based on frequency (S1130). That is, the content streaming system scores the content included in the viewing content list according to a predetermined method and generates a list of top-scoring content listed in descending order.
[0161] Specifically, to generate a list of top-scoring content, the content streaming system may calculate the frequency of each viewed content included in a list of viewed content (e.g., a first list of viewed content). Subsequently, the content streaming system may calculate a first frequency score for each viewed content by performing logarithmic scaling on the calculated frequency. Additionally, the content streaming system may calculate a second frequency score for each viewed content based on the frequency ranking of the viewed content. Furthermore, the content streaming system may calculate a meta score for each viewed content based on content characteristics. Here, the content characteristics may include at least one of genre, channel, or viewing age, and may include various content characteristics, not limited thereto in the present disclosure. A final score for each viewed content may be calculated based on the sum and / or average of the calculated first frequency score, second frequency score, and meta score, and a list of top-scoring content may be generated based on the calculated final score.
[0162] For example, a content streaming system can calculate the frequency for each content title based on the total viewing logs included in a first group having a first group number. The content streaming system can calculate a first frequency score for each viewed content, having a value between 0 and 1, by log-scaling the calculated frequency. Additionally, the content streaming system can calculate a second frequency score, having a value between 0 and 1, linearly from the first-ranked content to the last-ranked content, based on the frequency ranking of the viewed content. In this case, a large second frequency score may be assigned to high-ranked content. Furthermore, the content streaming system can calculate scores for the genre, channel, and viewing age of the viewed content by assigning weights to recently viewed content for each of these categories and summing the scores according to frequency. A meta score can be calculated by summing all the scores for the genre, channel, and viewing age of the viewed content calculated in this way. The content streaming system can calculate the final score for each piece of content by summing and / or averaging the values of the calculated first frequency score, second frequency score, and meta score. A list of top-scoring content can be generated by listing the content in order of highest to lowest calculated final score.
[0163] A content streaming system can determine a recommended band by comparing each content included in each band within a pre-set band list with a list of top-scoring content (S1150). Specifically, referring to FIG. 12, the content streaming system can create group_train [first group] data (1230) and group_candidate [first group] data (1235) using frequency scores (e.g., first frequency score, second frequency score, meta score, final score, etc.) of the content included in the list of top-scoring content (1220). Here, group_train [first group] data (1230) may be a set of content representing a group. group_train [first group] data (1230) may include content with a frequency score of 0.7 or higher among the content in the list of top-scoring content (1220), and group_candidate [first group] data (1235) may include content with a frequency score of 0.5 or higher among the content in the list of top-scoring content (1220). Additionally, the content streaming system can ensure that the number of contents in the group_train[1st group] data (1230) and group_candidate[1st group] data (1235) is maintained at a certain number or higher. This is because many of the contents included in the list of top-scoring contents in the minor group may not exceed a frequency score of 0.7 or 0.5.
[0164] A content streaming system may generate group_inference [first group] data (1240) composed of content within group_candidate [first group] data (1235) and content included in multiple bands within a preset band list (1210). The group_inference [first group] data (1240) may be generated to further include popular content. In the present disclosure, group_inference [first group] data (1240) may be used interchangeably with "intermediate band list". In the present disclosure, popular content may be popular content selected based on the total viewing frequency within the band. The reason for adding popular content to the group_inference[1st group] data (1240) is to ensure the minimum number of content in the group_inference[1st group] data (1240) by additionally including popular content when there is little intersection content between the content in the group_candidate[1st group] data (1235) and the content included in multiple bands in the pre-set band list (1210).
[0165] The content streaming system can identify representative content based on the content within the group_train [first group] data (1230). For example, if the representative content of the first group is [children's cartoon 'AAA', mystery cartoon 'BBB', romance drama 'CCC'], the genres of the content within the representative content are [animation, animation, romance drama], and the channels are [animation channel 'T', animation channel 'T', general broadcast channel 'N']. Therefore, the preferred genre of the first group can be designated as animation, and the preferred channel as animation channel 'T'. The content streaming system can calculate a score for each band of the group_inference data based on the representative content title, preferred genre, and preferred channel. That is, the content streaming system can calculate a score for each band within the intermediate band list (1240) based on at least one of the most frequent genre among the representative content, the most frequent channel among the representative content, or the title of the representative content, and the number of matchings of the content included in each band within the intermediate band list (1240). For example, a score may be assigned to Band A if one of the titles, genres, or channels of the content included within Band A of the group_inference data is identical to at least one of the representative content titles, preferred genres, or preferred channels. More specifically, if Band A contains x pieces of content or series identical to the children's cartoon 'AAA', the mystery cartoon 'BBB', or the romance drama 'CCC', x points may be assigned. Additionally, if Band A contains y pieces of content of the preferred genre, animation, y points may be assigned. Furthermore, if Band A contains z pieces of content of the same channel as the preferred channel, animation channel 'T', z points may be assigned. Finally, x+y+z points may be calculated for Band A.In this way, the content streaming system can calculate a score for each of the groups within group_inference[first group] (1240). The content streaming system can determine the first recommendation band (1250) for the first group based on the calculated scores for each group. That is, the content streaming system can determine n recommendation bands as recommendation bands (1250) for the first group in order of highest to lowest calculated scores. Here, n is a natural number, and for example, n can be 16. As described above, FIG. 10 describes a method for determining recommendation bands based on the first group, but it is obvious that the same process can be performed for multiple groups.
[0166] The exemplary methods of the present disclosure are described as a series of operations for clarity of description, but this is not intended to limit the order in which the steps are performed, and if necessary, each step may be performed simultaneously or in a different order. To implement other methods of the present invention, additional steps may be included in addition to the steps exemplified, steps excluding some steps and including the remaining steps, or steps excluding some steps and including additional steps.
[0167] The various embodiments of the present disclosure are not intended to list all possible combinations but to describe representative aspects of the present disclosure, and the matters described in the various embodiments may be applied independently or in combination of two or more.
[0168] In addition, various embodiments of the present disclosure may be implemented by hardware, firmware, software, or a combination thereof. In the case of implementation by hardware, it may be implemented by one or more ASICs (Application Specific Integrated Circuits), DSPs (Digital Signal Processors), DSPDs (Digital Signal Processing Devices), PLDs (Programmable Logic Devices), FPGAs (Field Programmable Gate Arrays), general processors, controllers, microcontrollers, microprocessors, etc.
[0169] The scope of the present disclosure includes software or machine-executable instructions (e.g., operating system, application, firmware, program, etc.) that enable an operation according to a method of various embodiments to be executed on a device or computer, and a non-transitory computer-readable medium on which such software or instructions, etc. are stored and executable on a device or computer.
Claims
1. Regarding methods for recommending content in a content streaming system, A step of obtaining information on recently viewed content of a first user - the recently viewed content information includes information on N pieces of content recently viewed by the first user, wherein N is a natural number -; A step of obtaining a first embedding vector corresponding to the recently viewed content information using the recently viewed content information and vectorization model; A step of obtaining a first group number corresponding to the first embedding vector by inputting the first embedding vector into a group classification model; A step of determining a first recommended band corresponding to the first group number among a preset band list - said band includes multiple contents in which at least one of the genre, production company, country, director, actor, viewing age, or channel is the same -; and A method comprising the step of determining a first reordered recommendation band by reordering the recommendation ranking of content included in the first recommendation band based on the recent viewing content information of the first user, wherein the first reordered recommendation band is included in the final recommendation band list for the first user.
2. In Paragraph 1, A method characterized by the above group classification model being trained using embedding vectors labeled with group numbers to classify embedding vectors obtained from similar recently viewed content into the same group.
3. In Paragraph 1, A method characterized in that the information regarding N contents recently viewed by the first user is the title of each of the N contents most recently viewed by the first user, which has a pre-set completion rate or higher.
4. In Paragraph 3, A method characterized in that the above N is 3.
5. In Paragraph 1, A method characterized in that the first embedding vector is a single vector corresponding to information about the N contents.
6. In Paragraph 5, The above vectorized model is an unsupervised artificial intelligence model that takes information about a single piece of content as input and outputs a single M-dimensional vector, where M is a natural number. The step of obtaining the first embedding vector above is, A step of obtaining N M-dimensional vectors by inputting information for each of the above N contents into the vectorization model; A step of calculating statistical values of component values of the same index for the above N M-dimensional vectors; and A method comprising the step of obtaining a first embedding vector by concatenating the statistical values for each of the above-mentioned indices.
7. In Paragraph 6, The above M is 32, and The above statistical values are the sum, product, variance, and median, and A method characterized in that the first embedding vector is a 128-dimensional vector.
8. In Paragraph 1, The step of determining the first recommended band corresponding to the first group number is, A step of generating a first viewing content list based on the recent viewing content information of the first user and the recent viewing content information of users of the first group number other than the first user; A step of generating a top-scoring content list by scoring the viewing content included in the first viewing content list based on frequency; and A method comprising the step of determining the first recommended band by comparing the content included in each band within the aforementioned preset band list with the aforementioned top score content list.
9. In Paragraph 8, The step of determining the first recommendation band by comparing the above-mentioned top score content list is: A step of generating an intermediate band list of a first group by extracting at least one content identical to the list of top-scoring content among the content included in each band, for each band within the aforementioned preset band list; A step of identifying representative contents of the first group based on a score based on the frequency of contents included in the above-mentioned top-scoring content list; A step of calculating a score for each band in the intermediate band list based on the representative content and the content included in each band in the intermediate band list; and A method comprising the step of determining the first recommended band among the bands included in the intermediate band list based on the score for each of the bands above.
10. In Paragraph 9, The step of calculating a score for each band within the above intermediate band list is performed based on at least one of the most frequent genre among the above representative content, the most frequent channel among the above representative content, or the title of the above representative content, and the number of matching instances of the content included in each band for each band within the above intermediate band list.
11. In Paragraph 8, The step of generating the above-mentioned top score content list is, A step of calculating the frequency of each viewing content included in the first viewing content list above; A step of calculating a first frequency score for each viewing content by performing log scaling on the above frequency count; A step of calculating a second frequency score for each of the above-mentioned viewing content based on the frequency ranking of the above-mentioned viewing content; A step of calculating a meta score for each of the above-mentioned viewing content based on the content characteristics for each of the above-mentioned viewing content - the content characteristics include at least one of genre, channel, or viewing age -; and A method further comprising the step of calculating a final score for each viewing content based on the average value of the first frequency score, the second frequency score, and the meta score.
12. In Paragraph 1, The step of determining the first reordered recommendation band comprises: determining a weight for each content included in the first recommendation band based on the viewing history of the first user; and A method comprising the step of rearranging the recommendation ranking of the content included in the first recommendation band based on the above weights.
13. In Paragraph 12, The above weights include positive weights and negative weights, and The above plus weight is determined based on at least one of the genre and channel of the content watched by the first user, and A method characterized in that the above negative weight is determined based on whether the content exposed to the first user has been viewed.
14. In Paragraph 1, A step of further determining a second recommendation band corresponding to the first group number above - the second recommendation band has a lower recommendation rank than the first recommendation band -; A step of determining a second reordered recommendation band by reordering the recommendation ranking of the content included in the second recommendation band based on the recent viewing content information of the first user; and The method further includes the step of filtering content that is identical to content included in the first reorder recommendation band among the content included in the second reorder recommendation band; A method characterized in that the above final recommended band list includes the above first reordered recommended band and the above filtered second reordered recommended band.
15. In Paragraph 1, The step of determining the first reorder recommendation band further includes the step of reordering content other than one of the content in the series to a lower priority among the content in the same series included in the first recommendation band.
16. In a device for recommending content in a content streaming system, A memory for storing information necessary for the operation of the above device; and It includes a processor connected to the above memory, The above processor is, Acquire information on recently viewed content of the first user - the recently viewed content information includes information on N pieces of content recently viewed by the first user, where N is a natural number -, Using the above recently viewed content information and vectorization model, a first embedding vector corresponding to the above recently viewed content information is obtained, and By inputting the first embedding vector into a group classification model, a first group number corresponding to the first embedding vector is obtained, and Determining a first recommended band corresponding to the first group number from a preset band list - said band includes multiple contents in which at least one of the genre, production company, country, director, actor, viewing age, or channel is the same -, A device for determining a first reordered recommendation band by reordering the recommendation ranking of content included in the first recommendation band based on the recent viewing content information of the first user, wherein the first reordered recommendation band is included in the final recommendation band list for the first user.