Sinh viên: Bùi nguyễn tất thành20102149 - 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
Người dùng – Địa điểm – Tương tác
Cinema 2 Museum 1
Coffee 3
Check-inCinema 2 -- 8:30Coffee 3 -- 10:15Museum 1 -- 11:00Shopping 1 -- 11:45
Locations
Use
r-Loc
atio
n G
raph
Users
Trajectories
• View• Want to go• Like• Check-in• Comment
Mục tiêu bài toánGợi ý địa điểm cho người dùng:
Cá nhân hóa gợi ý dựa trêno Đặc điểm của người dùngo Hành vi người dùngo Sở thích và thói quen của người dùngoVị 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
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
Mô hình hóa đối tượngNgười dùng
SexBirthdayRelation
JobAddressDistrict
Province
Tương tác Mức quan tâmXem (view)
1
Muốn đến (wanttogo) 2
Thích(like) 3
Đã đến(check in) 4
Nhận xét(commen
t)5
Địa điểm addressdistrict
provincecategories
openingTimeclosingTime
minPricemaxPricelatitude
longitudetotalView
totalWantToGototalLike
totalCheckIntotalComment
Vector người dùng
Vector địa điểm
Attribute district province age sex relationWeight 0.25 0.225 0.2 0.175 0.15
Dimension district province lowerPrice upperPrice openingTime closingTimeWeight 0.225 0.175 0.175 0.175 0.125 0.125
Dimension totalView totalWanttogo totalLike totalCheckin totalCommentWeight 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
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
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
Nội dung trình bày
Đặt vấn đềMục đíchCách tiếp cận•Xây dựng hệ thống• Thực nghiệm• Kết luận
Mô hình gợi ý
Pha 1 – Tổng quát hóa Pha 2 – Cá nhân hóa
Xác định tập người dùng tương tự
Attribute Actual Value
Standardized Value
SEXnam 100nữ 0
AGE
0 ~ 15 016 ~ 23 3523 ~ 35 60
> 35 100…. …. …
o DISTANCEKhoả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 relationWeight 0.25 0.225 0.2 0.175 0.15
Bảng chuẩn hóa thuộc tính
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
Preference
Habit
Recommender
Location
Amount
Order by Time
Hidden Markov Model
LP
LH
L1
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
Xác định tập địa điểm sở thíchInput: • 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
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
Pha 2 (Cá nhân hóa)
AC
B
Loại địa điểm quan tâm (%)
Input: L1 A
A
A
AAA
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
Lọc địa điểm theo sở thích người dùngPha 2
AC
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
Xác định địa điểm theo vị trí người dùng
AC
B
A
A
A
AAA
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
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
Nội dung trình bày
Đặt vấn đềMục đíchCách tiếp cậnXây dựng hệ thống•Thực nghiệm• Kết luận
Thực hiệnDữ liệu kiểm thử:
o Từ trang “foody.vn”o Dữ liệu trong phạm vi Hà Nộio User : 11550o 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ềmo L là loại U thường tương tác thứ hai : 7 điểmo L là loại U đã tương tác : 5 điểmo 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ểmo L là loại U đã tương tác nhưng là địa điểm U đã tương tác : 2 điểmo L là loại U chưa từng tương tác : 0 điểm
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 1000250 500 / 50 187 132 90 9 4 78 3279 5000500 700 / 70 225 149 168 12 11 135 4191 7000750 1000 / 100 291 219 255 44 37 154 5924 10000
Chấp nhận Tệ Thất bạiGó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%
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
Nội dung trình bày
Đặt vấn đềMục đíchCách tiếp cậnXây dựng hệ thốngThực nghiệm•Kết luận
Kết quả đạt đượcHiểu lý thuyết về hệ gợi ý: lọc tương tác, lọc nội dung và hệ thống laiHiểu lý thuyết về mô hình Markov ẩnHiểu lý thuyết cơ bản về dữ liệu đồ thị và cách sử dụng cơ sở dữ liệu Neo4jXâ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 gianXâ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.
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ápo Phân tích ngôn ngữ tự nhiên cho các nhận xét của người dùngo Điều chỉnh các tham số chuẩn hóa của hệ thốngo Đặ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ápo 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)
CẢM ƠN THẦY CÔ VÀ CÁC BẠN ĐÃ CHÚ Ý LẮNG NGHE!
Chất lượng của một địa điểm
interaction_point
*100%
𝒂𝒕𝒕𝒓𝒂𝒄𝒕𝒊𝒗𝒆𝒏𝐞𝐬 _ 𝒍𝒆𝒗𝒆𝒍= 𝑡𝑜𝑡𝑎𝑙𝑉𝑖𝑒𝑤max _ 𝑡𝑜𝑡𝑎𝑙𝑉𝑖𝑒𝑤 _ 𝑜𝑓 _ 𝑐𝑎𝑡𝑒𝑔𝑜𝑟𝑦 ∗100 %
𝒊𝒏𝒕𝒆𝒓𝒂𝒄𝒕 _ 𝒍𝒆𝒗𝒆𝒍=( ∑𝑡𝑦𝑝𝑒_ 𝑜𝑓 _ 𝑖𝑛𝑡𝑒𝑟𝑎𝑐𝑡𝑖𝑜𝑛
𝑡𝑜𝑡𝑎𝑙_ 𝑖𝑛𝑡𝑒𝑟𝑎𝑐𝑡𝑖𝑜𝑛max _ 𝑡𝑜𝑡𝑎𝑙 _ 𝑜𝑓 _ 𝑐𝑎𝑡𝑒𝑔𝑜𝑟𝑦 )∗100 %
𝒊𝒏𝒕𝒆𝒓𝒆𝒔𝒕 𝒍𝒆𝒗𝒆𝒍=𝑡𝑜𝑡𝑎𝑙𝑊𝑎𝑛𝑡 ∗2+𝑡𝑜𝑡𝑎𝑙𝐿𝑖𝑘𝑒∗3+ h𝑡𝑜𝑡𝑎𝑙𝑐 𝑒𝑘𝑖𝑛∗4+𝑡𝑜𝑡𝑎𝑙𝑐𝑜𝑚𝑚𝑒𝑡𝑛∗5
4∗(𝑡𝑜𝑡𝑎𝑙𝑉𝑖𝑒𝑤∗1)∗100 %
𝒒𝒖𝒂𝒍𝒊𝒕𝒚 𝒍𝒆𝒗𝒆𝒍=𝑎𝑡𝑡𝑟𝑎𝑐𝑡 𝑖𝑣𝑒𝑛𝑒𝑠𝑠𝑙𝑒𝑣𝑒𝑙+𝑖𝑛𝑡𝑒𝑟𝑎𝑐𝑡 𝑙𝑒𝑣𝑒𝑙
5∗𝑖𝑛𝑡𝑒𝑟𝑒𝑠𝑡 𝑙𝑒𝑣𝑒𝑙
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}