正在加载图片...
Dinw Euclidean(comments, Coursed, Rating Course Comments Figure 5: Recommendation workflow GPA. So, continuing the previous example from the Note how we can parameterize the workflow and let the selec- have been found we also want students that have si with tion conditions being determined at run time so that the workflow Alice. As a measure of student similarity, we can inverse compares any student to any group of students distance of their GPAs(inv Distance), as follows: Example 7(Recommending a major): We can easily devise Alice Student asulD-1234(Students) a new workflow that recommends a major to Alice based on her RStds2 : Other Students Pinv_Distance[GPA) Alice Student course history and so far performance(in fact, we are currently in- we can compute an overall score for students taking into tegrating recommendations for majors into our system. )We first how similar they are to both Joanne and Alice using the need to find students that have already selected a major and com- ng method Wavg_Blend(SulD, Score, L, 1, RStds, RStds2 pare their course selections and performance to Alices. We will QStds: RStds Bwavg_ Blend RStds2 Finally, course recommendations can be obtained in the sam MajStudents : T(SuD)( or"(StudentStudies Dd Study Programs)) way as when computing Coll_Courses before, with the only difference Ext_ MajStudents: MajStudents E T(SuD, CouseD, Grade)(StudentHistory) lat bscores will play the role of weig of the AliceStudent =aSulD-1234(Students)E T(SuD, CourslD, Grade)(StudentHistory) weighted average of student ratings Then, we will rate majors following a voting scheme. We will sum up the scores of the students that have followed each major. Consequently, this example query involves a total of three rec- RecMajors : Study Programs IDentify Study Prg/D, Study PrgID, Scovel, sum RStds ommend operators plus a blend operator. Finally, let us see recommendations from a different domain Example 5( Blending recommendations ) Assume we want to blend course recommendations based on Alice's course history Erample8(Item-to-item movie recommendations ):Alice decided to visit her favorite online movie site. Flex MDB. and down- (RecCourses)with those from similar students( Coll_Courses)giving load a movie. The movie site keeps the following database more weight to the latter in order to increase diversity in the final recommendations. We could, for example, use a blending method Wavg_Blend( CourselD, Score, 0.7, 1, Rec Courses, ColL_Courses Say FlexMDB has adopted FlexRecs and offers various customiz- Mixed Courses: RecCourses Bwavg_Blend Coll_Courses able recommendations. Among them, it offers recommendations dopting the Amazon item-to-item collaborative filtering approach Using our framework, one can define workflows that go beyond described in (17). At a high-level, item-to-item collaborative filter course recommendations, as the upcoming examples show. ing consists of two distinct components: the first component builds Example 6( Classification ) Honors students achieve high grades a model that captures the relations between the different items, and their course work and are often rewarded for their achievements the second component applies this pre-computed model to derive The university wants to keep track of any student with an excep- the recommendations for an active user[23]. The offline part builds tional performance. We would like to notify the program adminis- a similar-items table by finding items that customers tend to pur- trators of students that may qualify as honor students. To see if Al hase together, as follows: ice qualifies, we compare her to the honors students(having statu MoviePairs T(Mid, Mid2)(Saw bovid P(Saw(Vid, Mid2, Rating2)(Saw)) H in our data) based on the courses taken and grades earned. We could use again the inverse Euclidean(inv Euclidean) to com- Ext_Movie2 Movie Pairs E P(Saw(Vid, Mid2, Rating)](Saw) pute student-to-student similarity and take Alice's average similar MoviePairs keeps the pairs of movies seen togethe ity to all honors students as a score for her. Hence we will use the relation Ext_Moviel(Mid, Saw(Vid, Rating), Mid2) keeps all the ratings iven by viewers for the first movie of a pair and Ext_Movie keeps ,"H"(Students)E(SulD, CourseD, Grade)( StudentHistory) the ratings for the second movie of a pair. To compute similar lice Student : aSulD-1234(Students)E T(SulD, CourselD, Grade)(StudentHistory) mpare Ext_Moviel to Ext_Movie2 using the operator Dinv_ Euclidean(Saw, Vid, Rating). ( Mid, Mid2), which onlys Year=2008 Courses jaccard[Description],min Students e p {StudID, CourseID, Rating} Comments sStudID <> 444 s StudID = 444 Courses inv_Euclidean[Comments, CourseID, Rating] Identify[CourseID, Comments, Rating], W_Avg[Score] ßWavg_Blend Example 5 Example 2 Example 3 Courses StudentHistory s StudID=1234 Figure 5: Recommendation workflows GPA. So, continuing the previous example from the point that RStds have been found, we also want students that have similar GPA with Alice. As a measure of student similarity, we can take the inverse distance of their GPAs (inv_Distance), as follows: AliceStudent := σSuID=1234(Students) RStds2 := OtherStudents .inv_Distance[GPA] AliceStudent Then, we can compute an overall score for students taking into account how similar they are to both Joanne and Alice using the blending method Wavg_Blend[SuID, Score, 1, 1, RStds, RStds2]: QStds := RStds βWavg_Blend RStds2 Finally, course recommendations can be obtained in the same way as when computing Coll_Courses before, with the only difference that bscores will play the role of weights in the computation of the weighted average of student ratings: StricterRecs := Courses.Identify[CourseID,Comments,Rating],W_Avg[Bscore]QStds Consequently, this example query involves a total of three rec￾ommend operators plus a blend operator. Example 5 (Blending recommendations): Assume we want to blend course recommendations based on Alice’s course history (RecCourses) with those from similar students (Coll_Courses) giving more weight to the latter in order to increase diversity in the final recommendations. We could, for example, use a blending method Wavg_Blend[CourseID, Score, 0.7, 1, RecCourses, Coll_Courses]: MixedCourses := RecCourses βWavg_Blend Coll_Courses Using our framework, one can define workflows that go beyond course recommendations, as the upcoming examples show. Example 6 (Classification): Honors students achieve high grades in their course work and are often rewarded for their achievements. The university wants to keep track of any student with an excep￾tional performance. We would like to notify the program adminis￾trators of students that may qualify as honor students. To see if Al￾ice qualifies, we compare her to the honors students (having status ’H’ in our data) based on the courses taken and grades earned. We could use again the inverse Euclidean (inv_Euclidean) to com￾pute student-to-student similarity and take Alice’s average similar￾ity to all honors students as a score for her. Hence, we will use the recommend operator .inv_Euclidean[StudentHistory,CourseID,Grade],Avg: HStudents := σstatus=“H”(Students) ε π{SuID,CourseID,Grade}(StudentHistory) AliceStudent := σSuID=1234(Students) ε π{SuID,CourseID,Grade}(StudentHistory) IsHStudent := AliceStudent . HStudents Note how we can parameterize the workflow and let the selec￾tion conditions being determined at run time so that the workflow compares any student to any group of students. Example 7 (Recommending a major ): We can easily devise a new workflow that recommends a major to Alice based on her course history and so far performance (in fact, we are currently in￾tegrating recommendations for majors into our system.) We first need to find students that have already selected a major and com￾pare their course selections and performance to Alice’s. We will use .inv_Euclidean[StudentHistory,CourseID,Grade] . MajStudents := π{SuID}(σClassification=“major”(StudentStudies ./ StudyPrograms)) Ext_MajStudents := MajStudents ε π{SuID,CourseID,Grade}(StudentHistory) AliceStudent := σSuID=1234(Students) ε π{SuID,CourseID,Grade}(StudentHistory) RStds := Ext_MajStudents . AliceStudent Then, we will rate majors following a voting scheme. We will sum up the scores of the students that have followed each major. RecMajors := StudyPrograms .Identify[StudyPrgID,StudyPrgID,Score],sum RStds Finally, let us see recommendations from a different domain. Example 8 (Item-to-item movie recommendations): Alice decided to visit her favorite online movie site, FlexMDB, and down￾load a movie. The movie site keeps the following database: Movies(Mid, Title, Year), Viewer(Vid, Name, Age), Saw(Vid, Mid, Rating) Say FlexMDB has adopted FlexRecs and offers various customiz￾able recommendations. Among them, it offers recommendations adopting the Amazon item-to-item collaborative filtering approach described in [17]. At a high-level, item-to-item collaborative filter￾ing consists of two distinct components: the first component builds a model that captures the relations between the different items, and the second component applies this pre-computed model to derive the recommendations for an active user [23]. The offline part builds a similar-items table by finding items that customers tend to pur￾chase together, as follows: MoviePairs := π{Mid,Mid2}(Saw ./Vid ρ[Saw(Vid, Mid2, Rating2)](Saw) ) Ext_Movie1 := MoviePairs ε Saw Ext_Movie2 := MoviePairs ε ρ[Saw(Vid, Mid2, Rating)](Saw) MoviePairs keeps the pairs of movies seen together. The extended relation Ext_Movie1(Mid, Saw(Vid, Rating), Mid2)) keeps all the ratings given by viewers for the first movie of a pair and Ext_Movie2 keeps the ratings for the second movie of a pair. To compute similar movies, we compare Ext_Movie1 to Ext_Movie2 using the operator .inv_Euclidean[Saw,Vid,Rating],{Mid,Mid2}, which ensures that only paired
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有