Expressing and Combining Flexible Recommendations in CourseRank [PDF]

Introduction. Social sites on the Web thrive. Open - user participation - simple interactions/tasks uploading, reviewing

3 downloads 4 Views 868KB Size

Recommend Stories


Finishing and Painting Recommendations PDF
Be grateful for whoever comes, because each has been sent as a guide from beyond. Rumi

expressing and common problems when expressing
The butterfly counts not months but moments, and has time enough. Rabindranath Tagore

Combining characters ( PDF )
The greatest of richness is the richness of the soul. Prophet Muhammad (Peace be upon him)

Expressing Numbers and Operations in English
Just as there is no loss of basic energy in the universe, so no thought or action is without its effects,

Cultural Expectations in Expressing Disagreement
Never let your sense of morals prevent you from doing what is right. Isaac Asimov

Combining Payroll and Benefits
The happiest people don't have the best of everything, they just make the best of everything. Anony

RECOMMENDATIONS FOR SECURITIES SETTLEMENT SYSTEMS AND RECOMMENDATIONS
We can't help everyone, but everyone can help someone. Ronald Reagan

combining work and family
Pretending to not be afraid is as good as actually not being afraid. David Letterman

Combining UCE and Indifferentiability
Learning never exhausts the mind. Leonardo da Vinci

PDF AMFI Flexible Cord Products
Courage doesn't always roar. Sometimes courage is the quiet voice at the end of the day saying, "I will

Idea Transcript


Expressing and Combining Flexible Recommendations in CourseRank Georgia Koutrika Stanford University

Introduction Social sites on the Web thrive

Open - user participation - simple interactions/tasks uploading, reviewing, poking, socializing, sharing …

CourseRank in Stanford: A Closed-Community, Special-Purpose Social Site

Key Highlights A A

Courserank’s special features

B B

Flexible recommendations

C C

Demo

CourseRank An educational and social site for Stanford students to: Evaluate courses Browse courses, instructors, books Plan their academic program Interact with each other Ask and answer questions

Special features 1

Well-defined closed community

2

Multiple constituencies

3

Special-purpose tools

4

Official and social data

CourseRank in numbers: ‰ 1.5 year ‰ 14,557 students ‰ 9,532 instructors ‰ 18,951 courses ‰ 102,152 ratings ‰ 3,172 text reviews

Challenges and Opportunities

In CourseRank, interacting with rich data is a great challenge!

Flexible Recommendations: Roadmap Recommendation Systems

FleXRecs Framework

Recommendation Engine

Experiments

Summary

Recommendation systems

Recommendation systems Basic Idea Two types of entities: Users x Items Utility of item i for user u is represented by some rating r Estimate unknown ratings based on the known ratings: R: Users × Items → Rating How? Content-based approaches: Find items similar to those u has liked in the past Collaborative filtering approaches: Find items similar people have liked Hybrid approaches

Recommendations in CourseRank Typical recommendations

courses similar to those the user has liked courses that students with similar ratings have liked

But, we have lots of rich data! Courses (CourseID, DepID, Title, Description, Units) Students (SuID, Name, Class, GPA) Comments (SuID, CourseID, Year, Term, Text, Rating, Date) StudentHistory (SuID, CourseID, Year, Term, Grade) And many more tables: Instructors, StudentStudies, Departments, StudentPlans, Books, …

Recommendations in CourseRank More recommendations

courses based on my grades

Current Requirements Limitations

Higher expressivity Limited expressivity Customizability Fixed recommendations

the best quarter to take an artificial intelligence course a major based on my grades dance courses that CS students with similar tastes take math courses that second-year students with similar grades and tastes take …

Flexibility methods Hard-wired

Roadmap Recommendation Systems

FleXRecs Framework

Recommendation Engine

Experiments

Summary

Expressing Flexible Recommendations Our approach

User Interface

Recommendation Specification Monolithic system Execution Recommendations Data Access

database

Expressing Flexible Recommendations Our approach Decouple the definition of a recommendation strategy from the execution

User Interface

Recommendation Specification

Declaratively express a recommendation approach as a high-level workflow R c3

Execution Recommendations

T

I c4

φ

φ

ρ

φ

φ

ρ

I’

Data Access c1

database

A

f

c2

B

g

Execute any recommendation workflow using the same engine

Recommendations as Queries A recommendation approach is defined declaratively as a high-level workflow over relational data combines traditional relational operators and new operators recommend operator extend operator blend operator

Special Operators Recommend R

cf, a

S R

:= { (r, v) | r ∈ R ∧ v := a[cf](r, S) } A

B

C

D

R’

A

B

C

D score

cf, a

S

Comparison function

cf

tuple 1

Aggregation function

score P

score 1 ...

score

a P’

score n tuple 2

Special Operators Example 1:

Find similar courses (to-1 comparisons)

Courses A

R_Courses

CourseID

Title

CourseID

Title

Score

c2

Programming: Part 2

c2

Programming: Part 2

0.5

c3

Advanced Programming Techniques

c3

Advanced Programming Techniques

0.2

c4

Artificial Intelligence

c4

Artificial Intelligence

0

c5

Reasoning in Artificial Intelligence

c5

Reasoning in Artificial Intelligence

0

Jaccard[Title]

Courses B CourseID

Title

c1

Programming: Part 1

Jaccard(r, s)[A] = |r[A] ∩ s[A]| / |r[A] ∪ s[A]| e.g., Jaccard(c1, c2)[Title] = 2/4 = 0.5

Special Operators Example 2:

Find similar courses (to-many comparisons)

Courses A

R_Courses

CourseID

Title

CourseID

Title

Score

c2

Programming: Part 2

c2

Programming: Part 2

0.66

c3

Advanced Programming Techniques

c3

Advanced Programming Techniques

0.7

c4

Artificial Intelligence

c4

Artificial Intelligence

0

c5

Reasoning in Artificial Intelligence

c5

Reasoning in Artificial Intelligence

0

Jaccard[Title], sum

Courses B CourseID

Title

c1

Programming: Part 1

c6

Advanced Java Programming

Special Operators Moving towards more complex comparisons Students

Comments

SuID

Name

Class

GPA

SuID CourseID Year

Rating

1

John

2010

10

1

c1

2007

10

2

Mary

2010

7

1

c2

2007

7

3

Alan

2010

9

1

c3

2008

9

4

Kim

2010

7.5

4

c1

2007

9

4

c2

2007

8

4

c6

2006

8

3

c2

2008

5

2

c2

2008

7

2

c6

2006

9

Special Operators Moving towards more complex comparisons Students Students SuID Name Class GPA SuID Name Class GPA 1 2

1

3 4

John 2010 10 John 2010 10 Mary 2010 7 Alan

2

2010

9

Kim 2010 7.5 Mary 2010 7

3

Alan

2010

9

4

Kim

2010

7.5

Comments Comments(CourseID, Year, Rating) SuID CourseID Year Rating c1 2007 10 1 c1 2007 10 c2 2007 7 1 c2 2007 7 c3 2008 9 1 c3 2008 9 2008 2007 7 4c2 c1 9 4c6

2006 2007 9 c2

8

4 c2 3 c1 2 c2 2 c6

c6 2008 c2 2007 c2 2007 c6 2006

8

2006 5 2008 9 2008 8 2006 8

5 7 9

Special Operators

Students SuID Name Class GPA Comments(CourseID, Year, Rating) 2

Mary 2010

7

3

Alan 2010

9

4

Kim

2010 7.5

c2

2008

7

c6

2006

9

c2

2008

5

c1

2007

9

c2

2007

8

c6

2006

8

Euclidean[Comments]

SuID Name Class GPA Comments(CourseID, Year, Rating)

1

John 2010 10

c1

2007

10

c2

2007

7

c3

2008

9

Special Operators Extend R ε S := { (r, v) | r ∈ R ∧ v := π (r

A

B

C

D

S)}

A

B

C

ε R

R’ A

E

F

S

G

D

S(E, F, G) … … … …

Special Operators Blend R βM S

:= { (r, v) | r ∈ R∪S ∧ v := M[R,S](r)}

A

D

B

C

A

B

C

βM RS

R A

B

C

S

D

D bscore

Special Operators Example: Similar_Courses

Blended_Courses

CourseID

Title

Score

CourseID

Title

bscore

c2

Programming: Part 2

10

c2

Programming: Part 2

10

c5

AI Techniques

7

c5

AI Techniques

7

c10

Graphics

9

c10

Graphics

8

c22

Compilers

8

β

avg[score]

Required_Courses CourseID

Title

Score

c2

Programming: Part 2

10

c10

Graphics

7

c22

Compilers

8

Recommendation queries Recommendation query := new operators + traditional relational operators

Content-based recommendations

Collaborative filtering recommendations

Recommendation queries Recommendation query := new operators + traditional relational operators

Content-based recommendations

Collaborative filtering recommendations

Recommendation queries Recommendation query := new operators + traditional relational operators β Wavg_Blend

Identify[CourseID, Comments, Rating], W_Avg[Score]

inv_Euclidean[Comments, CourseID, Rating]

Courses

jaccard[Description],min

σStudID 444

σStudID = 444

ε σYear=2008

σStudID=1234

Courses

StudentHistory

π{StudID, CourseID, Rating}

Courses

Content-based recommendations

Students

Comments

Collaborative filtering recommendations

Recommendation queries

β

Recommendation queries Parameterized queries allow on-the-fly personalization

X Y

Z

Roadmap Recommendation Systems

FleXRecs Framework

Recommendation Engine

Experiments

Summary

Recommendation Engine users invoke

Query Manager define designer

Query Parser

Plan Generator

Recommendation Generator

Functions

DB Engine

Recommendation Engine users invoke

Query Manager

Query Parser

define

Plan Generator

Recommendation Generator

Functions

DB Engine

designer

X Y

Z

Recommendation Engine users invoke

Query Manager

Query Parser

define designer

Plan Generator

Recommendation Generator

Functions

DB Engine

CREATE TEMPORARY TABLE temp SELECT t1.SuID, 1/SQRT(SUM((t1.Rating − t2.Rating) ∗ (t1.Rating − t2.Rating))) as score FROM

Comments t1, Comments t2

WHERE t1.CourseID = t2.CourseID AND t2.SuID = 444 AND t1.SuID 444 GROUP BY t1.SuID CREATE TEMPORARY TABLE temp2 SELECT t1.*, score FROM Comments t1, temp WHERE t1.SuID = temp.SuID; SELECT Courses.*, SUM(score*rating)/SUM(score) AS CScore FROM temp2, Courses WHERE temp2.CourseID=Courses.CourseID GROUP BY CourseID ORDER BY CScore

Recommendation Engine Plan Generator 1 2

“Chop” the tree Each subtree maps to a query block Block B

Block A

Recommendation Engine SuID, score

Plan Generator Block A CREATE TEMPORARY TABLE temp

SELECT t1.SuID, 1/SQRT(SUM((t1.Rating − t2.Rating) ∗ (t1.Rating − t2.Rating))) as score FROM

2

Comments t1, Comments t2

WHERE t1.CourseID = t2.CourseID AND t2.SuID = 444 AND t1.SuID 444 GROUP BY t1.SuID

1

3

Block A

Recommendation Engine Plan Generator Block B

Block B

CREATE TEMPORARY TABLE temp2 SELECT t1.*, score FROM Comments t1, temp WHERE t1.SuID = temp.SuID;

SELECT Courses.*, SUM(score*rating)/SUM(score) AS CScore FROM temp2, Courses WHERE temp2.CourseID=Courses.CourseID GROUP BY CourseID ORDER BY CScore

Roadmap Recommendation Systems

FleXRecs Framework

Recommendation Engine

Experiments

Summary

Recommendations in use The engine supports multiple recommendations in CourseRank Collaborative filtering

Majors recommendations

Related courses

Recommendations in use

Collaborative filtering

Related courses

Roadmap Recommendation Systems

FleXRecs Framework

Recommendation Engine

Experiments

Summary

In summary … Recommendation processes as queries over relational data Operators for expressing and composing recommendations Recommendations leverage the database query optimizer System prototype in production use Novel recommendation paradigms

Research challenges Optimization of multiple recommendations Different implementations of operators

Flexible recommendation query language

Flexible recommendation user interface

Back to CourseRank …

DEMO

Smile Life

When life gives you a hundred reasons to cry, show life that you have a thousand reasons to smile

Get in touch

© Copyright 2015 - 2024 PDFFOX.COM - All rights reserved.