Tải bản đầy đủ (.pdf) (27 trang)

Dự Đoán Tính Di Động Sử Dụng Dữ Liệu Gps (tt)

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.69 MB, 27 trang )

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
----------------------------------------

TRẦN HOÀNG NAM

DỰ ĐOÁN TÍNH DI ĐỘNG
SỬ DỤNG DỮ LIỆU GPS
Chuyên ngành: Hệ Thống Thông Tin
Mã số: 60.48.01.04

TÓM TẮT LUẬN VĂN THẠC SĨ

TP. HỒ CHÍ MINH – 2017


Luận văn được hoàn thành tại:
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

Người hướng dẫn khoa học: ……………………………………………………………
(Ghi rõ học hàm, học vị)

Phản biện 1: ……………………………………………………………………………
Phản biện 2: …………………………………………………………………………..

Luận văn sẽ được bảo vệ trước Hội đồng chấm luận văn thạc sĩ tại Học viện Công nghệ
Bưu chính Viễn thông
Vào lúc:

....... giờ ....... ngày ....... tháng ....... .. năm ...............

Có thể tìm hiểu luận văn tại:


- Thư viện của Học viện Công nghệ Bưu chính Viễn thông


i


1

MỞ ĐẦU
Trong thời gian gần đây, ý tưởng dự đoán sự di động của người dùng nhận được
rất nhiều sự quan tâm và chú ý, điều này có tác dụng thúc đẩy mạnh mẽ sự phát
triển các ứng dụng liên quan trên phạm vi rộng. Đơn cử một vài ứng dụng như:
cung cấp các dịch vụ dựa trên vị trí đến của người dùng bằng cách dự đoán xu
hướng chuyển động của họ (ví dụ: hệ thống quảng cáo trên di động, đề nghị các
dịch vụ, hệ thống cảnh báo), hệ thống dự báo giao thông trong đô thị, thiết kế các hệ
thống điều tiết lưu lượng hiệu quả hơn trong các mạng không dây. Tuy nhiên, việc
cải thiện các ứng dụng bằng cách dự đoán phụ thuộc rất nhiều vào độ chính xác của
các dự đoán đã đưa ra.
Giả sử, một người hiện đang đứng tại vị trí A, hãy dự đoán vị trí tiếp theo mà
người đó có khả năng di chuyển đến. Nếu chúng ta có dữ liệu di chuyển trong quá
khứ của A, chúng ta có thể tìm xem trong quá khứ người đó đã ở vị trí A bao giờ
chưa, và nếu đã ở vị trí A rồi, thì vị trí tiếp theo người đó di chuyển đến là vị trí nào.
Các phán đoán có thể dựa vào hướng di chuyển trong quá khứ và đưa ra dự đoán
rằng người đó có khả năng lặp lại hướng di chuyển trong quá khứ tại thời điểm đang
xét hiện tại. Tuy nhiên, sẽ rất khó để đưa ra phán đoán hướng di chuyển nếu đây là
lần đầu tiên người đó đến vị trí A, hoặc dữ liệu đã có không tồn tại vị trí A trong
lịch sử di chuyển (có thể dữ liệu đã thu thập không đầy đủ).
Mục đích của bài toán là đưa ra dự đoán điểm đến tiếp theo của một người kể cả
trong trường hợp không đủ dữ liệu di chuyển trong quá khứ hoặc đây là lần đầu tiên
người đó đến điểm A.

Các quỹ đạo của người dùng trong mạng có một số mẫu điển hình sẽ lặp đi lặp
lại, các mẫu này có thể được khai thác để dự đoán sự di động trong tương lai.
Những mẫu dữ liệu di động này sẽ tương ứng với các hành vi thông thường của
người sử dụng, ví dụ như đi từ nhà đến cơ quan để làm việc hàng ngày hoặc di động
đến quán café yêu thích mỗi dịp cuối tuần. Xác định được những mẫu di động này
trong lịch sử di động của người dùng chính là chìa khóa để đưa ra các dự đoán


2

chính xác sự di động của họ trong tương lai. Tuy nhiên, có rất nhiều thách thức liên
quan đến việc thu nhập dữ liệu GPS của người dùng. Ví dụ, người dùng cảm thấy lo
ngại khi tiết lộ các thói quen di động của mình sẽ ảnh hưởng đến một số vấn đề
riêng tư của họ, hoặc quá trình thu thập GPS bị gián đoạn do một số nguyên nhân
như máy hỏng, người dùng đổi máy khác… Những sự cố vừa nêu có thể làm nhiễu
dữ liệu dẫn đến ảnh hưởng đến quá trình lấy mẫu, làm giảm sự chính xác trong việc
đưa ra dự đoán. Do vậy, trong trường hợp không đủ cơ sở để đưa ra dự đoán hướng
di chuyển của một người do thiếu dữ liệu, hoặc dữ liệu không có, chúng ta có thể
dựa vào sự di chuyển của những người khác có thói quen di chuyển giống hoặc gần
giống với đối tượng đang xét. Những người có thói quen di chuyển giống nhau,
chúng ta sẽ gom lại thành một nhóm để tạo thành cơ sở đưa ra kết quả phán đoán
Hiện nay, vấn đề dự đoán khả năng di động của người dùng là một vấn đề khá
mới mẻ ở Việt Nam. Có lẽ vì vậy, sau một thời gian tìm hiểu các thông tin về các đề
tài có liên quan đến dự đoán khả năng di động của người dùng, luận văn vẫn chưa
tìm thấy thông tin nào có liên quan đến vấn đề này, cũng có thể các dự án này đang
trong quá trình nghiên cứu và phát triển nên chưa được công bố và tiết lộ thông tin
đến mọi người.
Các nguồn thông tin trong nước được sử dụng để tìm hiểu thông tin có liên quan
đến đề tài này bao gồm:
Tìm hiểu trên internet, bằng cách tìm kiếm trên các công cụ tìm kiếm như

Google, Bing với các từ khóa như “Dự đoán tính di động của người dùng dựa trên
GPS”, “Dự đoán khả năng di động của người dùng”, ”Ứng dụng của dữ liệu
GPS”…
Tìm hiểu thông qua các sách báo tạp chí khoa học như: tạp chí Khoa Học và
Công Nghệ Việt Nam, Tạp chí khoa học, Echip…
Mặc dù đối với Việt Nam, nghiên cứu về khả năng di động của người dùng đang rất
mới mẻ và hầu như chưa có công trình nghiên cứu nào liên quan, nhưng trên thế giới
đã có một số nghiên cứu về vấn đề dự đoán khả năng di động của người dùng. Các
thuật toán thường được áp dụng trên dữ liệu do các nhà mạng cung cấp hoặc dữ liệu
GPS thu thập từ điện thoại của người dùng.


3

Luận văn sẽ tập trung nghiên cứu các thuật toán được đề xuất trong các bài báo dưới
đây:
Bài báo “Understanding Mobility Based on GPS Data” [1] và bài báo “Mining
Interesting Locations and Travel Sequences from GPS Trajectories” [3] của tác giả Yu
Zheng và cộng sự thể hiện các khái niệm cơ bản về sự di động dựa trên dữ liệu GPS và
chỉ hướng đến khai phá dữ liệu GPS đã thu thập từ người dùng để xác định các địa
điểm du lịch yêu thích và các chuỗi địa điểm thường được chọn trong một khu vực địa
lý nhất định.
Bài báo “Cluster-Aided Mobility Predictions” [2] của tác giả Jaeseong Jeong và các
cộng sự đề xuất nghiên cứu áp dụng thuật toán Bayesian phi tham số dựa trên dữ liệu
thu thập được từ các trạm phát sóng nhà mạng để dự đoán sự di động của người dùng
điện thoại. Tuy nhiên, dữ liệu mà tác giả thu thập từ các trạm phát sóng là những dữ
liệu có khoảng cách khá rời rạc, với khoảng cách khá xa nhau, các vị trí thu thập là các
vị trí đã có sẵn, do đó việc dự đoán được sự di chuyển của người dùng điện thoại không
có ý nghĩa nhiều trong thực tế, mà chỉ nhằm mục đích phục vụ sự chuyển tải của các
trạm phát sóng của nhà mạng.

Từ sự hạn chế đã nêu của bài báo [2], luận văn đưa ra ý tưởng tiến hành nghiên cứu
dự đoán tính di động dựa vào dữ liệu GPS, thay vì áp dụng trên dữ liệu của các nhà
mạng để tận dụng được đặc điểm liên tục và sự di chuyển ngẫu nhiên của người dùng.
Với mục tiêu cuối cùng của là nghiên cứu và chọn lựa thuật toán phù hợp để dự
đoán được khả năng di động của người dùng trong khoảng thời gian tương lai gần.
Luận văn đã tìm hiểu các thuật toán được sử dụng trong máy học đã được các nhà
khoa học, các bài báo đề xuất trên thế giới. Cuối cùng, luận văn đề xuất thuật toán
K-means kết hợp với dự đoán dựa trên sự quyết định của số đông để cài đặt và
nghiên cứu việc dự đoán tính di động của người dùng trong tương lai. Thuật toán mà
tác giả Jaeseong Jeong đề xuất trong bài báo [2] sẽ được áp dụng với dữ liệu thu thập
được từ các trạm phát sóng của nhà mạng. Tuy nhiên, nếu sử dụng dữ liệu này để dự
đoán khả năng di chuyển của người dùng trong tương lai thì sẽ mang lại hiệu quả
không cao, bởi vì khoảng cách giữa các trạm phát sóng khá xa, và các vị trí của các
trạm phát sóng này là cố định và biết trước. Do đó nếu có dự đoán được tính di động


4

của người dùng, thì cũng chỉ là dự đoán tại các vị trí xác định. Điều này gây ra hạn chế
tính hiệu quả trong ứng dụng của thuật toán cũng như ý tưởng. Hơn nữa, thuật toán
Dirichlet Process (DP) mixture model [2] mà tác giả đề xuất trong bài báo là một thuật
toán tương đối khó để cài đặt. Do vậy, luận văn sẽ không sử dụng thuật toán mà tác giả
đã đề xuất trong bài báo, đồng thời cũng không sử dụng dữ liệu từ các trạm phát sóng,
thay vào đó, dữ liệu GPS được thu thập từ các thiết bị cầm tay của người dùng sẽ được
lựa chọn sử dụng trong luận văn này. Với chi phí thấp đối với thiết bị GPS như hiện
này, hầu như tất cả các thiết bị smartphone đều được tích hợp công nghệ GPS, đây là
một điểm thuận lợi trong việc thu thập dữ liệu di chuyển của người dùng để phục vụ
trong quá trình nghiên cứu. Lợi điểm thứ 2 khi sử dụng GPS là mật độ thu nhập dữ liệu
di chuyển của người dùng là rất gần nhau, các thiết bị có thể ghi nhận sự di chuyển của
một người với mật độ di chuyển 1 mét, hoặc 60 giây 1 lần. Như vậy với dữ liệu thể

hiện khá chi tiết của GPS, các thuật toán sẽ dự đoán chính xác hơn vị trí di chuyển của
người dùng trong tương lai.

Chương 1- TỔNG QUAN
1.1 Giới thiệu về công nghệ GPS
1.1.1 Lịch sử phát triển
Hệ thống định vị toàn cầu GPS (Global Positioning System) là một hệ thống các
vệ tinh có khả năng xác định vị trí trên toàn cầu với độ chính xác khá cao được phát
triển bởi bộ quốc phòng Hoa Kỳ trong khoảng đầu 1970. Đầu tiên, GPS được xây
dựng để phục vụ cho các mục đích quân sự, tuy nhiên sau này cho phép sử dụng cả
trong lĩnh vực dân sự. Hiện nay, hệ thống này được truy nhập bởi cả hai lĩnh vực
quân sự và dân sự.
CẤU TRÚC HỆ THỐNG GPS:
GPS gồm 3 phân vùng:
- Phần không gian (space segment)
- Phần điều khiển (control segment)
- Phần người sử dụng (user segment)


5

1.1.2 Phần không gian (space segment)
1.1.3 Phần điều khiển (control segment)
1.1.4 Phần người sử dụng (user segment)
1.1.5 Mạng lưới vệ tinh GPS hiện tại
1.1.6 Cấu trúc tín hiệu GPS
1.2 Giới thiệu một số phương pháp dự đoán cơ bản
1.2.1 Phương pháp Bayesian
Theo suy nghĩ thông thường, nếu ta tìm được một hình ảnh E giống với một ký
hiệu H mà ta đã biết trước đó, ta sẽ kết luận E là hình ảnh của H. Nhưng khi ta nhận

thấy rằng E có thể hao hao giống H1 hoặc H2, ta sẽ phải sử dụng thêm các thông tin
khác. Ví dụ như tần suất xuất hiện của H1 và H2, nếu ký hiệu nào có tần suất lớn
hơn, ta sẽ chọn ký hiệu đó. Hoặc dựa vào các hình lân cận của E để quyết định xem
chọn H1 hay H2 là phù hợp. Đó là tất cả những gì mà Bayes đã phát biểu trong công
thức.
( | )

( | ) ( )
( )

1.2.2 Thuật toán phân cụm K-Means
Thuật toán K-means clusstering do MacQueen giới thiệu trong tài liệu “J. Some
Methods for Classification and Analysis of Multivariate Observations” năm 1967.
K-means Clustering là một thuật toán dùng trong các bài toán phân loại/nhóm n
đối tượng thành k nhóm dựa trên đặc tính/thuộc tính của đối tượng (k <= n nguyên,
dương).
Về nguyên lý, có n đối tượng, mỗi đối tượng có m thuộc tính, ta phân chia được
các đối tượng thành k nhóm dựa trên các thuộc tính của đối tượng bằng việc áp
dụng thuật toán này.
Coi mỗi thuộc tính của đối tượng (đối tượng có m thuộc tính) như một toạ độ của
không gian m chiều và biểu diễn đối tượng như một điểm của không gian m chiều.
ai =( xi1, xi2, ... xim)


6

ai (i=1..n) - đối tượng thứ i
xij (i=1..n, j=1..m) - thuộc tính thứ j của đối tượng i
Phương thức phân loại/nhóm dữ liệu thực hiện dựa trên khoảng cách Euclidean
nhỏ nhất giữa đối tượng đến phần tử trung tâm của các nhóm.

Phần tử trung tâm của nhóm được xác định bằng giá trị trung bình các phần tử
trong nhóm.

1.2.3 Khai phá dữ liệu GPS
Bài báo “Mining Interesting Locations and Travel Sequences from GPS
Trajectories” [3] sử dụng phương thức khai phá dữ liệu từ các quỹ đạo GPS đã thu
thập từ người dùng. Các tác giả của bài báo đề xuất ra mô hình Biểu đồ phân cấp
dạng cây TBHG (Tree-Based Hierarchical Graph) để mô hình hóa dữ liệu di chuyển
của nhiều người trên một vùng địa lý dựa trên quỹ đạo GPS của họ. Sau đó dựa trên
mô hình TBHG, các tác giả đề xuất thêm mô hình HITS ((Hypertext Induced Topic
Search) để suy luận ra trải nghiệm du lịch của người dùng và các địa điểm yêu thích
trong một khu vực nào đó.

Chương 2 - CÁC THUẬT TOÁN DỰ ĐOÁN TÍNH DI ĐỘNG
2.1 Thuật toán TBHG (Tree Based Hierachical Graph)
Như đã đề cập ở mục 1.2.3, với nghiên cứu trong bài báo số [3], dựa trên rất
nhiều dữ liệu về các quỹ đạo GPS của người dùng, tác giả hướng đến mục tiêu khai
thác top những địa điểm du lịch được quan tâm nhiều nhất và chuỗi du lịch thường
thấy trong một khu vực địa lý nhất định bằng cách dựa trên kinh nghiệm du lịch của
người dùng và mối tương quan giữa các địa điểm. Đồng thời, có thể suy ra kinh
nghiệm k của người dùng trong cộng đồng tại vùng địa lý liên quan. Ở đây, tác giả
xem những chuyến thăm của người dùng đến một vị trí nào đó như là một liên kết
ngầm từ người dùng đến vị trí đó. Một người dùng có thể đến thăm nhiều nơi và
một vị trí có thế được ghé thăm bởi nhiều người dùng. Hơn nữa, những liên kết này
dựa trên trọng số kinh nghiệm du lịch của các cá nhân khác nhau trong khu vực này.
Do đó, tác giả có thể giải quyết ý tưởng chính của mô hình HITS để suy ra kinh
nghiệm du lịch của người sử dụng và độ yêu thích tương đối của một vị trí nào đó.


7


Như đã giới thiệu ở phần tổng quan, hệ thống của tác giả có 2 bước để thực hiện
khi xây dựng biểu đồ cây phân cấp TBHG.
Xây dựng một hệ thống cấp bậc dựa trên cây H: Tác giả đưa các điểm nghỉ được
phát hiện từ các bản ghi GPS của người dùng vào một tập dữ liệu. Sử dụng một
thuật toán phân nhóm dựa trên mật độ, sau đó phân cấp các nhóm này vào một số
vùng không gian địa lý một cách riêng biệt (gọi là các cụm C). Như vậy các điểm
nghỉ giống nhau từ những người dùng khác nhau sẽ được gán vào các nhóm giống
nhau trên các cấp khác nhau.
Xây dựng đồ thị cho mỗi cấp bậc: dựa trên cây phân cấp H và lịch sử vị trí của
người dùng, chúng ta có thể kết nối các nhóm trên cùng một cấp bậc bằng các mũi
tên. Nếu điểm nghỉ liên tiếp trên một cuộc hành trình được chứa riêng biệt trên 2
cụm, một liên kết sẽ được tạo ra giữa 2 cụm theo hướng thời gian nối tiếp của 2
điểm nghỉ.

s
Hình 2.1: Xây dựng biểu đồ cây phân cấp
Kiến trúc hệ thống:
Kiến trúc hệ thống mà tác giả xây dựng gồm có 3 phần như sau: Mô hình hóa
lịch sử vị trí (location history modeling), khai phá các địa điểm yêu thích và chuỗi
(location interest and sequence mining) và đề nghị. Hai thành phần đầu tiên có thể
thực hiện off-line trong khi thành phần thứ 3 sẽ thực hiện online và dựa trên khu
vực đã được chỉ định bởi người dùng. Trong kiến trúc hệ thống này:
Location History Modeling: Với dữ liệu GPS thu thập được từ người dùng, tác
giả xây dựng biểu đồ cây phân cấp TBHG off-line. Trong cấu trúc này, một node
trong đồ thị đại diện cho một cụm các điểm nghỉ, và cạnh đồ thị đại diện cho một sự
di chuyển giữa 2 địa điểm (cụm). Không giống như các điểm GPS thô, các cụm này
sẽ biểu thị những địa điểm được ghé thăm bởi nhiều người. Do đó, nó sẽ có nhiều ý



8

nghĩa hơn, chẳng hạn như những nơi quan trọng về văn hóa hoặc khu vực công
cộng phổ biến. Ngoài ra, hệ thống cấp bậc cả TBHG còn biểu thị quy mô không
gian địa lý khác nhau (khi phóng to, thu nhỏ bản đồ web) giống như một thành phố,
một huyện hay một cộng đồng. Tóm lại, biểu đồ cây phân cấp có thể mô hình hóa
hiệu quả các chuỗi du lịch của nhiều người dùng trên một loạt các khu vực không
gian địa lý.
HITS-based inference model: với TBHG, tác giả đề xuất mô hình suy luận
HITS-based để ước lượng kinh nghiệm du lịch của người dùng và các địa điểm
được yêu thích trong một khu vực nhất định. Trong mô hình này, các chuyến thăm
của các cá nhân đến một địa điểm (cụm) được coi là một liên kết từ cá nhân đến vị
trí đó. Như vậy, một người dùng là một trung tâm nếu họ đã đến thăm nhiều địa
điểm và một địa điểm sẽ được xem như là một cơ quan nếu nó được ghé thăm bởi
nhiều người dùng. Hơn nữa, kinh nghiệm của những người du lịch và các điểm cơ
quan có quan hệ tăng cường lẫn nhau. Sử dụng phương pháp power interation
chúng ta có thể tạo ra điểm số cuối cùng cho người dùng và địa điểm và tìm ra được
các địa điểm được yêu thích hàng đầu và top những người sử có kinh nghiệm du
lịch trong một khu vực nhất định.
Mining classical travel sequence: Tác giả tính toán điểm số cơ bản cho mỗi
chuỗi địa điểm trong một khu vực nhất định khi xem xét 2 yếu tố sau: kinh nghiệm
du lịch của người dùng trong chuỗi địa điểm đang xét và mức độ yêu thích của các
địa điểm trong chuỗi. Từ đó, sẽ có nhiều đường đi từ một vị trí, sự quan tâm của vị
trí này được chia sẽ giữa tất cả các con đường. Sự quan tâm của một địa điểm trên
những đường đi khác nhau sẽ dựa trên xác xuất chọn con đường này của người
dùng. Sau đó, các chuỗi với các điểm số tương đối cao sẽ được lấy như là chuỗi du
lịch cổ điển. Mọi người thường không đi du lịch đến quá nhiều nơi trong một cuộc
hành trình, và các chuỗi du lịch cổ điển sẽ chỉ chứa 2 đến 3 địa điểm sẽ hữu ích hơn
là chỉ có 1



9

Hình 2.2: Kiến trúc hệ thống

Những ý tưởng cơ bản của mô hình HITS
HITS (Hypertext Induced Topic Search) tìm kiếm chủ đề từ các siêu văn bản, câu
truy vấn tìm kiếm sẽ phụ thuộc vào thuật toán xếp hạng cho các thông tin nhận
được từ web. Khi người dùng nhập truy vấn tìm kiếm, đầu tiên HITS sẽ mở rộng
danh sách các trang có liên quan được trả về bởi một công cụ tìm kiếm và sau đó
tạo ra hai bảng xếp hạng cho các thiết lập mở rộng của trang, xếp hạng uy tín và xếp
hạng tập trung. Đối với tất cả các trang trong tập mở rộng, HITS gán cho chúng
điểm uy tín và điểm thu hút. Như thể hiện trong hình 2.3, một điểm uy tín là một
trang web với nhiều liên kết vào, và một điểm trung tâm là một điểm với nhiều liên
kết ra. Ý tưởng chính của HITS là một điểm trung tâm tốt sẽ trỏ đến nhiều điểm uy
tín tốt, và một điểm uy tín được trỏ đến bởi nhiều trung tâm tốt. Do đó, các điểm uy
tín và các điểm trung tâm có một mối quan hệ tăng cường lẫn nhau. Cụ thể hơn,
điểm số uy tín của một trang là tổng của điểm của các trung tâm của những trang
mà nó trỏ tới, và điểm trung tâm của nó là sự tích hợp của các điểm uy tín của các
trang trỏ đến bởi nó. Sử dụng một phương pháp Interation Power, điểm số uy tín và
trung tâm của mỗi trang có thể được tính toán. Sức mạnh chính của HITS là xếp
hạng các trang theo chủ đề truy vấn, và có thể cung cấp các trang uy tín và trung
tâm phù hợp với câu truy vấn. Tuy nhiên, HITS tốn nhiều thời gian để tính toán,
chẳng hạn như mở rộng các trang online và tính điểm trung tâm và điểm uy tín.


10

Hình 2.3: Ý tưởng cơ bản của mô hình HITS


Mô hình suy luận dựa trên HITS
Mô tả mẫu: Hình 2.4 dưới đây minh họa ý tưởng chính của mô hình suy luận
dựa trên HITS. Location là một cụm các điểm nghỉ, ví dụ như C31, C32. Chúng ta
xem chuyến thăm của một cá nhân đến một vị trí như là một liên kết ngầm có
hướng từ cá nhân đến vị trí đó. Ví dụ, cụm C31 chứa 2 điểm nghỉ tương ứng phát
hiện từ dữ liệu GPS của u1 và dữ liệu GPS của u2, nghĩa là cả u1 và u2 đã đến thăm
địa điểm này. Tương tự như HITS, trong mô hình của bài báo, một trung tâm là một
người đã truy cập nhiều nơi, và một điểm uy tín là địa điểm đã được ghé thăm bởi
nhiều người. Vì vậy kinh nghiệm du lịch của người sử dụng (điểm số trung tâm) và
sự thu hút của các địa điểm (điểm số uy tín) có mối quan hệ tăng cường lẫn nhau.

Hình 2.4: Mô hình suy luận dựa trên HITS

Chiến lược lựa chọn dữ liệu:


11

Thực chất, kinh nghiệm du lịch của mỗi người đều có liên quan đến các khu vực
nhất định, ví dụ, một người dùng có nhiều kiến thức du lịch tại một thành phố có thể
không có ý tưởng về một thành phố khác. Ngoài ra, một các nhân đã đi nhiều nơi
trong một phần của thành phố, có thể biết chút ít về một phần khác của thành phố.
Tính năng này được liên kết với các truy vấn phụ thuộc của HITS. Vì vậy, trước khi
tiến hành suy luận dựa trên HITS, chúng ta cần phải xác đinh một vùng không gian
địa lý (một truy vấn có chủ đề) cho mô hình suy luận và xây dựng một tập dữ liệu
có chứa các địa điểm trong khu vực này.
Tuy nhiên, sử dụng một chiến lược lựa chọn dữ liệu trực tuyến, (ví dụ, chỉ định
một khu vực dựa trên đầu vào của một cá nhân), chúng ta cần phải thực hiện nhiều
hoạt động tốn thời gian, có thể làm giảm tính khả thi của hệ thống. Trên thực tế,
trên một cấp độ của TBHG, hình dạng của một nút đồ thị (cụm điểm nghỉ) cung cấp

một khu vực tiềm ẩn cho các nút con của nó. Những khu vực này được bao phủ bởi
các cụm trên mức độ khác nhau của hệ thống phân cấp có thể đứng về các ý nghĩa
ngữ nghĩa khác nhau, chẳng hạn như một thành phố, một huyện, một cộng đồng. Do
đó, chúng ta có thể tính toán trước sự quan tâm của tất cả các vị trí sử dụng các khu
vực theo quy định của cụm lên cao của họ. Nói cách khác, một vị trí có thể có nhiều
điểm thẩm quyền căn cứ vào quy mô khu vực khác nhau, có thuộc. Ngoài ra, người
dùng có thể có nhiều điểm số trung tâm điều hòa bởi các khu vực của các cụm khác
nhau.

Hình 2.5: Một số trường hợp minh họa cho chiến lược chọn dữ liệu


12

Chiến lược đặt nhiều điểm trung tâm cho một người sử dụng và nhiều điểm uy tín
cho một địa điểm có 2 ưu điểm như sau. Thứ nhất, chúng ta có thể tận dụng sức
mạnh chính của HITS để xếp hạng địa điểm và sử dụng các bối cảnh của vùng
không gian địa lý(chủ đề truy vấn). Thứ hai, các điểm trung tâm và cơ quan có thể
được tính trong chu kỳ off-line. Do đó, chúng ta có thể đảm bảo được hiệu quả của
hệ thống khi cho phép người dùng chỉ định bất kỳ khu vực nào trên bản đồ.

2.2 Thuật toán CAMP (Cluster-Aided Mobility Predictions)
Trong bài báo [4] Jaeseong Jeong, Mathieu Leconte and Alexandre Proutiere
(2016), “Cluster-Aided Mobility Predictions”. Tác giả trình bày CAMP (ClusterAided Mobility Predictor), một yếu tố dự báo cụm hỗ trợ có thiết kế dựa trên công
cụ thống kê Bayes phi tham số [7], [8]. CAMP trích xuất từ các dữ liệu, các cụm
của người sử dụng với các quá trình vận động tương tự, và khai thác cấu trúc nhóm
này để cung cấp những dự đoán chính xác di động. Việc sử dụng các công cụ thống
kê không tham số cho phép hệ thống có thể thích ứng với các số cụm chiết xuất dữ
liệu huấn luyện (con số này thực sự có thể phát triển cùng với các dữ liệu, ví dụ, với
số lượng người dùng). Điều này làm cho hệ thống có một cơ sở vững chắc hơn, tức

là, CAMP sẽ khai thác tính tương đồng về di động của người sử dụng khi và chỉ chỉ
khi tính tương đồng thể hiện trong dữ liệu huấn luyện.
Tác giả thấy được sự đảm bảo về hiệu suất trên lý thuyết cho các dự đoán được
đưa ra theo các thuật toán CAMP. Đặc biệt, tác giả còn cho thấy rằng CAMP có thể
đạt được hiệu suất của một yếu tố dự báo tối ưu (trong số các bộ của tất cả các dự
đoán) khi số lượng người dùng tăng trưởng lớn, và cho một lớp lớn của các mô hình
di động.
Cuối cùng, chúng ta so sánh hiệu suất thuật toán dự đoán của tác giả với thuật
toán dự đoán khác hiện có và sử dụng hai bộ dữ liệu di động quy mô lớn (tương ứng
với một mạng Wi-Fi và mạng di động, tương ứng). CAMP được đánh giá nhanh
hơn so với các dự đoán hiện có, và đặc biệt thuật toán này không chỉ khai phá dữ
liệu quá khứ của các cá nhân mà còn dùng để dự đoán vị trí tiếp theo của người
dùng.


13

2.3 Thuật toán đề xuất: K-Means Based Cluster Aided Mobility
Prediction (KM-CAMP)
Đối với những người dùng có dữ liệu di chuyển trong quá khứ tương đối nhiều,
chúng ta có thể dự đoán sự di chuyển của họ dựa trên thói quen di chuyển trong quá
khứ. Tuy nhiên đối với những người dùng mà chúng ta có dữ liệu di chuyển tương
đối ít thì phương pháp dự đoán dựa trên thói quen trong quá khứ thường không hiệu
quả. Trong bài báo [4] Jaeseong Jeong, Mathieu Leconte and Alexandre Proutiere
(2016), “Cluster-Aided Mobility Predictions” được nêu ở mục 2.2, tác giả đề xuất
phương pháp dự đoán hướng di chuyển của người dùng dựa trên sự tương đồng về
quỹ đạo di chuyển với những người dùng khác. Tuy nhiên thuật toán được sử dụng
trong việc gom nhóm các quỹ đạo là Dirichlet Process mixture model (DPMM) - một
thuật toán tương đối khó, và hiện tại có rất ít công cụ có thể hỗ trợ chạy được thuật
toán toán này. Đồng thời, tác giả sử dụng dữ liệu người dùng thu thập từ các trạm

phát sóng điện thoại, dữ liệu này chỉ có tác dụng hỗ trợ dự đoán để điều tải đối với
các trạm phát sóng, còn việc dự đoán sự di chuyển của người dùng trong thực tế sẽ
không khả thi do tính cố định và khoảng cách của các trạm phát sóng khá xa nhau.
Ví dụ, nếu muốn dự đoán điểm di chuyển tiếp theo của một người dùng bất kỳ, với
dữ liệu hiện tại, chỉ có thể đoán được họ sẽ đến khu vực của trạm phát sóng nào và
nếu dự đoán đúng thì khoảng cách từ trạm phát sóng đến điểm đến thực tế có thể có
độ lệch khá xa.
Do vậy, thuật toán K-means được đề xuất để gom nhóm quỹ đạo người dung
trong luận văn. K-means là một thuật toán quan trọng và được sử dụng rất phổ biến
hiện nay trong kỹ thuật phân cụm. Ý tưởng cụ thể của thuật toán như sau:
Chúng ta gom nhóm những người dùng trong cơ sở dữ liệu thành các nhóm khác
nhau, dựa trên sự tương đồng về quỹ đạo di chuyển của họ bằng cách sử dụng thuật
toán K-means. Khi muốn dự đoán vị trí di chuyển tiếp theo của người dùng bất kỳ,
chúng ta sẽ xem xét đồng thời thói quen di chuyển trong quá khứ của họ (nếu có đủ
dữ liệu) và thói quen di chuyển của những người dùng khác cùng nhóm. Từ đó, đưa
ra hướng dự đoán vị trí di chuyển tiếp theo của người dùng đang xét. Như vậy
chúng ta sẽ phần nào khắc phục được vấn đề không đủ cơ sở để đưa ra dự đoán cho
vị trí tiếptheo khi dữ liệu của người dùng đang xem xét không đủ để tạo thành cơ sở
cho việc dự đoán.


14

Sau khi sử dụng K-means để phân nhóm người dùng dựa trên quỹ đạo của họ,
thuật toán dựa trên tỷ lệ di chuyển của những người dùng trong cùng nhóm với đối
tượng đang xét được áp dụng để đưa ra kết quả dự đoán.
Trình tự thực hiện thuật toán được thể hiện lại như sau:
Chuyển đổi
dữ liệu người
dùng về dạng

phù hợp để
áp dụng thuật
toán gom
nhóm Kmeans

Sử dụng Kmeans để gom
nhóm người
dùng dựa trên
quỹ đạo di
chuyển của họ

Dựa trên dữ
liệu đã gom
nhóm, dự
đoán kết quả

Đưa ra kết
quả

2.3.1 Chuyển đổi dữ liệu người dùng về dạng phù hợp để áp dụng thuật
toán K-means
Bộ dữ liệu GPS được đề xuất là tập hợp các vị trí di chuyển liên tục của người
dùng, được ghi nhận lại từ thiết bị di động của họ. Tuy nhiên, nếu sử dụng luôn dữ
liệu này để tạo thành quỹ đạo di chuyển của người dùng thì sẽ gặp khó khăn trong
việc gom nhóm, nguyên nhân là vì khoảng cách giữa 2 trị trí GPS cách nhau khá
ngắn, ví dụ 2 người cùng ở 1 toà nhà nhưng có thể vị trí được thể hiện trên toạ độ
GPS là 2 vị trí khác nhau. Do đó, để dễ dàng hơn, bản đồ GPS sẽ được chia ra thành
một dạng lưới vuông, kích thước các mắt lưới là một tham số được cài đặt cố định
(minh họa bằng hình 2.6). Tất cả các tọa độ GPS trong cùng một ô vuông, được thể
hiện lại bằng một vị trí duy nhất. Đây là một kỹ thuật rất hay được sử dụng trong

các nghiên cứu đối với các dữ liệu dạng GPS. Dự án của Facebook về vấn đề dự
đoán vị trí checkin của người dùng [14] là một ví dụ điển hình nhất cho kỹ thuật
chia lưới này.


15

Hình 2.6: Hệ toạ độ GPS được chia theo cách mới.

Sau khi chia lưới lại bản đồ (hình 2.6), dữ liệu GPS của người dùng sẽ được
chuyển sang hệ toạ độ mới. Các ô vuông trên lưới sẽ được đánh chỉ mục index từ
1,2,3....n. Như vậy, quỹ đạo mới của người dùng khi di chuyển từ điểm A đến điểm
B sẽ được chuyển thành Index(i) đến Index(j).
Hình minh họa 2.7 dưới đây chỉ rõ cách thể hiện quỹ đạo của một người dùng
theo cách chia mới.

Hình 2.7: Minh hoạ cách tạo quỹ đạo di chuyển theo hệ toạ độ mới.

Sau khi có được quỹ đạo di chuyển theo hệ toạ độ mới, sự di chuyển người dùng
từ điểm A đến điểm B được xem như một thói quen di chuyển, vấn đề mấu chốt là
cần làm thế nào để chuyển các thói quen di chuyển thành thuộc tính (attribute) phục
vụ cho việc gom nhóm bằng K-means. Trong luận văn, vấn đề này được xử lý như


16

sau: từ ma trận thể hiện quỹ đạo (A) của người dùng, Một ma trận mới (B) được tạo
ra để thể hiện thói quen di chuyển của người dùng. Với công thức: khi người dùng
đi từ điểm i đến điểm j trong hệ toạ độ A, thì khi qua hệ toạ độ mới B, dữ liệu sẽ
được thể hiện thành 1 điểm duy nhất là B(i,j).


Hình 2.8: Cách chuyển dữ liệu di chuyển sang hệ toạ độ thói quen di chuyển.

Hình 2.8 minh hoạ cách thức chuyển đổi từ hệ toạ độ di chuyển sang hệ toạ độ
thói quen di chuyển của người dùng. Tại hệ toạ độ A, người dùng di chuyển từ vị trí
số 1 đến vị trí số 5 thì qua bên hệ toạ độ thói quen di chuyển B, sự di chuyển này
được thể hiện bằng điểm có vị trí là B(1,5), (được tô màu đỏ, vị trí số 5). Tương tự,
với sự di chuyển từ vị trí số 3 đến vị trí số 6 sẽ được thể hiện bên hệ toạ độ mới là
B(3,6) (vị trí số 24).
Với cách chuyển dữ liệu di chuyển sang hệ toạ độ di chuyển như hình minh hoạ
trên. Chúng ta sẽ thể hiện các thói quen di chuyển của một người dùng bằng một
vector duy nhất dạng [1,3,4,6,19...n]. Trong đó mỗi phần tử trong vector là 1 vị trí
trên hệ toạ độ thói quen duy chuyển B.
Ứng với mỗi người dùng, chúng ta sẽ có 1 vector thể hiện các thói quen di
chuyển của họ. Tập hợp các vector này lại, chúng ta sẽ tạo thành một bộ dữ liệu phù
hợp để áp dụng vào thuật toán gom nhóm K-means.
Sau đây là đoạn mã giả thể hiện ý tưởng mà luận văn giải thích ở phần trên.


17
Algorithm 1: Convert to K-means data format
Input: d, GPS_data,m=maxlatitude/d;
Step 1: Chuyển dữ liệu GPS_data của người dùng sang dạng index.
Vector v = int[];
for i = 0; i< GPS_data.length; i++
a = GPS_data[i].latitude/d;
b = GPS_data[i].longitude/d;
index = ((a-1)*m) + b;
push(v,index);
end

Step 2: Chuyển vector dữ liệu di chuyển thành vector thói quen di chuyển.
Vector data = int[];
w = m*m;
preIndex = -1;
for I = 0; I < v.length; i++
if preIndex == -1
preIndex = v[i];
else
push(data, (preIndex-1)*w + v[i]);
preIndex = v[i];
end
end
Output: data

2.3.2 Dự đoán vị trí di chuyển tiếp theo của người dùng dựa trên kết quả
gom nhóm bằng thuật toán K-means
Sau khi chạy K-means trên bộ dữ liệu vừa tạo, chúng ta sẽ phân nhóm được
người dùng. Bước chạy K-means tốn khá nhiều thời gian do chúng ta phải chuyển
đổi dữ liệu người dùng bằng thuật toán Algorithm 1, sau đó gom tất cả các vector
dữ liệu lại thành bộ data, từ bộ data này chúng ta mới áp dụng thuật toán K-means
để phân nhóm người dùng. Như vậy, khi muốn dự đoán sự di chuyển của một user
nào đó, chúng ta sẽ sử dụng kết quả K-means mà chúng ta đã chạy sẵn.
Giả sử, người dùng A, đang ở vị trí x, muốn dự đoán vị trí di chuyển tiếp theo
của A, ta sẽ xét thói quen di chuyển của tất cả người dùng cùng nhóm với A đồng
thời kết hợp với dữ liệu di chuyển trong quá khứ của A. Chúng ta sẽ có được danh
sách tất cả các điểm mà A và người dùng cùng nhóm với A có khả năng di chuyển


18


đến. Thuật toán dự đoán sẽ quy định mỗi lần di chuyển từ x đến điểm tiếp theo của
người dùng chung nhóm với A là 1 điểm, và mỗi lần di chuyển từ điểm x đến điểm
tiếp theo của A là 1+ n điểm. Như vậy, nếu trong quỹ đạo quá khứ của A, nếu đã
từng di chuyển từ điểm x đến điểm x1, thì khả năng A sẽ lặp lại sự di chuyển trong
quá khứ cao hơn sự di chuyển theo người khác.
Cuối cùng, chúng ta sẽ có một danh sách các điểm x1 mà A và người dùng chung
nhóm với A sẽ di chuyển tới. Kèm theo mỗi điểm được dự đoán đó là một trọng số.
Xét khả năng di chuyển từ điểm x đến điểm x1 tiếp theo nào có trọng số cao nhất thì
xuất ra kết quả dự đoán là điểm đó.
Ví dụ, từ điểm x, sau khi xét thói quen di chuyển của những người cùng nhóm
với A (nhóm có 100 người), ta có tập các điểm j có khả năng A sẽ di chuyển đến là
{j1, j2, j3, j4} với trọng số đến j1 = 20, j2 = 15,j3 = 40, j4 =25. Ta sẽ đưa ra kết quả dự
đoán điểm tiếp theo A sẽ có khả năng di chuyển đến là j3 với số điểm cao nhất là 40.
Mã giả thể hiện ý tưởng của thuật toán dự đoán:
Algorithm 2: Dự đoán điểm di chuyển tiếp theo
Input: listUserSameGroup, currentUser; currentIndex;
Haskey ;
for i=0; i< listUserSameGroup.length; i++
trajectory = QuyDaoCuaUser(listUserSameGroup[i]);
flag = 0;
foreach index in trajectory
if index == currentIndex
flag = 1;
else if flag == 1
flag = 0;
Haskey(index,Haskey[index]+1);
end
end
trajectory = QuyDaoCuaUser(currentUser);
foreach index in trajectory

if index == currentIndex
flag = 1;
else if flag == 1
flag = 0;
Haskey(index,Haskey[index]+2);
end
end
end
Output: index có giá trị cao nhất trong Haskey

Chương 3 - KẾT QUẢ THỰC NGHIỆM


19

3.1 Giới thiệu ngôn ngữ Julia - ngôn ngữ dùng để thể hiện thuật toán
Trong quá trình thực hiện đề tài, ngôn ngữ lập trình Julia Language được đề xuất
để thể hiện thuật toán trong luận văn, đây là một ngôn ngữ lập trình cấp cao, năng
động với hiệu suất cao cho máy tính kỹ thuật, với cú pháp quen thuộc cho người sử
dụng trong môi trường điện toán kỹ thuật. Nó cung cấp một trình biên dịch phức
tạp, phân phối thực hiện song song, một thư viện tính năng toán học rộng lớn.

3.2 Giới thiệu bộ dữ liệu GPS sử dụng trong thuật toán
Dữ liệu được sử dụng trong thuật toán [13] đề xuất là bộ dữ liệu các quỹ đạo
GPS đã được thu thập trong dự án Geolife do trung tâm nghiên cứu của Microsoft
tại Châu Á tiến hành. Dữ liệu được thu thập của 182 người tham gia nghiên cứu
trong khoảng thời gian hơn 3 năm (từ tháng 4/2007 đến tháng 8/2012). Quỹ đạo
GPS trong bộ dữ liệu này thể biện các vị trí được đánh dấu tuần tự theo thời gian,
thông tin của mỗi vị trí này bao gồm vĩ độ, kinh độ và độ cao.


3.3 Các kịch bản thử nghiệm
Vì vấn đề thời gian và hạn chế về kinh nghiệm, luận văn không thể tái hiện lại 2
thuật toán Khai phá dữ liệu và Bayesian phi tham số kết hợp với DPMM để so sánh
với ý tưởng đã đề xuất. Do vậy, 2 phương pháp dự đoán cơ bản khác được đề xuất
và thể hiện cũng bằng ngôn ngữ Julia được trình bày như sau:
-

Phương pháp Random Walk: Phương pháp này dựa theo cách chọn ngẫu
nhiên một vị trí bất kỳ trong số các vị trí mà người dùng có khả năng di
chuyển đến. Cụ thể từ điểm đang xét A trong hệ toạ độ di chuyển, người dùng
sẽ có khả năng di chuyển đến 8 điểm xung quanh điểm A (hình 3.4). Xác xuất
dự đoán đúng là 1/8 = 12.5%.


20

Hình 3.4: Phương pháp Random Walk, khả năng di chuyển của người dùng từ vị trí
A đến vị trí tiếp theo.
# Hàm dự đoán vị trí di chuyển tiếp theo của người dùng dựa trên ý
tưởng Random Walk
function RandomWalkPredict(current_index)
random_index = rand([1,2,3,4,5,6,7,8]);
return GetIndexOfPredictPosition(current_index,random_index);
end
# Hàm GetIndexOfPredictPosition sẽ dựa vào giá trị của random_index để
trả về vị trí của điểm đang dự đoán

Đoạn mã giả sau mô tả cách chọn ra vị trí có thể di chuyển tiếp theo của người
dùng dựa trên ý tưởng Random Walk.
-


Phương pháp Follow The Ground (Phương pháp dự đoán dựa trên số
đông): tại một điểm A trên quỹ đạo của một user, để dự đoán điểm đến tiếp
theo, chúng ta sẽ xem xét quỹ đạo của tất cả các user có trong cơ sở dữ liệu,
thống kê tỷ lệ di chuyển từ điểm A đến các điểm lân cận. Điểm lân cận nào có
tỷ lệ di chuyển cao nhất từ điểm A sẽ được lựa chọn là điểm đến tiếp theo.


21

# Hàm dự đoán vị trí di chuyển tiếp theo của người dùng dựa theo thói
quen di chuyển của số đông người dùng.
function FollowTheGroundPredict(current_index)
predictNextIndexList = Dict();
for u in userListAll
var predict_index = GetNextPositionOfUser(u,current_index);
if(haskey(predictNextIndexList,predict_index))
count = predictNextIndexList[predict_index];
predictNextIndexList[predict_index] = count + 1;
else
predictNextIndexList[predict_index] = 1;
end
end
predict_index_result = GetMaximumIndex(predictNextIndexList);
return predict_index_result;
end
# Hàm GetIndexOfPredictPosition sẽ dựa vào giá trị của random_index để
trả về vị trí của điểm đang dự đoán

Trong quá trình chạy thử nghiệm, vì lý do hạn chế về bộ nhớ xử lý, nên đối với

một số người dùng có dữ liệu di chuyển quá lớn, thuật toán feature hashing đã được
áp dụng để giảm kích thước của vector thể hiện thói quen di chuyển của người
dùng. Việc sử dụng feature hashing giúp thể hiện dữ liệu ma trận lớn thành một ma
trận nhỏ hơn nhưng vẫn đảm bảo được tính chất và thể hiện đầy đủ về mặt dữ liệu
của ma trận sau khi chuyển đổi.

3.4 Một số kết quả thử nghiệm
Thực nghiệm và so sánh kết quả của 2 phương pháp dự đoán cơ bản và phương
pháp dự đoán mà luận văn đã đề xuất, với số lần dự đoán của mỗi thuật toán là 20
lần, kết quả thử nghiệm được thể hiện trong bảng kết quả 3.1 và biểu đồ trong hình
3.5 như sau.


22
Bảng 3.1: Dữ liệu thống kê sau khi chạy thử nghiệm các thuật toán dự đoán

n

Random

Follow The

Walking

Ground

KM-CAMP

1


12.85

32.96

68.68

2

10.61

34.63

64.28

3

9.49

35.75

61.54

4

10.61

36.87

66.48


5

17.31

36.87

68.13

6

10.05

28.49

68.68

7

11.73

39.1

63.18

8

15.08

37.98


61.53

9

19.55

36.21

59.34

10

10.61

34.07

59.89

11

8.93

32.96

62.08

12

14.52


33.79

60.43

13

11.79

32.83

60.43

14

10.73

35.34

58.24

15

14.68

35.16

65.38

16


8.52

35.64

61.53

17

9.65

35.26

64.83

18

10.79

25.26

58.24

19

11.36

34.5

57.14


20

10.79

34.12

60.99


×