location recommender system

29
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

Upload: thanh-can

Post on 15-Apr-2017

200 views

Category:

Data & Analytics


1 download

TRANSCRIPT

Page 1: Location recommender system

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

Page 2: Location recommender system

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

Page 3: Location recommender system

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

Page 4: Location recommender system

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

Page 5: Location recommender system

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

Page 6: Location recommender system

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

Page 7: Location recommender system

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

Page 8: Location recommender system

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

Page 9: Location recommender system

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

Page 10: Location recommender system

Mô hình gợi ý

Pha 1 – Tổng quát hóa Pha 2 – Cá nhân hóa

Page 11: Location recommender system

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

Page 12: Location recommender system

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

Page 13: Location recommender system

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

Page 14: Location recommender system

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

Page 15: Location recommender system

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

Page 16: Location recommender system

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

Page 17: Location recommender system

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

Page 18: Location recommender system

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

Page 19: Location recommender system

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

Page 20: Location recommender system

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

Page 21: Location recommender system

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

Page 22: Location recommender system

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%

Page 23: Location recommender system

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

Page 24: Location recommender system

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

Page 25: Location recommender system

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.

Page 26: Location recommender system

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)

Page 27: Location recommender system

CẢM ƠN THẦY CÔ VÀ CÁC BẠN ĐÃ CHÚ Ý LẮNG NGHE!

Page 28: Location recommender system

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∗𝑖𝑛𝑡𝑒𝑟𝑒𝑠𝑡 𝑙𝑒𝑣𝑒𝑙

Page 29: Location recommender system

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}