正在加载图片...
as the weighted average of the tuple values in the attribute B that will help her improve her knowledge on these topics. There- 1*[B]+;*[B fore, she asks for suggestions on courses based on her course his- Wavg_Blend(A, B, wi, wj, Ri, Ril(t) tory. Course similarity will be determined based on the course de- scriptions. Each candidate course obtains the minimum Jaccard using Wavg_Blend(CourselD, Score, 0.7, 1, Friend Courses, similarity score when compared to the list of Alice's courses,i.e ve can take into account that the Advanced Program- we will use the recommend operator D Jaccard(DescriptionI ming course is recommended both based on the requirements and by friends and give it a high score 90.7+1. 00=10, as Figure Candidate Courses Year-200s( Cour 4(d) illustrates As in the case of comparison functions, blending methods will be part of an external library of possible blending methods, so that Example 2 is a workflow for content-based recommendations the application designer does not have to code them Example 3( Nearest-neighbor collaborative filtering ) Alice best friend is Joanne(with id 444)and Alice is curious to see what 3.6 Recommendation Workflows courses would be recommended to her friend by her colleagues The recommend and blend operators capture the essence of most tem allows friends to see each other's recommendations). We could commendation approaches and they can be composed and com bined with the more traditional select, project, join operators to use the inverse Euclidean (inv Euclidean) function, so that stu- describe recommendations dents with more similar ratings will have higher weight. These students could be found using inv_Euclidean(Comments, CourseID, Ratingl DEFINITION 7. A recommendation workflow(query) is a di- Ext_- Students: Students E T(Sull rected acyclic graph of interconnected operators that describes how This Student:= sulD=444(Ext_Students) recommendations are generated. Other_Students: oSulD<>444(Ext_ Students) Below, we present several examples of workflows that illumi- nate the new recommendation capabilities and the expressivity of could the the framework. These workflows describe recommendations that the ratings provided by these students. The recommend operator are hypothetically requested by a student, Alice. We will show ho applied uses the Identify comparison function to extract the user mmon recommendation strategies(found in literature)can be ex- ratings given to each course and aggregates them into one recom- essed as parameterized workflows with our operators, as well as mendation score per course using the W_Avg Score] aggregation illustrate some of the new recommendation possibilities. comparison function, where the scores of the students computed by Clearly, we do not expect that Alice or any user will describe de- the previous recommend operator are used to weigh their ratings sired recommendations at this level rather users will use appropri- ate user interfaces. For the sake of presentation, in each example This workfow captures nearest-neighbor collaborative filtering we first explain the kind of comparison expected and how this is We could use other functions in place of the inverse Euclidean, captured in the recommend operator, and then, in the workflows, such as the Pearson and also replace the W_Avg with e.g,the we use only the symbol of the recommend operator without any eighted average of rating deviations from the neighbors mean parameters since they will be understood in the context of each rating. Then, our workflow would represent the GroupLens collab- example. Also, we do not show some common sense operations, orative filtering approach [22 Note that it is easy to parameterize such as excluding from the set of recommended courses all courses our workflow(unlike other approaches), and hence it is possible to already taken by Alice, or selecting the courses with the highest generate recommendation for a person(Alice) assuming that they recommendation scores are intended for a different student(e. g Joanne) ample 1(Related courses ) Alice is browsing the page of a At this point, we observe that the recommend operator treats stu- course in the system with title"Programming: Part One"(and id dent ratings as a(virtual)attribute of students(namely, Comments ) C22). We would like to show other related courses that are also in the same way that it would do with base attributes, such as the offered in 2008. Assume that the comparison function used for description of courses in the previous example. However, in our string values is Jaccard. Then, similar courses could be found relational database, student ratings are stored separately from the using the recommend operator D Jaccard[Title as follows: rest of information regarding students, so we would have to list as This Course: = a inputs of the recommend operator multiple relations. The recom- mend operator would also have to know how to join these multiple Related Courses : Candidate Courses b This Course inputs and group ratings that refer to the same student making it elatedCourses contains courses with a score attribute that report cumbersome to define the operator. In order to enable our recom- the strength of the recommendation based on how similar a course mend operator to operate on attributes of entities transparently, i.e is to the one currently browsed by Alice. For example, it could con- irrespective of whether these are base attributes, such the GPA, or extended""attributes. such as a set of ratings we need the extend g: Part Two with score 0.5, and a course named"Advanced Programming method perator. In our example workflow, students are extended with an 0.2. This example demonstrates the use of attribute Comments that groups their course ratings, so that the set of ratings for each student can be "viewed as another attribute of the single recommend operator for comparing a set of tuples to a sin gle tuple. The next example shows how the recommend operator tudent in the workflow can be used for comparing a set of tuples to another set of tuples. We can also easily define novel types of recommendations. Examples with multiple recommend and blend operators follow the following examples illustrate Example 2(Content-based recommendations ) Alice(with Example 4(Many recommend and blend operators: Alice id 1234)has taken some courses on related topics(e. g, on litera- wants recommendations from students that are similar to her friend ture, writing, etc)and she is interested in courses offered this year as before but she also wants them to be as good as she is basedas the weighted average of the tuple values in the attribute B. Wavg_Blend[A, B, wi, wj , Ri, Rj ](t) = wi ∗ t[B] + wj ∗ t[B] wi + wj For example, using Wavg_Blend[CourseID, Score, 0.7, 1, FriendCourses, ReqCourses], we can take into account that the Advanced Program￾ming course is recommended both based on the requirements and by friends and give it a high score 0.7∗10+1.0∗10 0.7+1.0 = 10, as Figure 4(d) illustrates. As in the case of comparison functions, blending methods will be part of an external library of possible blending methods, so that the application designer does not have to code them. 3.6 Recommendation Workflows The recommend and blend operators capture the essence of most recommendation approaches and they can be composed and com￾bined with the more traditional select, project, join operators to describe recommendations. DEFINITION 7. A recommendation workflow (query) is a di￾rected acyclic graph of interconnected operators that describes how recommendations are generated. Below, we present several examples of workflows that illumi￾nate the new recommendation capabilities and the expressivity of the framework. These workflows describe recommendations that are hypothetically requested by a student, Alice. We will show how common recommendation strategies (found in literature) can be ex￾pressed as parameterized workflows with our operators, as well as illustrate some of the new recommendation possibilities. Clearly, we do not expect that Alice or any user will describe de￾sired recommendations at this level rather users will use appropri￾ate user interfaces. For the sake of presentation, in each example, we first explain the kind of comparison expected and how this is captured in the recommend operator, and then, in the workflows, we use only the symbol of the recommend operator without any parameters since they will be understood in the context of each example. Also, we do not show some common sense operations, such as excluding from the set of recommended courses all courses already taken by Alice, or selecting the courses with the highest recommendation scores. Example 1 (Related courses): Alice is browsing the page of a course in the system with title “Programming: Part One” (and id C22). We would like to show other related courses that are also offered in 2008. Assume that the comparison function used for string values is Jaccard. Then, similar courses could be found using the recommend operator .Jaccard[Title] as follows: ThisCourse := σCourseID=C22(Courses) CandidateCourses := σYear=2008(Courses) RelatedCourses := CandidateCourses . ThisCourse RelatedCourses contains courses with a score attribute that reports the strength of the recommendation based on how similar a course is to the one currently browsed by Alice. For example, it could con￾tain a course named “Programming: Part Two” with a (Jaccard) score 0.5, and a course named “Advanced Programming Method￾ology” with a score 0.2. This example demonstrates the use of a single recommend operator for comparing a set of tuples to a sin￾gle tuple. The next example shows how the recommend operator can be used for comparing a set of tuples to another set of tuples. Examples with multiple recommend and blend operators follow. Example 2 (Content-based recommendations): Alice (with id 1234) has taken some courses on related topics (e.g., on litera￾ture, writing, etc) and she is interested in courses offered this year that will help her improve her knowledge on these topics. There￾fore, she asks for suggestions on courses based on her course his￾tory. Course similarity will be determined based on the course de￾scriptions. Each candidate course obtains the minimum Jaccard similarity score when compared to the list of Alice’s courses, i.e., we will use the recommend operator .Jaccard[Description],min: AliceCourses := σSuID=1234(StudentHistory) ./ Courses CandidateCourses := σYear=2008(Courses) RecCourses := CandidateCourses . AliceCourses Example 2 is a workflow for content-based recommendations. Example 3 (Nearest-neighbor collaborative filtering): Alice’s best friend is Joanne (with id 444) and Alice is curious to see what courses would be recommended to her friend by her colleagues with similar tastes, i.e., with similar ratings as Joanne (say the sys￾tem allows friends to see each other’s recommendations). We could use the inverse Euclidean (inv_Euclidean) function, so that stu￾dents with more similar ratings will have higher weight. These students could be found using .inv_Euclidean[Comments,CourseID,Rating] : Ext_Students := Students ε π{SuID,CourseID,Rating}(Comments) ThisStudent := σSuID=444(Ext_Students) Other_Students := σSuID<>444(Ext_Students) RStds := Other_Students . ThisStudent Then, courses could be rated by taking the weighted average of the ratings provided by these students. The recommend operator applied uses the Identify comparison function to extract the user ratings given to each course and aggregates them into one recom￾mendation score per course using the W_Avg[Score] aggregation comparison function, where the scores of the students computed by the previous recommend operator are used to weigh their ratings. Coll_Courses := Courses.Identify[CourseID,Comments,Rating],W_Avg[Score]RStds This workflow captures nearest-neighbor collaborative filtering. We could use other functions in place of the inverse Euclidean, such as the Pearson, and also replace the W_Avg with e.g., the weighted average of rating deviations from the neighbor’s mean rating. Then, our workflow would represent the GroupLens collab￾orative filtering approach [22]. Note that it is easy to parameterize our workflow (unlike other approaches), and hence it is possible to generate recommendation for a person (Alice) assuming that they are intended for a different student (e.g., Joanne). At this point, we observe that the recommend operator treats stu￾dent ratings as a (virtual) attribute of students (namely, Comments), in the same way that it would do with base attributes, such as the description of courses in the previous example. However, in our relational database, student ratings are stored separately from the rest of information regarding students, so we would have to list as inputs of the recommend operator multiple relations. The recom￾mend operator would also have to know how to join these multiple inputs and group ratings that refer to the same student making it cumbersome to define the operator. In order to enable our recom￾mend operator to operate on attributes of entities transparently, i.e., irrespective of whether these are base attributes, such the GPA, or “extended” attributes, such as a set of ratings, we need the extend operator. In our example workflow, students are extended with an attribute Comments that groups their course ratings, so that the set of ratings for each student can be “viewed” as another attribute of the student in the workflow. We can also easily define novel types of recommendations, as the following examples illustrate. Example 4 (Many recommend and blend operators): Alice wants recommendations from students that are similar to her friend as before but she also wants them to be as good as she is based on
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有