Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Location recommender system
1. Sinh viên: Bùi nguyễn tất thành
20102149 - IS1 – Việt nhật – K55
Giáo viên hướng dẫn: TS. Vũ tuyết Trình
Gợi ý địa điểm dựa trên
phân tích thói quen tương tác
của người dùng
2. Người dùng – Địa điểm
– Tương tác
Cinema 2 Museum 1
Coffee 3
Check-in
Cinema 2 -- 8:30
Coffee 3 -- 10:15
Museum 1 -- 11:00
Shopping 1 -- 11:45
Locations
User-LocationGraph
Users
Trajectories
• View
• Want to go
• Like
• Check-in
• Comment
3. Mục tiêu bài toán
Gợi ý địa điểm cho người dùng:
Cá nhân hóa gợi ý dựa trên
o Đặc điểm của người dùng
o Hành vi người dùng
o Sở thích và thói quen của người dùng
oVị trí của người dùng
o “Chất lương/độ tin cậy” của địa điểm
Cinema 2 Museum 1
Coffee 3
4. Nội dung trình bày
Đặt vấn đề
Mục đích
• Cách tiếp cận
• Xây dựng hệ thống
• Thực nghiệm
• Kết luận
5. Mô hình hóa đối tượng
Người dùng
Sex
Birthday
Relation
Job
Address
District
Province
Tương tác Mức quan tâm
Xem
(view)
1
Muốn đến
(wanttogo)
2
Thích
(like)
3
Đã đến
(check in)
4
Nhận xét
(comment)
5
Địa điểm
address
district
province
categories
openingTime
closingTime
minPrice
maxPrice
latitude
longitude
totalView
totalWantToGo
totalLike
totalCheckIn
totalComment
6. Vector người dùng
Vector địa điểm
Attribute district province age sex relation
Weight 0.25 0.225 0.2 0.175 0.15
Dimension district province lowerPrice upperPrice openingTime closingTime
Weight 0.225 0.175 0.175 0.175 0.125 0.125
Dimension totalView totalWanttogo totalLike totalCheckin totalComment
Weight 0.07 0.13 0.2 0.27 0.33
Vector thuộc tính địa điểm – thể hiện các đặc điểm của địa điểm
Vector tương tác địa điểm – thể hiện chất lượng địa điểm
Biểu diễn đối tượng bằng vector
7. Phát biểu bài toán
Input:
• user – profile
• Interactions
• Locations - profile
Processes Output:
• Các địa điểm được
gợi ý cho người dùng
Interactions
8. Phát biểu bài toán
Input:
• user – profile
• Interactions
• Locations - profile
Processes Output:
• Các địa điểm được
gợi ý cho người dùng
Interactions
9. Nội dung trình bày
Đặt vấn đề
Mục đích
Cách tiếp cận
• Xây dựng hệ thống
• Thực nghiệm
• Kết luận
10. Mô hình gợi ý
Pha 1 – Tổng quát hóa Pha 2 – Cá nhân hóa
11. Xác định tập người dùng tương tự
Attribute
Actual
Value
Standardized
Value
SEX
nam 100
nữ 0
AGE
0 ~ 15 0
16 ~ 23 35
23 ~ 35 60
> 35 100
…. …. …
o DISTANCE
Khoảng cách hai vector đặc điểm
o Chuẩn hóa dữ liệu
Đưa các thuộc tính về cùng đơn vị và miền giá trị
o ACTIVITY
+ Mức độ hoạt động tương tác.
+ Tính dựa trên lượng tương tác của người dùng.
Input:
• Người dùng U ( profile )
• Tập người dùng trong hệ thống
Output:
• Us : Danh sách người
dùng xếp theo độ tương
tự với U giảm dần
VD: Ba người dùng u và ( u1, u2 )
=> xác định u1 hoặc u2 giống u
DISTANCE(u, u1) <~ DISTANCE(u, u2)
ACTIVITY(u1) << ACTIVITY(u2)
Return u2
Attribute district province age sex relation
Weight 0.25 0.225 0.2 0.175 0.15
Bảng chuẩn hóa thuộc tính
12. Pha 1 (Tổng quát hóa)
Sở thích (preference):
Một nhóm người dùng có đặc điểm
tương tự cùng thích một hoặc một số
địa điểm giống nhau
Thói quen (habit):
Xuất hiện các cặp địa điểm (A, B)
thường được một nhóm người dùng
tương tác liền nhau (hoặc gần nhau)
Input:
• Tập US
• Tập địa điểm, tương tác
lịch sử của Us
Output:
• L1: Tập địa điểm
gợi ý cho tập US
Địa điểm tương tác cuối
Địa điểm gợi ý
B
B
Similar
B
Amount
Order by Time
Hidden Markov Model
LP
LH
L1
13. Mô hình Markov ẩn trong hệ thống
𝑷 𝑮ợ𝒊 ý 𝟏
= 𝑷 𝒔ở 𝒕𝒉í𝒄𝒉 ∗ 𝑷 𝒕𝒉ó𝒊 𝒒𝒖𝒆𝒏
oMột địa điểm được gợi ý cho tập
người dùng tương tự cần thỏa mãn hai
điều kiện:
Là địa điểm thuộc sở thích của
tập người dùng tương tự
Là địa điểm có thể được quan
tâm tiếp theo do thói quen của tập
người dùng.
Pha 1
Xác định tập địa điểm gợi ý cho tập US: L1
14. Xác định tập địa điểm sở thích
Input:
• n người dùng đầu tiên
của tập US
• Tập địa điểm, tương tác
lịch sử của Us
Output:
• LP: Tập địa điểm
sở thích của tập US
Most Similar
Amount Preference
Lọc cộng tác
(Collaborative filtering)
Pha 1
15. Xác định tập địa điểm thói quen
Input:
• Tập địa điểm tương tác
cuối của tập US
• Tập địa điểm, tương tác
lịch sử của Us
Output:
• LH: Tập địa điểm mà
tập US sẽ có thể tương
tác theo thói quen
Order by Time Habit
Địa điểm tương tác cuối
Địa điểm gợi ý
Pha 1
16. Pha 2 (Cá nhân hóa)
A
C
B
Loại địa điểm
quan tâm (%)
Input: L1
A
A
A
AA
A
A
A
A
Output:
• Tập địa điểm được cá nhân
hóa theo người dùng
Input:
• Lịch sử tương
tác của U
Input:
• A: Vị trị của U
17. Lọc địa điểm theo sở thích người dùng
Pha 2
A
C
B
Các loại địa điểm
quan tâm (%)
Input: L1
( 𝑷 𝑮ợ𝒊 ý 𝟏 )
A
A
A
A
Input:
• Lịch sử tương
tác của U
Lọc nội dung
(Content-based filtering)
𝑷 𝑮ợ𝒊 ý 𝟐 = 𝑷 𝑮ợ𝒊 ý 𝟏 + 𝑷 𝑮ợ𝒊 ý 𝟏 ∗ % 𝒒𝒖𝒂𝒏 𝒕â𝒎
Output:
• L2: tập các địa điểm sắp
xếp theo sở thích của U
18. Xác định địa điểm theo vị trí người dùng
A
C
B
A
A
A
AA
A
A
A
A
Output:
• L3: tập địa điểm tại A
Input:
• A: Vị trị của U
Input: L2
Ánh xạ:
LB -> LA
LC -> LA …
Độ tương tự : (địa điểm – địa điểm) :
• DISTANCE :
Khoảng cách giữa hai vector đặc điểm
• QUALITY :
+ Chênh lệch chất lượng hai địa điểm
+ Tính dựa trên lượng tương tác từ
người dùng tới địa điểm
SIMILARITY = DISTANCE * QUALITY_SUB
Pha 2
19. Tiền xử lý dữ liệu trước khi xử lý: chỉnh các giá trị
thuộc tính sai giá trị hoặc không có giá trị
Tạo cơ sở dữ liệu Neo4j: các node (người dùng và địa
điểm) – dễ dàng biểu diễn
Tạo các quan hệ giữa người dùng và đia điểm là các
tương tác
Tạo các quan hệ giữa người dùng, người dùng là
khoảng cách giữa các vector thuộc tính
Json
Elements
Standardizing
Data
Creating
Neo4J Nodes
Creating Neo4j Relationships
{User-Location}
Creating Neo4J
Relationships {User-User}
Read File
Neo4J
Database
Biểu diễn dữ liệu
trọng Neo4j
Khởi tạo cơ sở dữ liệu
20. Nội dung trình bày
Đặt vấn đề
Mục đích
Cách tiếp cận
Xây dựng hệ thống
• Thực nghiệm
• Kết luận
21. Thực hiện
Dữ liệu kiểm thử:
o Từ trang “foody.vn”
o Dữ liệu trong phạm vi Hà Nội
o User : 11550
o Location : 14993
Với mỗi địa điểm gợi ý L:
o Chi phí gợi ý : 10 điểm
Với mỗi địa điểm gợi ý L: 6 trường hợp đánh giá
o L là loại U thường tương tác nhất : 10 điềm
o L là loại U thường tương tác thứ hai : 7 điểm
o L là loại U đã tương tác : 5 điểm
o L là loại U thường tương tác nhất nhưng là địa điểm U đã tương tác : 3 điểm
o L là loại U đã tương tác nhưng là địa điểm U đã tương tác : 2 điểm
o L là loại U chưa từng tương tác : 0 điểm
22. Kết quả
Kết quả chấp nhận được : 10, 7, 5
Kết quả tệ : 3, 2
Kết quả thất bại : 0
4 gói dữ liệu: 100, 250, 500, 750 người dùng – địa điểm từ dữ lịch sử
tương tác + 40% ngẫu nhiên
Chọn một người dùng bất kỳ, thực hiện gợi ý – lấy 10 địa điểm gợi ý
đầu tiên để xác định độ chính xác
Gói
(USER)
Số địa điểm /
số lần thực hiện
Kết quả
10 điểm
Kết quả
7 điểm
Kết quả
5 điểm
Kết quả
3 điểm
Kết quả
2 điểm
Kết quả
0 điểm
Tổng
điểm
Điểm chi
phí
100 100 / 10 38 21 12 2 1 26 595 1000
250 500 / 50 187 132 90 9 4 78 3279 5000
500 700 / 70 225 149 168 12 11 135 4191 7000
750 1000 / 100 291 219 255 44 37 154 5924 10000
Chấp nhận Tệ Thất bại
Gói 100 71% 3% 26%
Gói 250 81.8% 2.6% 15.6%
Gói 500 77.43% 3.29% 19.28%
Gói 750 76.5% 8.1% 15.4%
23. Sản phẩm
(Windows phone 8.1 )
“Around You” : Gợi ý địa điểm phù hợp với người dùng
“Best Locations” : Đưa ra các địa điểm dựa vào xếp hạng chất lượng địa điểm
“Find Location” : Tìm địa điểm theo tên và xếp hạng theo chất lượng
24. Nội dung trình bày
Đặt vấn đề
Mục đích
Cách tiếp cận
Xây dựng hệ thống
Thực nghiệm
• Kết luận
25. Kết quả đạt được
Hiểu lý thuyết về hệ gợi ý: lọc tương tác, lọc nội dung và hệ thống lai
Hiểu lý thuyết về mô hình Markov ẩn
Hiểu lý thuyết cơ bản về dữ liệu đồ thị và cách sử dụng cơ sở dữ liệu Neo4j
Xây dựng được hệ gợi ý lai kết hợp lọc tương tác và lọc nội dung
Ứng dụng mô hình Markov ẩn trong xử lý, cụ thể là xử lý dữ liệu thời gian
Xây dựng thành công hệ gợi ý địa điểm với dữ liệu test đạt kết quả trung
bình: 50%
Lập trình cơ bản trên nền tảng di động windows phone 8.1
Các yêu cầu cơ bản đề ra được đáp ứng trong hệ thống.
26. Cải thiện, phát triển bài toàn
Tăng tính chính xác cho hệ thống bằng các giải pháp
o Phân tích ngôn ngữ tự nhiên cho các nhận xét của người dùng
o Điều chỉnh các tham số chuẩn hóa của hệ thống
o Đặt thuộc tính thời gian cho tất cả các tương tác của người dùng
Tăng hiệu năng cho hệ thống bằng các giải pháp
o Cải thiện khởi tạo mối quan hệ {user-user} khi xây dựng cơ sở dữ liệu bằng
việc khoanh vùng người dùng tương tự
o Áp dụng xử lý song song khi tính toán trong “pha tổng quát”
o Sử dụng cơ sở dữ liệu đệm để tăng tốc quá trình xử lý (Redis database)
29. if (distance1 < distance2) {
if (distance1*6 > distance2*5) {
if (activity1*3 < activity2*2) {
result = 1;
} else return = -1;
} else return = -1;
}
if (distance1 > distance2) {
if (distance1*5 < distance2*6) {
if (activity1*2 > activity2*3) {
result = -1;
} else return = 1;
} else return = 1;
}
if (distance1 == distance2) {
if (activity1 < activity2) return = 1;
if (activity1 > activity2) return = -1;
if (activity1 == activity2) return = 0;
}
3 địa điểm (u1, u2, u)
chọn u1 hoặc u2 tương tự u hơn
So sánh 2 cặp (u1, u) – (u2, u)
• return 1 : u2 tương tự u hơn u1
• return -1 : u1 tương tự u hơn u2
• return 0 : u1, u2 cùng độ tương tự với u
So sánh độ tương tự giữa
{người dùng – người dùng}
Editor's Notes
Nói về các hệ gợi ý thường thấy hiện nay (foody, lozi, địa điểm việt….)
Định nghĩa các đối tượng – đặc điểm đối tượng hỗ trợ gì cho mục tiêu đồ án