TUYỂN TẬP 50 ĐỀ LUYỆN THI TUYỂN SINH LỚP 10 THPT MÔN TOÁN NĂM 2024 CÓ LỜI GIẢ...
Thuật toán Slope One (final)
1.
2. Nội Dung
1. Giới thiệu về Recommendation
2. Giới thiệu về Collaborative Filtering
3. Giới thiệu về Item – Base Filtering
4. Giới thiệu về Slope One
5. Giải thuật Slope One
6. Ví dụ về Slope One
7. Demo chương trình Mahout theo giải thuật
Slope One
4/19/2012 trungnb3535@gmail.com 2
3. 1. Recommendation
Recommendation là việc dự đoán khuynh
hướng sở thích của con người, được sử dụng
để tìm ra những cái mới, những cái mà
người ta muốn
Recommendation có hai kiểu:
Collaborative Filtering
Content-based Filtering
4/19/2012 trungnb3535@gmail.com 3
4. 2. Collaborative Filtering
Recommender
Là phương thức đưa ra dự đoán dựa trên sở
thích, hành vi của nhiều User và của User
này trong quá khứ.
Chúng ta không cần quan tâm đến bản chất
của Item, các thuộc tính của Item. Nhưng
cần một lượng dữ liệu lớn ban đầu để có thể
dự đoán.
Có 2 nhóm giải thuật:
User – based recommendation
Item – based recommendation
4/19/2012 trungnb3535@gmail.com 4
5. 3. Item – based recommendation
Giải thuật này dự đoán dựa trên sự tương
đồng giữa các Item
Ví dụ :
Amazon.com mua 1 quyển sách sẽ giới thiệu
một quyển sách tương tự (cùng chủ đề)
Mua một album của BackstreetBoys thì có thể
mua một album khác của BackstreetBoys.
Quan hệ giữa ratings của các cặp item được
thể hiện qua hàm : y = ax + b
4/19/2012 trungnb3535@gmail.com 5
6. 4. Slope One
Slope One là một trường hợp đặc biệt của
Item – based recommendation khi hệ số góc
a = 1 (slope one).
Mối liên hệ giữa 2 item được thể hiện qua
hàm y = x + b, b là độ chênh lệnh trung
bình giá trị ratings của 2 item.
4/19/2012 trungnb3535@gmail.com 6
7. 5. Giải thuật Slope One
1. Tính độ chênh lệch trung bình giữa item đó
với các Item còn lại
2. Tính ra giá trị ratings theo các Item kia
3. Tính giá trị ratings trung bình mà User có
thể đánh giá Item
4/19/2012 trungnb3535@gmail.com 7
8. 6. Ví dụ
User A đánh giá item i là 1, item j là 1.5
User B đánh giá item i là 2
User B sẽ đánh giá item j là bao nhiêu (r)?
Giải
Ta có : b = 1.5 – 1 = 0.5 => r = 2 + 0.5 = 2.5
trungnb3535
4/19/2012 8 @gmail.com
10. Giá trị Ratings chênh lệch trung bình giữa Item 1 và Item 2 là:b =
(2 + (-1))/2 = 0.5 => Item 1 luôn được đánh giá cao hơn Item 2 một
khoảng 0.5
Tương tự, giá trị Ratings chênh lệch trung bình giữa Item 1 và Item
3 là : b = 3
Dựa vào giá trị giá trị b được tính ở trên, ta có thể đưa ra dự đoán
Ratings của 1 User cho 1 Item dựa theo hàm f(x) = x + b
Ví Dụ : dự đoán đánh giá của Lucy cho Item 1 dựa theo Item 2 thì
là f(2) = 2 + 0.5 = 2.5, dựa theo Item 3 là : f(5) = 5 + 3 = 8
Giá trị Ratings trung bình theo dự đoán mà Lucy đánh giá Item 1 :
Do đó, để thực hiện Slope One cho n Item thì cần phải tính toán và
lưu lại các chênh lệch trung bình và số lượng các Ratings chung
cho mỗi cặp trong số n2 cặp Item.
4/19/2012 trungnb3535@gmail.com 10
11. 7. Demo giải thuật Slope One
Dữ liệu đầu vào :
File dữ liệu có dạng : userId,itemId,ratings
Đầu ra : các Item gợi ý cho User 1.
4/19/2012 trungnb3535@gmail.com 11
13. Hình 1 : Quan hệ User - Item
4/19/2012 trungnb3535@gmail.com 13
14. User 1
User 2
User 3
User 4
User 5
Item 1 Item 2 Item 3 Item 4 Item 5 Item 6 Item 7
4/19/2012 trungnb3535@gmail.com 14
15. 7. Demo giải thuật Slope One
1. Tính độ chênh lệch trung bình giữa Item 1
và Item 2 :
1,101,5.0 | 2,101,2.0 | 5,101,4.0
1,102,3.0 | 2,102,2.5 | 5,102,3.0
b= -2.0 0.5 -1.0
Giá trị trung bình :
btb = (-2.0 + 0.5 – 1.0) 3 = - 0.833
Tương tự cho các cặp Item còn lại.
4/19/2012 trungnb3535@gmail.com 15
16. 7. Demo giải thuật Slope One
Từ đó ta có một ma trận Item – Item
4/19/2012 trungnb3535@gmail.com 16
17. 7. Demo giải thuật Slope One
2. Tính giá trị ratings cho Item 4.
y = x + btb
y14 = x1 + b14 = 5.0 + 0.25 = 5.25
y24 = x2 + b24 = 3.0 + 0.25 = 3.25
y34 = x3 + b34 = 2.5 + 0.167 = 2.667
y4 = (5.25 4 + 3.25 2 + 2.667 3) (4 + 2 + 3)
= 3.94
Tương tự : y5 = 4.75, y6 = 4.2
4/19/2012 trungnb3535@gmail.com 17
18. 7. Demo giải thuật Slope One
Ta có : y5 > y6 > y4
gợi ý cho User 1 :
Item 5
Item 6
Item 4
4/19/2012 trungnb3535@gmail.com 18
19. Tài Liệu Tham Khảo
1. Mahout In Action - Sean Owen, Robin Anil, Ted
Dunning, and Ellen Friedman, 2012
2. http://en.wikipedia.org/wiki/Collaborative_filtering
3. http://en.wikipedia.org/wiki/Recommender_system
4/19/2012 trungnb3535@gmail.com 19
Notes de l'éditeur
Ngày nay, chúngtacóthểnêura ý kiếncủamìnhvềnhữnggìmàchúngtathích, khôngthích, thậmchílàkhôngquantâmđến. Mặcdùsởthíchcủa con ngườilàrấtđadạng, nhưngnóvẫntheonhữngkiểugiốngnhau. VD nhưmốtthờitrang, game online.VDtrongthưviệnsách, bạnlấy 1 quyểnsáchtrêngiávìcóthểlànónằmliềnkềvớiquyểnsáchmàbạnđãbiết, cùngchủđềhoặccóthểlàbạnthấynótrongchồngsáchcủabạnbèvàcũngmuốncómộtquyểntươngtựđểđọchoặclàhọgiớithiệuvớibạnvềquyểnsáchnày. Nócónhiềunguyênnhânkhácnhaunhưngtựuchunglạithìcóhaicáchđểtìmrathứbạncóthểthích :Tìmnhững item mànógiốngvới item ma ban thích (item-based recommender algorithms)Tìmnhữngngườicùngsởthíchxemhọthíchcáinào (user-based recommender algorithms)Recommendation cóhaikiểu:Collaborative Filtering : dựatrênmốiquanhệgiữa User và Item (thông qua các Items hay Users khác)Content-based Filtering : dựatrênnhữngthuộctínhcủa Item. VD: đưaracuốnsáchcùngnhàxuấtbảnhoặccùngtácgiả. Book(sốtrang, tácgiả, nxb, màu, font)- Do Content-based Filtering phảihiểurõvề Item rồixâydựngbộthuộctínhcho Item đó. Vàviệc recommend một Item nócũngkhácvới Item khácnêntốnnhiềucôngsứcđể recommend hơn.
Sựliênquangiữa User và Item (thông qua các User hoặccác Item khác)-Ở giảithuậtUser – base recommendation : Tìmkiếmnhững User cócùngsởthích, hoặccóquanhệvới User nàySửdụngnhững ratings từnhững User đểdựđoán rating mà User nàysẽđánhgiá Item.Vídụ : User tuổi teen thíchnhững album nhạctrẻkiểunhư 1 album củaĐanTrườngchẳnghạn.Ngườibạnthâncủa User thíchĐanTrường, nêncóthể User nàycũngthíchĐanTrườngUser thíchĐanTrường, Lam Trường. CómộtngườicũngthíchĐanTrường, Lam TrườngvàthêmcảCẩm Ly. User cóthểcũngthíchCẩm Ly
- Item – based recommender thìnócũngtươngtự User – based recommender (môhìnhdữliệu, thựcthisựtươngđồng)