Can someone recommend what a schema for running a “Paired Comparison” would look like?
Here is a hypothetical scenario:
There will be a list of ideas. Ideas:
*A
*B
*C
*D
*E
There will be a group of users.
Each user is to compare each of the 5 ideas against each other - choosing which idea of the 2 is better and give it a rating of 1 to 5. 1 being just a little better and 5 being a lot better.
Any help you can offer to get me started on this would be very helpful.
Thank you.
I’m going to take a shot in the dark. Let me know if I’m totally wrong.
Person -(HAS_IDEA)-> Idea
Vertex: Person
Attribute:
- ID (STRING)
- Name (STRING)
- attr3
Edge: HAS_IDEA
Attribute:
Vertex: Idea
Attribute:
- ID (STRING)
- title (STRING)
- body (STRING)
Now, if you want to get fancy you could do some NLP entity extraction and semantically link the ideas based on the content in the body and title.
@gpadvorac Thoughts?
Thanks Jon,
No person has any ideas. There will be a fixed list of the same ideas given to all users, say 5 for example. Then each idea is to be compared against the other 4 and apply a rating each time:
A to B: Choose A, rating 2
A to C: Choose C, rating 4
A to D: Choose A, rating 1
A to E: Choose E, rating 5
B to C: Choose B, rating 3
B to D: Choose B, rating 2
B to E: Choose E, rating 1
C to D: Choose C: rating 3
C to E: Choose E, rating 1
D to E: Choose E, rating 5
Does this change your thoughts on the schema?
Thank you.
Users have Ideas? Users rate ideas? Or is it Just Idea to Idea?
Idea -(HAS_RATING)-> Idea
A -(HAS_RATING) -> B
HAS_RATING:
- date_time: 2020-04-04 12:33:42
- rating: 2
Can you @gpadvorac share some of the data? That would make it easier for me to help you with the schema modeling.
I don’t have sample data other than what was provided above. I have done this in the past with a relational DB, and it wasn’t pretty or query friendly.
The sample data above shows a fixed list of 5 ideas which results in a total of 10 comparisons. Each of the 5 users will make their own set of paired comparison resulting in a total of 50 comparison for all 5 users. So I think your last suggesting is getting close.
A –(Chosen_Idea = A, Rating = 3) ->B
The goal ( I should had stated this at the beginning) will be go aggregate all 50 comparisons and show all 5 ideas and a value for thier final score/rating.
Looking at the sample data above “A” was chosen only 2 times with ratings 2,1. We would sum this and divide by the total number of ideas.
“A” gets a rating of 0.6
“E” gets a rating of 2.4
Does this help?
1 Like
You can easily do sum, averages, comparisons, whatever algorithmic action easily and rebalance the weights or ratings. Reminds me a bit of movies and user reviews.
Thank you Jon. Really appreciate it!
1 Like
@gpadvorac anytime, glad to have been of some help!