a framework for expressing and combining preferences

15
A Framework for Expressing and Combining Preferences By Rakesh Agrawal & Edward L. Wimmers Presented by William Lee For CS491cxz Spring 2004

Upload: cybele

Post on 04-Jan-2016

37 views

Category:

Documents


2 download

DESCRIPTION

A Framework for Expressing and Combining Preferences. By Rakesh Agrawal & Edward L. Wimmers Presented by William Lee For CS491cxz Spring 2004. Problem. Explosion of information (the web) Impossible to construct a “social preference function” without leaving out individual preferences. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: A Framework for Expressing and Combining Preferences

A Framework for Expressing and

Combining Preferences

By Rakesh Agrawal & Edward L. Wimmers

Presented by William Lee

For CS491cxz Spring 2004

Page 2: A Framework for Expressing and Combining Preferences

Problem

Explosion of information (the web) Impossible to construct a “social preference

function” without leaving out individual preferences

Page 3: A Framework for Expressing and Combining Preferences

Related Work

Recommendation systems E.g. Personalogic (no longer in business?)

Problem Solutions are too specific -- needs a more generic

preference framework

Page 4: A Framework for Expressing and Combining Preferences

The Preference Problem

Alice’s preference functionA0

Betty’s preference functionB0

Quality

Model #

Model #

Any color

Best Choice:

Model: 1Color: BlackQuality: Good

combiningpreferences

Page 5: A Framework for Expressing and Combining Preferences

Record Type

}:,...,:{ 11 kk tntnrt

Record type is set of (name : type) pair that is used to express the preference parameters.

Examples: dom(A0)={model: int, color: string union {*}}

dom(B0)={model: int, quality: int}

Page 6: A Framework for Expressing and Combining Preferences

ScoreBoard

}')!""'(|:'!...!'{)( 1 iiiik nnstarnwildistscorennrtScoreBoard

ScoreBoard(rt) is by itself a record type! Define the data type to store Scores New names of the record type = all combinations of the wild

types in the original rt separated with “!”. 2^j number of fields, j = number of wild types Use “star!” for the wild type

Examples ScoreBoard(dom(A0))={color!model: score, star!!model: score}

ScoreBoard(dom(B0))={model!quality: score}

Page 7: A Framework for Expressing and Combining Preferences

RecordOfrt(r,n’1! n’2!...n’k)

!'*

'.).'!...!',(Re 1 starnif

nnifnrnnnrcordOf

j

jjjjkrt

RecordOf() a particular record always results in a generalization of the record.

Example If r = {color = “red”, model = 134} RecordOfdom(A)(r,star!!model)={color = *,model = 134} (a more

general r based on the field of the ScoreBoard)

Page 8: A Framework for Expressing and Combining Preferences

Scores

Scores(p,r) applies the preference function p to the generalization of record r

Scores(p,r).n’1!...n’k=p(RecordOfrt(r, n’1!...n’k)) Example:

Scores(A0,r)={color!model = 0.3, star!!model = 0.5}

Where A0({color = r.color, model=r.model})=0.3 and A0({color=*, model=r.model})=0.5

Page 9: A Framework for Expressing and Combining Preferences

Putting Everything Togetherr = record:{color: whitemodel: 1342quality: 3}

rt = record type:{color: white or *model: int}

RecordOfrt(r,star!!model):color: *model: 1342

Field name: star!!model

ScoreBoard(rt):{color!model: score,star!!model: score

Scores(A0,r):{color!model: veto,star!!model: 0.3}

A0 (preference function that has type rt)

Scores(B0,r):{color!quality: 0.5,star!!quality: 0.4}

(combine(f))(a: Scores(A0,r),b: Scores(B0,r), r)= final score

Page 10: A Framework for Expressing and Combining Preferences

Example Value Function (f)

Alice has the veto power to veto a color/model combination or on a particular model. If she thinks that it’s OK, then let Betty’s “quality” decide.FirstVeto(a: ScoreBoard(dom(A0)), b:

ScoreBoard(dom(B0)), c: merge(dom(A0), dom(B0))) returns score

{ if a.color!model = veto then return veto else if a.star!!model = veto then return veto else return b.model!quality}

Page 11: A Framework for Expressing and Combining Preferences

Implementation using RDBMS

Preference functions (p, or A0 or B0) are implemented in a table

Color Model Score

Red 123 0.4

* 123 Veto

Green 234 Veto

White 456 0.8

White 234 0.6

Model Quality Score

123 3 0.7

123 4 0.9

234 4 0.5

345 3 0.3

345 4 0.5

Alice’s preference function

Betty’s preference function

Page 12: A Framework for Expressing and Combining Preferences

Generating the Scores To generate the “Scores” for Alice:

color!model: = SELECT Score FROM Alice WHERE Color = r.color AND Model =

r.model Return score, or NO_PREF if query returns nothing star!!model =

SELECT Score FROM Alice WHERE Color = * AND Model = r.model Similarly for Betty, model!quality = SELECT Score FROM Betty

WHERE Model = r.model AND Quality = r.quality

Page 13: A Framework for Expressing and Combining Preferences

Combining the Scores

Get the Scores for Alice Get the Scores for Betty Returns the value obtained

by FirstVeto(a,b,r) The FirstVeto function can

be realized by a table with 4 columns (Color, Model, Quality, and Score) that covers the domain of the records that we pass to it.

Color Model Quality Score

Red 123 1 VETO

Green 123 1 VETO

Purple 123 1 VETO

* 123 1 VETO

… … … …

Page 14: A Framework for Expressing and Combining Preferences

Questions for Discussion

What about the running time? 1000 fridges = 1000 * (2^j) SELECTs for each

user where j is the number of fields that have type *.

Would this be a problem? Does this system works on web search?

(Think Alice == Google and Betty == you) How can the system learn the user’s

preference function?

Page 15: A Framework for Expressing and Combining Preferences

Thanks!