The present invention relates to an apparatus and method for recommending courses.
Given the amount of e-learning courses available today and the pace on which the new courses are emerging, it is important for course providers to be able to ensure that users are only presented with courses that are genuinely relevant and timely. Thus, it will only cost end users less time in filtering courses that they are not interested in, and thus they are able to focus on those ones in which they have interest. So far, course providers generally recommend courses to potentially interested users based on user profiles, user behaviors, or past learning activities.
A conventional recommendation method is disclosed in US20080254430A1, wherein recommendation of a learning application program is determined based on the collected profile characteristics and performance data of a user. The main drawback of this conventional recommendation method is that the profile characteristics and performance data of the user is necessary for the recommendation, collection of such information is time-consuming and needs to be done with the aid of the user, and in case such information is not available, the recommendation cannot be performed.
An object of the present invention is to provide an improved apparatus and method for recommending courses, which obviates at least some of the above-mentioned disadvantages.
According to a first aspect of the present invention, there is provided an apparatus for recommending courses. The apparatus comprises a first receiver, a first collector, a first calculator, and a first recommender. The first receiver is adapted to receive a course request from a user client, the first collector is adapted to collect user context related to the user client, the first calculator is adapted to calculate relevance between the user context and each course stored in a storage device, and the first recommender is adapted to recommend courses on the basis of the calculated relevance to the user client.
Optionally, each course stored in the storage device contains one ore more keywords each having one or more reference context, and the first calculator comprises a second calculator and a third calculator. The second calculator is adapted to calculate relevance between the user context and the one or more keywords contained in the course as one or more first relevance values, respectively, and the third calculator is adapted to calculate relevance between the user context and the course on the basis of the one or more first relevance values.
Optionally, the second calculator comprises a fourth calculator and a fifth calculator. The fourth calculator is adapted to calculate relevance between the user context and one or more reference context belonging to each keyword among the one ore more keywords, as one or more second relevance values, respectively. And the fifth calculator is adapted to calculate relevance between the user context and the each keyword on the basis of the one or more second relevance values and weights belonging to respective reference context, as one or more first relevance values.
Optionally, the first recommender is adapted to recommend courses whose relevance is higher than a first predefined threshold value to the user client.
Optionally, the apparatus further comprises a second collector and an adjuster. The second collector is adapted to collect feedback from the user client, and the adjuster is adapted to adjust the weights belonging to respective reference context on the basis of the feedback.
Optionally, the keywords and the reference context belonging thereto of the courses stored in the storage device are extracted by an extractor on the basis of contents of the courses.
Optionally, the extractor comprises a generator, a selector, and a classifier. The generator is adapted to generate words by performing word segmentation on the contents of the courses, the selector is adapted to select words whose frequency is higher than a second predefined threshold value and lower than a third predefined threshold value, and the classifier is adapted to classify the selected words as keywords and reference context belonging thereto.
Optionally, the courses are mobile courses.
Optionally, the user context and the reference context include one or more of time, location, season, weather, environment, and event.
According to a second aspect of the present invention, there is provided a method of recommending courses. The method comprises the steps of receiving a course request from a user client, collecting user context related to the user client, calculating relevance between the user context and each course stored in a storage device, and recommending courses on the basis of the calculated relevance to the user client.
Optionally, each course stored in the storage device contains one ore more keywords each having one or more reference context, and the step of calculating relevance between the user context and each course stored in a storage device comprises the steps of calculating relevance between the user context and the one or more keywords contained in the course as one or more first relevance values, respectively, and calculating relevance between the user context and the course on the basis of the one or more first relevance values.
Optionally, the step of calculating relevance between the user context and the one or more keywords contained in the course as one or more first relevance values respectively comprises the steps of calculating relevance between the user context and one or more reference context belonging to each keyword among the one ore more keywords, as one or more second relevance values, respectively, and calculating relevance between the user context and the each keyword on the basis of the one or more second relevance values and weights belonging to respective reference context, as one or more first relevance values.
Optionally, the step of recommending courses on the basis of the calculated relevance to the user client comprises recommending courses whose relevance is higher than a first predefined threshold value to the user client.
Optionally, the method further comprises the following step after the step of recommending courses on the basis of the calculated relevance to the user client: collecting feedback from the user client; and adjusting weights belonging to respective reference context on the basis of the feedback.
Optionally, the keywords and the reference context belonging thereto of the courses stored in the storage device are extracted on the basis of contents of the courses.
Optionally, the extraction comprises the steps of generating words by performing word segmentation on the contents of the courses, selecting words whose frequency is higher than a second predefined threshold value and lower than a third predefined threshold value, and classifying the selected words as keywords and reference context belonging thereto.
Optionally, the courses are mobile courses.
Optionally, the user context and the reference context include one or more of time, location, season, weather, environment, and event.
According to a third aspect of the present invention, there is provided a system for recommending courses. The system comprises a user client, a storage device, and the apparatus according to the present invention.
Optionally, the user client is a mobile device, and communicates with the apparatus via a mobile network.
According to a fourth aspect of the present invention, there is provided a computer program product, comprising a computer readable medium, having stored thereon computer executable codes, when executed, causing a processor to perform the method according to the present invention.
According to a fifth aspect of the present invention, there is provided a computer readable medium, having stored thereon computer executable codes, when executed, causing a processor to perform the method according to the present invention.
According to a sixth aspect of the present invention, there is provided a system for recommending courses. The system comprises a storage device, a user client, and an apparatus for recommending courses. The storage device is adapted to store courses. The user client comprises a third collector adapted to collect user context related to the user client, and a transmitter adapted to transmit a course request and the user context to an apparatus for recommending courses. The apparatus for recommending courses comprises a second receiver adapted to receive the course request and the user context from the user client, a sixth calculator adapted to calculate relevance between the user context and each course stored in the storage device, and a second recommender adapted to recommend courses on the basis of the calculated relevance to the user client.
Thus, the present invention provides a direct and efficient approach for recommending courses based on user context which has a strong impact on user experience. According to the present invention, user information such as user profiles, user behaviors, or past learning activities is not indispensable for the recommendation, and thus cold start problems happening when no user information is available can be solved. The user does not need to input query term(s) when requesting the recommendation, and the recommendation can be performed whenever and wherever the user requests courses.
The accompanying drawings are included to provide a further understanding of embodiments and are incorporated in and constitute a part of this description. The drawings illustrate embodiments and together with the description serve to explain principles of embodiments. The elements of the drawings are not necessarily to scale relative to each other. Like reference numerals designate corresponding similar parts. It should be expressly understood that the drawings are included for illustrative purposes and do not in any manner limit the scope of the present invention.
In the following description, for purposes of explanation rather than limitation, specific details, such as the particular architecture, structure, techniques, etc., are set forth for illustration. However, it will be apparent to those of ordinary skill in the art that other embodiments that depart from these specific details would still be understood to be within the scope of the present invention. Moreover, for the purpose of clarity, detailed descriptions of well-known devices, circuits, and methods are omitted so as not to obscure the description of the present invention. It is to be understood that the features of the various exemplary embodiments described herein may be combined with each other, unless specifically noted otherwise.
As shown in
The apparatus 200 further comprises a first calculator 230 adapted to calculate relevance between the user context and each course stored in a storage device. Optionally, the storage device (not shown in
The model sets are dynamic sets defining multidimensional tables or spaces, which are able to self-learn based on users' feedback. For instance, the space may be in the form of [keyword, reference context, weight]. Similarly with the above-described user context, the reference context includes one or more of time, location, season, weather, environment, event, etc.
According to an embodiment of the present invention, the extractor comprises a generator adapted to generate words by performing word segmentation on the contents of the courses. The word segmentation for e.g. English and Chinese languages is different. English sentences are constructed by words, and word boundaries are clearly delimited by space characters and punctuation marks. Thus, words segmentation for English sentences can be easily done by means of space characters and punctuation marks. However, a Chinese sentence consists of one or more Chinese characters, and there are no explicit word boundaries, which makes segmentation of Chinese sentences a complicated task. There exist several kinds of Chinese sentence segmentation (identification) approaches, which generally fall into the following three categories: dictionary-based approaches, statistical approaches, and hybrid approaches. In general, very high identification rates (usually 80%˜98%) can be achieved. And there also exist many usable algorithms and projects for these approaches, such as poading, imdict (ICTCLAS), mmseg4j, ik, GIZA++.
The extractor further comprises a selector adapted to select words whose frequency is higher than a predefined lower threshold value and lower than a predefined higher threshold value, and a classifier adapted to classify the selected words as keywords and reference context belonging thereto. The above two predefined threshold values adopted by the selector may be used to filter out low frequency words and unproductive words such as “this”, “but”, names of people, etc, and can be predetermined according to actual condition and demand. The classifier may classify the selected words containing meaningful noun as keywords, and classify the selected words containing information such as time, season, number, location, weather, etc as reference context belonging to corresponding. keywords.
In the table as shown in
An example of construction of model sets for a course will be described with reference to
Referring back to
Hereinafter, an example will be described in order to explain the operations of the first calculator 230. In this example, there are four context dimensions: location, time, season, and temperature, which forms a 4-dimensional hyper space. The model space contains NN records.
Read received user context as Ct(Location, Time, Season, Temperature), t herein means timing. Read each set in model sets as A(keywordi, Ci, Wi), wherein reference context is Ci(Location, Time, Season, Temperature) and Wi is the weight. Here, i ranges from 0 to NN−1.
In order to calculate relevance between Ct and Ci, optionally a difference Diff(Ct, Ci) between Ct and Ci is calculated. Firstly, a difference DL′ between Ct(Location) and Ci(Location) is calculated and then normalized into the value region [0, 1], so as to obtain a difference DL. Secondly, a difference DT′ between Ct(Temperature) and Ci(Temperature) is calculated and then normalized into the value region [0, 1], so as to obtain a difference DT. Similar difference calculation and normalization can be performed to obtain a normalized time difference Dt and a normalized season difference DS. Finally, all the four differences are summed and then normalized into the value region [0, 1] as follows:
Diff(Ct, Ci)=sum(DL+DT+Dt+DS)/4
Conventional normalization methods such as exponential function (e.g., f=1−exp(−x)) can be used herein. A precise mapping function can be obtained by statistical analysis on the original difference values.
Then, relevance R(Ct, Ci) between Ct and Ci can be calculated by the fourth calculator 232a comprised in the second calculator 232 based on the calculated Diff(Ct, Ci). A relevance value of 1 means that two vectors are identical and their relevance is 1, and a relevance value of 0 means that their relevance is 0.
Optionally, a decreasing function R(Ct, Ci)=f(Diff(Ct, Ci)), such as R=1−Dist(Ct, Ci), can be adopted. The range of R(Ct, Ci) is [0, 1].
Subsequently, relevance R(Ct, keywords) between Ct and each keyword can be calculated by the fifth calculator 232b comprised in the second calculator 232 based on the calculated R(Ct, Ci). In the model sets, a keyword Ki may contain Ni groups of reference context, and the total number of keywords is assumed to be M. The relevance between each keyword and the user context Ct is calculated as Ri(Ct, Ki). The range of i is [0, M−1].
Ri(Ct, Ki)=sum(Wi1*R(Ct, Ci1), . . . , Wik*R(Ct, Cik), . . . , WiNi*R(Ct, CiNi)) wherein Wi(Wi0˜WiNi) are a set of weights of the reference context of the keyword Ki.
Finally, relevance R(Ct, course) between Ct and each course can be calculated by the third calculator 234 based on the calculated Ri(Ct, Ki). Optionally, each course can be represented as course((keyword1, frequency1), . . . , (keywordM, frequencyM)), and the frequency is a statistical result on how many times a keyword can be found in the course content. Several approaches can be used such as the TF-IDF algorithm in the Lucene project for the statistics.
For a certain course, R(Ct, course) can be calculated as follows:
R(Ct, course)=sum(f1*R0(Ct, K0), . . . , fn*Rn(Ct, Kn))
It should be noted that the above detailed example is only an example for exemplifying the operations of the first calculator 230, rather than restrictive, and other appropriate approaches can also be employed to achieve the function of the first calculator 230.
Referring back to
According to an embodiment of the present invention, the apparatus 200 further comprises a second collector 250 adapted to collect feedback from the user client and an adjuster 260 adapted to adjust the weights belonging to respective reference context on the basis of the feedback. As described above with respect to the concept of weight, when the user provides feedback, i.e., whether a certain recommended course is accepted by the user, the second collector 250 collects the feedback, and the adjuster 260 accordingly adjusts respective weights. For example, with respect to the recommended course accepted by the user, the weights of all items of [keyword, reference context, weight] in this course may for example be increased by one; with respect to the recommended course not accepted by the user, the weights of all the items may for example be decreased by one. The weight can be a negative value (e.g., −1), zero, or a positive value (e.g., 3). The weights of the items in the course are adjusted based on the user's feedback, so that more precise and suitable recommendation can be provided when a user's mobile device with same or similar user context requests recommendation in the future.
As shown in
Then, in a step 103, user context related to the user client is collected. Optionally, the step 103 can be performed by the above-described first collector 220 of the apparatus 200 according to the present invention. According to an embodiment of the present invention, the user context includes one or more of time, location, season, weather, environment, event, etc of a user's mobile device or in a predetermined location related to the mobile device. One or more of various appropriate collecting techniques known in the art can be adopted in the step 103, such as the approaches described above with respect to the first collector 220.
Then, in a step 105, relevance between the user context and each course stored in a storage device is calculated. Optionally, the step 105 can be performed by the above-described first calculator 230 of the apparatus 200 according to the present invention. Optionally, the storage device may be one of various storage devices known in the art, such as hard disk, optical disk, etc. The courses provided by course providers are pre-stored in the storage device for example in the exemplary form of model sets described with reference to
The model sets are dynamic sets defining multidimensional tables or spaces, which are able to self-learn based on users' feedback. For instance, the space may be in the form of [keyword, reference context, weight]. Similarly with the above-described user context, the reference context includes one or more of time, location, season, weather, environment, event, etc.
According to an embodiment of the present invention, the keywords and the reference context belonging thereto shown in the table of
According to an embodiment of the present invention, the extraction comprises the steps of: generating words by performing word segmentation on the contents of the courses, which can be optionally performed by the above-described generator according to the present invention; selecting words whose frequency is higher than a second predefined threshold value and lower than a third predefined threshold value, which can be optionally performed by the above-described selector according to the present invention; and classifying the selected words as keywords and reference context belonging thereto, which can be optionally performed by the above-described classifier according to the present invention.
The above description related to the detailed operations of the generator, the storage, and the classifier of the extractor also applies to the steps of generating, selecting and classifying comprised in the extraction, and is thus not iterated for the sake of conciseness.
In the table as shown in
Further, the above description of the example of construction of model sets for a course with reference to
Referring again to
Further, the above description for the example of the detailed operations of second calculator 232, the third calculator 234, the fourth calculator 232a, and the fifth calculator 232b of the first calculator 230 also applies to the steps 105a, 105b, 105a1, and 105a2 comprised in the step 105, and is thus not iterated for the sake of conciseness.
Referring back to
According to an embodiment of the present invention, the step 107 comprises a step 109 of collecting feedback from the user client and a step 111 of adjusting weights belonging to respective reference context on the basis of the feedback. Optionally, the steps 109 and 111 can be performed by the above-described second collector 250 and the adjuster 260 according to the present invention, respectively. As described above with respect to the concept of weight, when the user provides feedback, i.e., whether a certain recommended course is accepted by the user, the feedback is collected in the step 109, and respective weights are accordingly adjusted in the step 111. For example, with respect to the recommended course accepted by the user, the weights of all items of [keyword, reference context, weight] in this course may for example be increased by one; with respect to the recommended course not accepted by the user, the weights of all the items may for example be decreased by one. The weight can be a negative value (e.g., −1), zero, or a positive value (e.g., 3). The weights of the items in the course are adjusted based on the user's feedback, so that more precise and suitable recommendation can be provided when a user's mobile device with same or similar user context requests recommendation in the future.
Embodiments of the present invention may be implemented in hardware, or as software modules running on one or more processors, or in a combination thereof. That is, those skilled in the art will appreciate that special hardware circuits such as Application Specific Integrated Circuits (ASICs) or Digital Signal Processors (DSPs) may be used in practice to implement some or all of the functionality of all components of the apparatus 200 according to an embodiment of the present invention. Some or all of the functionality of the components of the apparatus 200 may alternatively be implemented by a processor of an application server in combination with e.g. a computer program product comprising a computer readable medium having stored thereon computer executable codes, which computer executable codes when executed on the processor causes the application server to perform, for example, the steps of the method 100 according to an embodiment of the present invention.
The present invention may also be embodied as one or more device or apparatus programs (e.g. computer programs and computer program products) for carrying out part(s) or all of the steps of the method 100 described herein. Such programs embodying the present invention may be stored on computer readable medium, or could, for example, be in the form of one or more signals. Such signals may be data signals downloadable from an Internet website, or provided on a carrier signal, or in any other forms.
As an alternative to the above system 300 according to the present invention, the present invention provides an alternative system 300′ for recommending courses according to an embodiment of the present invention, which is illustrated in
The difference between the above-described alternative system 300′ and the system 300 is that in the alternative system 300′, it is the third collector 410 comprised in the user client 400′ that collects user context related to the user client 400′, rather than the first collector 220 comprised in the apparatus 200 as exemplified hereinbefore. Similarly, the third collector 220 can adopt one or more of various appropriate collecting techniques known in the art, such as the approaches described above with respect to the first collector 220. Further, the third collector 220 may for example comprise a sensor for sensing weather information such as temperature, humidity, wind, etc of the use client 400′. It is appreciated by those skilled in the art that the optional embodiments described hereinbefore for the system 300 (for the apparatus 200) may also apply to this alternative system 300′.
Thus, the present invention provides a direct and efficient approach for recommending courses based on user context which has a strong impact on user experience. According to the present invention, user information such as user profiles, user behaviors, or past learning activities is not indispensable for the recommendation, and thus cold start problems happening when no user information is available can be solved. The user does not need to input query term(s) when requesting the recommendation, and the recommendation can be performed whenever and wherever the user requests courses. Further, more precise and suitable course recommendation can be achieved by employing the user context. In addition, course construction containing model sets which is more effective and suitable for course recommendation is provided.
It should be noted that the aforesaid embodiments are exemplary rather than limiting the present invention, substitute embodiments may be designed by those skilled in the art without departing from the scope of the claims enclosed. The word “include” does not exclude elements or steps which are present but not listed in the claims. The word “a” or “an” preceding the elements does not exclude the presence of a plurality of such elements. In the apparatus claims that list several components, several ones among these components can be specifically embodied in the same hardware item. The use of such words as first, second, third does not represent any order, which can be simply explained as names.
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/CN2011/000576 | 4/2/2011 | WO | 00 | 9/26/2013 |