CHỨNG THỰC NGƯỜI DÙNG QUA ĐẶC TRƯNG GÕ PHÍM
 
 
VÕ LÊ GIANG
 
Trang nhan đề 
Lời cảm ơn 
Mục lục 
Danh mục 
Chương 1: Mở đầu 
Chương 2: Hiện trạng 
Chương 3: Mô hình chứng thực đề xuất 
Chương 4: Thực nghiệm 
Chương 5 Kết luận và hướng phát triển 
Tài liệu tham khảo 
Phụ lục 
Mc lc
Danh mc hình . 1
CH!"NG 1M dâu 2
1.1 Dat vân dê . 2
1.2 Mc tiêu 3
1.3 Noi dung nghiên cu . 3
1.4 Dóng góp ca luan van . 4
1.5 Bô cc ca luan van 4
CH!"NG 2Hien trng . 6
2.1 Cách tiêp can do do . 6
2.2 Cách tiêp can máy hc 8
2.3 Các cách tiêp can khác 11
CH!"NG 3Mô hình chng th
c dê xuât . 15
3.1 Keystroke dynamic 15
3.2 C chê chng th
c . 21
3.3 Mô hình chng th
c 23
3.4 User profile . 25
3.4.1 Câu trúc User profile . 26
3.4.2 Khi to User profile 28
3.4.3 Cap nhat User profile 29
3.4.3.1 Phn hôi t ng minh (Explicit feedback) . 30
3.4.3.2 Phn hôi tiêm an (Implicit feedback) 30
3.4.3.3 Phng pháp kêt h p 30
3.4.4 Khai thác User profile . 31
3.4.5 Mô hình User profile trong chng th
c keystroke dynamics 31
3.4.5.1 Câu trúc . 31
3.4.5.2 Khi to 34
3.4.5.3 Cap nhat/Khai thác 34
3.5 Mô hình GA-SVM 35
3.5.1 Thuat gii di truyên . 35
3.5.2 Support vector machine 36
3.6 Mô hình kêt h p User profile-GA-SVM 41
3.6.1 Câu trúc . 41
3.6.2 Giai don khi to . 42
3.6.3 Giai don khai thác 44
3.6.4 Giai don cap nhat . 46
3.7 Phng pháp dánh giá 48
CH!"NG 4 Th
c nghiem . 51
4.1 Thu thap d lieu . 51
4.2 Rút trích dac trng . 52
4.3 Câu trúc User profile . 54
4.4 Huân luyen và kiem tra . 56
4.4.1 Trên bàn phím máy tính 56
4.4.1.1 Two - class SVM . 57
4.4.1.2 GA - Two-Class SVM 58
4.4.1.3 GA - One-Class SVM . 62
4.4.2 Trên dien thoi di dong . 64
4.4.2.1 GA-Two-class SVM . 64
4.4.2.2 GA-One-class SVM 65
4.5 Nhan xét kêt qu 65
CH!"NG 5Kêt luan và h
ng phát trien 67
Tài lieu tham kho . 68
Ph lc 72
A. Xuât x ca bàn phím bàn phím Dvorak 72
B. S dô tóm tat các phng pháp chn dac trng 73
C. S dô tóm tat các cách tiêp can trong bài toán keystroke dynamic 74
                
              
                                            
                                
            
 
            
                
36 trang | 
Chia sẻ: maiphuongtl | Lượt xem: 2160 | Lượt tải: 0
              
            Bạn đang xem trước 20 trang tài liệu Luận văn Chứng thực người dùng qua đặc trưng gõ phím, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
15 
CHƯƠNG 3 Mô hình chứng thực đề xuất 
3.1 Keystroke dynamic 
Keystroke dynamic (gọi tắt là keystroke) là sự bấm trên bàn phím (sự gõ phím). 
Hình 3.1 - Hai trạng thái trong keystroke dynamic 
Khi người dùng tương tác với một phím, phím sẽ thay đổi trạng thái (nổi lên hay 
chìm xuống). 
Trạng thái ban đầu Thao tác Trạng thái kết quả 
Nổi Ấn phím Chìm 
Chìm Nhả phím Nổi 
A B
C
Thời gian
Ấn Nhả Ấn Nhả
Ấn Nhả
Key
Hình 3.2 - Trình tự bấm phím “abc” được biểu diễn theo thời gian 
Ấn 
ả 
Chìm 
Nổi 
Nổi 
Chìm 
16 
Keystroke authentication là sự chứng thực người dùng qua thao tác (thói quen) gõ 
phím. Nói cách khác là chứng thực người dùng qua những đặc trưng gõ phím riêng 
biệt của từng người. 
Thông qua việc ghi nhận thời điểm của 2 trạng thái ấn/nhả, các đặc trưng trong thao 
tác gõ phím của người dùng sẽ được ghi nhận trực tiếp gồm [15]: 
Thứ 
tự 
Đặc trưng Ý nghĩa Nội dung Ghi chú 
1 Duration Thời gian 
ấn giữ 
phím 
Khoảng thời gian từ 
thời điểm ấn phím đến 
thời điểm nhả phím 
Duration ≥ 0 
2 Latency Khoảng 
thời gian 
giữa 2 
phím liền 
kề 
Khoảng thời gian từ 
thời điểm nhả phím 
liền trước đến thời 
điểm ấn phím liền sau 
Latency < 0: Phím liền sau 
được ấn trước khi phím liền 
trước được nhả 
Latency ≥ 0: Phím liền sau 
được ấn sau khi phím liền 
trước được nhả 
3 Latency 
DownDown 
Khoảng 
thời gian 
giữa 2 lần 
ấn phím 
liền kề 
Khoảng thời gian từ 
thời điểm ấn phím liền 
trước đến thời điểm ấn 
phím liền sau 
LatencyDownDown ≥ 0 
4 Latency 
UpUp 
Khoảng 
thời gian 
giữa 2 lần 
nhả phím 
liền kề 
Khoảng thời gian từ 
thời điểm nhả phím 
liền trước đến thời 
điểm nhả phím liền sau 
LatencyUpUp ≥ 0 
5 ErrorRate Tần suất 
lỗi 
Tỉ lệ phím xóa lỗi 
(backspace, delete) trên 
tổng số phím đã ấn 
ErrorRate ≥ 0 
6 Release 
Prior 
Thứ tự 
nhả phím 
Tỉ lệ Latency < 0 trên 
Latency ≥ 0 
ReleasePrior ≥ 0 
17 
Hình 3.3 - Đặc trưng Duration và Latency thu được 
DurationA = (Thời điểm nhả phím A - Thời điểm ấn phím A) (mili seconds) 
LatencyAB = (Thời điểm ấn phím B - Thời điểm nhả phím A) (mili seconds) 
Danh sách đặc trưng thu được như sau: 
Đặc trưng Giá trị (ms) 
DurationA 0.046 
LatencyAB 0.051 
DurationB 0.108 
LatencyBC -0.040 
DurationC 0.062 
Ngoài ra còn có đặc trưng gián tiếp là các đặc trưng được suy ra từ những đặc trưng 
trực tiếp như: 
Thứ 
tự 
Đặc 
trưng 
Ý nghĩa Nội dung Ghi chú 
1 Latency 
Trigraph 
Khoảng thời gian 
giữa 3 phím liền kề 
Khoảng thời gian từ thời điểm 
nhả phím thứ nhất đến thời điểm 
ấn phím thứ 3 
Latency 
Trigraph ≥ 0 
2 Latency 
Teragrap
h 
Khoảng thời gian 
giữa 4 phím liền kề 
Khoảng thời gian từ thời điểm 
nhả phím thứ nhất đến thời điểm 
ấn phím thứ 4 
Latency 
Teragraph ≥ 0 
18 
3 Latency 
Digraph 
Line0 
Khoảng thời gian 
giữa 2 phím liền kê 
trên hàng phím thứ 
nhất 
Khoảng thời gian từ thời điểm 
nhả phím liền trước đến thời 
điểm ấn phím liền sau, chỉ tính 
khi 2 phím cùng trên hàng 1 
Latency 
Digraph 
Line0 ≥ 0 
4 Latency 
Digraph 
Line1 
Khoảng thời gian 
giữa 2 phím liền kề 
trên hàng phím thứ 
hai 
Khoảng thời gian từ thời điểm 
nhả phím liền trước đến thời 
điểm ấn phím liền sau, chỉ tính 
khi 2 phím cùng trên hàng 2 
Latency 
Digraph 
Line1 ≥ 0 
5 Latency 
Digraph 
Line2 
Khoảng thời gian 
giữa 2 phím liền kề 
trên hàng phím thứ 
ba 
Khoảng thời gian từ thời điểm 
nhả phím liền trước đến thời 
điểm ấn phím liền sau, chỉ tính 
khi 2 phím cùng trên hàng 3 
Latency 
Digraph 
Line2 ≥ 0 
6 Latency 
Digraph 
Line3 
Khoảng thời gian 
giữa 2 phím liền kề 
trên hàng phím cuối 
Khoảng thời gian từ thời điểm 
nhả phím liền trước đến thời 
điểm ấn phím liền sau, chỉ tính 
khi 2 phím cùng trên hàng cuối 
Latency 
Digraph 
Line3 ≥ 0 
7 Latency 
Digraph 
Cluster0 
Khoảng thời gian 
giữa 2 phím liền kề 
trên nhóm phím bên 
trái 
Khoảng thời gian từ thời điểm 
nhả phím liền trước đến thời 
điểm ấn phím liền sau, chỉ tính 
khi 2 phím cùng nhóm phím bên 
trái 
Latency 
Digraph 
Cluster0 ≥ 0 
8 Latency 
Digraph 
Cluster1 
Khoảng thời gian 
giữa 2 phím liền kề 
trên nhóm phím 
trung tâm 
Khoảng thời gian từ thời điểm 
nhả phím liền trước đến thời 
điểm ấn phím liền sau, chỉ tính 
khi 2 phím cùng nhóm phím 
trung tâm 
Latency 
Digraph 
Cluster1 ≥ 0 
9 Latency 
Digraph 
Cluster2 
Khoảng thời gian 
giữa 2 phím liền kề 
trên nhóm phím bên 
phải 
Khoảng thời gian từ thời điểm 
nhả phím liền trước đến thời 
điểm ấn phím liền sau, chỉ tính 
khi 2 phím cùng nhóm phím bên 
phải 
Latency 
Digraph 
Cluster2 ≥ 0 
10 Fixing 
Type 
Thói quen sửa lỗi 
gõ phím 
Tỉ lệ % sử dụng phím Delete và 
BackSpace trên tổng số phím 
xóa 
% 
11 Upper 
Case 
Thói quen viết hoa Tỉ lệ sử dụng phím Shift và 
CapsLock trên tổng số phím viết 
hoa 
% 
19 
12 Number 
Key 
Thói quen sử dụng 
phím số 
Tỉ lệ sử dụng phím số trên hàng 
ngang và phím số trên bàn phím 
NumLock trên tổng số phím số 
% 
Mỗi người dùng khác nhau sẽ có một đặc trưng (phong cách) gõ phím khác nhau 
[2][3][4]. Ví dụ: 
- Người gõ phím bằng một ngón tay thì không xuất hiện hiện tượng phím 
trước chưa nhả - phím sau đã ấn (hiện tượng chồng phím) nên Latency luôn 
dương (Latency ≥ 0), ngược lại người gõ phím nhanh thì hiện tượng chồng 
phím (Latency < 0) sẽ xảy ra thường xuyên hơn. 
- Người mới gõ phím thì khả năng gõ lỗi sẽ cao hơn người gõ lâu năm. 
- Người gõ nhanh thì thời gian ấn giữ phím (Duration) cũng nhỏ hơn so với 
người gõ chậm. 
Các đặc trưng sinh trắc học như vân tay, tròng mắt hay đặc điểm khuôn mặt của con 
người thường ổn định trong thời gian dài (vài tháng, vài năm). Riêng các đặc trưng 
gõ phím là không ổn định ngay cả trong thời gian ngắn (vài giờ). Với một mật khẩu 
mới đặt, ban đầu chưa quen, người dùng sẽ gõ không nhanh và hay mắc lỗi, nhưng 
sau vài lần lặp lại, tốc độ gõ và độ chính xác sẽ tăng lên. Ngoài ra, cùng một người, 
đặc trưng gõ phím có thể khác nhau phụ thuộc vào tư thế gõ (đứng/ngồi), sức khỏe 
(sảng khoái/mệt mỏi), độ tập trung (đang nói chuyện/chú tâm), cấu trúc bàn phím 
thay đổi khác nhau (qwerty, dvorak), ... 
Hình 3.4 - Bàn phím QWERTY 
20 
Hình 3.5 - Bàn phím Dvorak 
Những người làm cùng công việc như kế toán, lập trình, thư kí, … thường có đặc 
trưng gõ phím gần giống nhau. Giá trị các đặc trưng phân bố khuếch tán, không có 
phân hoạch rõ ràng. Việc sử dụng các phương pháp phân lớp thông thường là không 
khả thi. Ví dụ khi theo dõi 3 đặc trưng Duration, Latency, ErrorRate, xem mỗi bộ 3 
giá trị (Duration, Latency, ErrorRate) là một điểm trong không gian 3 chiều, ta có 
biểu đồ sau: 
Hình 3.6 - Đồ thị minh họa vector keystroke 
Trên đây là những thách thức của bài toán chứng thực người dùng qua keytroke 
dynamic. Để giải quyết các vấn đề này mô hình chứng thực đòi hỏi phải uyển 
chuyển, có khả năng thích nghi cao với những thay đổi thói quen của người dùng 
trong thời gian ngắn và giải quyết được vấn đề khuếch tán của dữ liệu. Mô hình dữ 
liệu User profile kết hợp với mô hình chứng thực GA – SVM là mô hình chứng 
thực được đề xuất trong luận văn này. 
21 
3.2 Cơ chế chứng thực 
Sử dụng cơ chế chứng thực 3 giai đoạn [15]: 
22 
Giai đoạn 1: Huấn luyện 
Để thu thập mẫu, người dùng được yêu cầu nhập 2 phần: 
- Một đoạn văn bản n lần trên chính bàn phím của thiết bị cần chứng thực, với 
n là số lượng mẫu cần thu thập để huấn luyện. Các thao tác gõ phím được ghi 
lại gồm nội dung phím, thời điểm ấn phím, thời điểm nhả phím. Đây là dữ 
liệu thô ban đầu. 
- Mã PIN, được yêu cầu nhập tương tự như trên. 
Dữ liệu thô sau đó sẽ được rút trích thành tập đặc trưng gõ phím của từng người. 
Đặc trưng gõ phím của đoạn văn bản sẽ được dùng làm mẫu huấn luyện cho giai 
đoạn chứng thực bị động. Đặc trưng gõ phím của PIN dùng làm mẫu huấn luyện 
cho giai đoạn chứng thực chủ động. 
Giai đoạn 2: Chứng thực bị động 
Người dùng sau giai đoạn nhập mẫu huấn luyện sẽ sử dụng hệ thống bình thường và 
được chứng thực ngầm thời gian thực. Hệ thống chứng thực được chạy ngầm, tự 
động thu thập đặc trưng thông qua thao tác của người dùng trên bàn phím. Sau một 
số lượng phím cho trước, hệ thống chứng thực sẽ tổng hợp các đặc trưng này, 
chuyển thành vector đặc trưng tại thời điểm hiện tại (instance vector). Module xác 
thực sẽ kiểm tra độ sai khác đặc trưng của vector này so với các đặc trưng được 
huấn luyện. Nếu sai khác dưới một ngưỡng θ cho trước thì người dùng xem như 
hợp lệ và tiếp tục sử dụng hệ thống. Ngược lại, hệ thống sẽ chuyển sang giai đoạn 3 
(giai đoạn chứng thực chủ động). 
Giai đoạn 3: Chứng thực chủ động 
Một form xác thực mã số cá nhân (PIN) hiển thị, người dùng được yêu cầu nhập 
PIN để xác thực. Trong quá trình nhập, ngoài việc thu thập nội dung PIN, người 
dùng còn được thu thập cách gõ PIN. Cả 2 dữ liệu này được so sánh với dữ liệu PIN 
đã thu thập trong giai đoạn huấn luyện. Nội dung PIN phải giống nhau, cách gõ PIN 
được module xác thực so sánh với đặc trưng đã có, nếu độ sai khác dưới ngưỡng δ 
cho trước thì người dùng xem như vẫn hợp lệ và hệ thống chuyển về giai đoạn 2, 
tiếp tục chứng thực bị động thời gian thực, ngược lại hệ thống sẽ tiếp tục khóa. Cơ 
23 
chế này giúp hệ thống an toàn hơn trước việc hack PIN. Đây có thể xem là tuyến 
phòng thủ cuối cùng của quá trình chứng thực. 
Với cơ chế chứng thực kép, hệ thống vừa tiện dụng đối với người dùng bằng cơ chế 
chứng thực ngầm, vừa đủ an toàn trước tấn công chủ động (active attack) lẫn tấn 
công bị động (passive attack). 
3.3 Mô hình chứng thực 
Chứng thực là vấn đề phân lớp hay nhận dạng mẫu. Phân biệt giữa người dùng hợp 
lệ và người dùng không hợp lệ (Legitimate users – Imposter users). Mẫu được sử 
dụng trong trường hợp này là các đặc trưng gõ phím. Để kết quả chứng thực được 
chính xác thì mẫu phải đồng nhất và có sự phân biệt. Tuy nhiên, trong keystroke 
dynamic việc các mẫu đồng nhất và phân biệt là không khả thi. Dữ liệu luôn khuếch 
tán. Vì vậy cần có một cơ chế tiền xử lý mẫu để quá trình phân biệt được thực hiện 
dễ dàng hơn. 
Có 2 cách giải quyết vấn đề tiền xử lý mẫu [23] (Xem thêm phụ lục B): 
- Tiền xử lý bằng tay: tìm kiếm và so sánh, từ đó bỏ những mẫu mâu thuẫn với 
các mẫu khác. Đây là phương pháp mang tính chủ quan, chậm, không hiệu 
quả. 
- Tiền xử lý tự động: có 3 phương pháp 
• Tìm vét cạn (Complete search) 
• Tìm ước lượng (Heuristic search) 
• Tìm ngẫu nhiên (Random search) 
Phương pháp tìm kiếm vét cạn đảm bảo tìm ra tập con tốt nhất nhưng đánh đổi lại là 
không gian tìm kiếm lớn, hiệu suất thực hiện sẽ tỉ lệ nghịch với lượng dữ liệu và số 
lượng đặc trưng O(2N). Một số phương pháp như: Branch and bound, Beam search. 
Phương pháp tìm kiếm ước lượng cho phép tối ưu hóa không gian tìm kiếm nhưng 
có thể bỏ mất kết quả tốt nhất và cần phải có một hàm h() có yếu tố kinh nghiệm để 
ước lượng kết quả. Độ phức tạp của phương pháp này là O(N2). Một số phương 
pháp như: Sequential forward selection, Sequential backward elimination, Bi-
directional selection. 
24 
Phương pháp tìm kiếm ngẫu nhiên bắt đầu với một tập con ngẫu nhiên sau đó xử lý 
theo 2 cách: 
- Filter: theo một điều kiện cho trước, những đặc trưng không phù hợp với bài 
toán sẽ được lọc bỏ, những đặc trưng phù hợp mới được sử dụng. Một số 
phương pháp như: Random-start hill-climbing, Simulated anealing. 
- Wrapper: tập con sau được phát sinh ngẫu nhiên và hoàn toàn độc lập với tập 
con trước đó, mỗi tập con sẽ được đánh giá qua mô hình học. Từ đó chọn ra 
tập đặc trưng tốt nhất. Một số phương pháp như: Las Vegas algorithm, 
Genetic algorithm, Particle Swarm Optimization. 
Phương pháp này giúp tránh được việc vét cạn và tối ưu cục bộ. Hiệu quả phụ thuộc 
vào tài nguyên sẵn có. 
Bài toán chứng thực keystroke là bài toán chứng thực dựa trên hành vi tự nhiên của 
con người, hành vi này mang tính ngẫu nhiên, không có quy luật do đó mang yếu tố 
kinh nghiệm chủ quan để ước lượng tập đặc trưng tối ưu là không khả thi. Ngoài ra, 
hiệu quả của phương pháp được chọn không được tốn quá nhiều chi phí nhằm đảm 
bảo cho hiệu suất vận hành của cả hệ thống. Từ những điều kiện trên, phương pháp 
tìm kiếm ngẫu nhiên là thích hợp nhất. Trong phương pháp này, cách tiếp cận Filter 
cần phải có một điều kiện (độ đo) thích hợp để chọn lọc đặc trưng [23], tuy nhiên 
việc tìm kiếm điều kiện này là không dễ. Do đó phương pháp wrapper, phương 
pháp chọn đặc trưng qua đánh giá của thuật toán máy học là phù hợp nhất. 
Có nhiều thuật giải hỗ trợ phương pháp trên trong đó thuật giải di truyền (GA) là 
một lựa chọn. 
Support Vector Machine (SVM) với 3 đặc trưng: cực đại hóa lề, mềm hóa lề và các 
hàm kernel có nền tảng toán học vững chắc có thể coi là phương pháp phân lớp tốt 
nhất hiện nay. 
Mô hình chứng thực User profile kết hợp GA – SVM 
25 
Hình 3.7 - Mô hình chứng thực keystroke dynamic 
Các đặc trưng gõ phím sẽ được rút trích và tập hợp từ dữ liệu gõ phím thô. Qua quá 
trình thực hiện của thuật giải di truyền (GA) tập đặc trưng tốt nhất sẽ được chọn 
theo cơ chế đánh giá của SVM. 
Kết quả cuối cùng của mô hình này là SVM model và tập đặc trưng tốt nhất. Cả 2 sẽ 
được lưu vào User profile và dùng cho việc chứng thực. 
3.4 User profile 
User profile (hồ sơ người dùng) là tập hợp các thông tin cá nhân của một người 
dùng cụ thể. 
User profile có thể xem như một thể hiện số (Digital instance) của người dùng, 
ngoài việc chứa thông tin cá nhân còn có thể được sử dụng để lưu trữ những đặc 
trưng cá nhân. Các hệ thống thông tin có thể sử dụng User profile trong tương tác 
người – máy để truy xuất hoặc cập nhật thông tin người dùng. User profile có thể 
tìm thấy trong hệ điều hành (OS), chương trình (Programs), trang web (Websites). 
User profile có 4 vấn đề quan tâm [1]: 
- Cấu trúc 
- Cơ chế khởi tạo 
- Cơ chế khai thác 
26 
- Cơ chế cập nhật 
3.4.1 Cấu trúc User profile 
Cấu trúc User profile là tổ chức của profile. Có nhiều cách tổ chức một User profile. 
Montaner và đồng nghiệp [22] đã tổng hợp một số cách tổ chức thông dụng sau: 
Mô hình thông tin nhân khẩu (Demographic model): 
User profile là một tập hợp các đặc trưng về nhân khẩu (độ tuổi, giới tính, nghề 
nghiệp, nơi cứ trú,…). Đây là mô hình đơn giản nhất, hầu như hệ thống nào cũng có 
thể áp dụng được, tuy nhiên tính hiệu quả không được cao. Thông thường mô hình 
này được dùng kèm với một số mô hình khác. 
Mô hình này sẽ rất hữu ích đối với những người dùng mới, khi đó đặc trưng của 
người dùng hầu như không có gì ngoài các thông tin nhân khẩu. 
Mô hình không gian véc-tơ (Vector space model) 
Profile người dùng được thể hiện bởi véc-tơ những đặc trưng, trong đó thường dùng 
nhất là những từ khoá (Keyword). Các giá trị có thể là kiểu luận lý hoặc một con số. 
Giá trị này thể hiện mức độ quan tâm/ hữu ích của đặc trưng đối với người dùng. 
Mô hình này thích hợp khi cần làm việc với các tài nguyên dạng văn bản (tài liệu, 
trang web, …). 
Ví dụ: Profile(u) = (w1, w2,…wn) , với wi là giá trị thể hiện mức độ hữu ích của đặc 
trưng (thông thường là từ khóa) thứ i đối với người dùng u. 
Mô hình lịch sử khai thác (history-based model) 
Theo cách tiếp cận này, hệ thống sẽ tìm cách khai thác các thông tin từ quá trình 
tương tác của người dùng với hệ thống, chẳng hạn như những mặt hàng người dùng 
đã mua, các đường dẫn URL mà người dùng đã chọn, các thư từ của người dùng 
hay các hành động của người dùng đối với hệ thống để làm profile người dùng. 
Mô hình lịch sử khai thác được ứng dụng rất rộng rãi trong lĩnh vực thương mại 
điện tử, trong đó thông thường hệ thống sẽ ghi nhận lại những sản phẩm người dùng 
27 
đã mua hoặc đã trả lại cùng với đánh giá trên các sản phẩm. Việc lưu trữ trong 
profile những mặt hàng đã mua và đánh giá cao có thể giúp hệ thống suy diễn ra 
những chủng loại hàng yêu thích của người dùng, từ đó có thể tư vấn những mặt 
hàng khác phù hợp với sở thích hay mối quan tâm của người dùng. 
Ma trận đánh giá (user-item rating matrix) 
Là một ma trận hai chiều, một chiều là các người dùng và một chiều là các tài 
nguyên (Item). Giá trị trong ma trận thể hiện đánh giá của người dùng đối với các 
tài nguyên. Các giá trị này phụ thuộc vào từng hệ thống, nhưng thông thường nằm 
trong khoảng từ 1 (xấu) đến 5 (tốt). 
Thông thường các giá trị trong ma trận trên sẽ được cập nhật thủ công bởi người 
dùng, tức là hệ thống sẽ cho người dùng tự đánh giá trên những tài nguyên mà họ đã 
biết (chẳng hạn những phim đã xem hay những sách đã đọc). Tuy nhiên trong một 
số lĩnh vực thì các giá trị này sẽ được hệ thống cập nhật tự động dựa vào các hành 
vi của người dùng, ví dụ như căn cứ vào những sản phẩm mà người dùng đã mua 
trong lĩnh vực bán hàng qua mạng (với giả thiết là chỉ mua những sản phẩm nào 
mình quan tâm hay thích) hoặc căn cứ vào những liên kết, những tài liệu mà người 
sử dụng đã xem trong lĩnh vực tư vấn tài liệu. 
 Item1 Item2 Item3 Item4 
User1 2 2 1 
User2 3 4 2 1 
User3 5 3 
Các mô hình dựa trên bộ phân lớp 
Một số hệ thống tổ chức profile người dùng theo mô hình phục vụ cho việc khai 
thác bằng các phương pháp phân lớp. Tùy theo phương pháp phân lớp mà profile 
người dùng sẽ được tổ chức cho phù hợp. Một số kỹ thuật có thể được dùng là: 
- Cây quyết định: Là một tập hợp các nút và các cạnh được tổ chức theo cấu 
trúc cây. Trong cấu trúc này, mỗi nút trung gian là một câu hỏi, các cạnh là 
các câu trả lời cho câu hỏi này và node lá là quyết định cuối cùng. 
28 
- Luật kết hợp: Theo phương pháp này, người ta sẽ khai thác tập profile của 
người dùng và tìm ra các luật với độ hỗ trợ và độ tin cậy nhất định nào đó. 
Các luật này sẽ được sử dụng để cung cấp tài nguyên cho người dùng thông 
qua những sản phẩm mà họ đã lựa chọn, đánh giá trước đó. 
Ngoài ra một số hệ thống khác tổ chức profile phục vụ cho việc khai thác theo mô 
hình mạng Nơ-ron, mạng Bayes, … 
3.4.2 Khởi tạo User profile 
Khởi tạo User profile là quá trình gán thông tin lần đầu tiên cho profile. Có các cách 
khởi tạo sau: 
Dữ liệu trống (Empty) 
Toàn bộ thông tin ban đầu của User profile là rỗng, nội dung sau đó sẽ được tích lũy 
dần trong quá trình hoạt động thông qua tương tác của người dùng với hệ thống. 
Thủ công (Manual) 
User profile được khởi tạo bằng cách yêu cầu người dùng điền những thông tin cần 
thiết trong quá trình đăng ký như họ tên, tuổi, ngôn ngữ chính, các kĩ năng, kiến 
thức, … 
Phương pháp này có điểm bất lợi là yêu cầu người dùng cung cấp thông tin ban đầu 
quá nhiều, ngoài ra một số thông tin người dùng cung cấp có thể không chính xác vì 
bản thân cũng khó xác định được. Ví dụ người sử dụng gặp rất nhiều khó khăn khi 
mô tả nền tảng kiến thức hay mức độ kĩ năng. 
Theo khuôn mẫu (Stereotyping) 
Hệ thống xây dựng sẵn một số profile mẫu. Từ một số thông tin sở khởi ban đầu 
(tên, tuổi, giới tính, nơi cư trú, nghề nghiệp,…), hệ thống sẽ gán cho người dùng 
một trong số các profile mà hệ thống cho là thích hợp nhất. Phương pháp này sẽ 
hiệu quả khi thông tin nhân khẩu ban đầu được người dùng cung cấp tương đối đầy 
29 
đủ và chính xác. Tuy nhiên thực tế hiện nay, vì các lý do riêng tư cá nhân, người 
dùng rất ngại cung cấp đầy đủ thông chính xác về bản thân cho hệ thống. Đây là 
một trở ngại chính của phương pháp này. 
Sử dụng tập huấn luyện (Training set) 
Hệ thống sẽ tạo một ngữ cảnh/dữ liệu mẫu để người dùng thao tác, đánh giá. Sau đó 
User profile sẽ được khởi tạo bằng cách rút trích các thông tin từ sự tương tác của 
người dùng với hệ thống ngữ cảnh/dữ liệu mẫu này. 
Ví dụ: trong giáo dục, hệ thống sẽ yêu cầu người dùng mới làm bài kiểm tra, sau đó 
hệ thống sẽ đánh giá trình độ của người dùng và tiến hành sắp lớp thích hợp. 
Ưu điểm của phương pháp này là dễ thực hiện, khách quan nhưng khuyết điểm là có 
thể không chính xác nếu ngữ cảnh/dữ liệu mẫu không khai thác đủ và đúng những 
đặc trưng của người dùng. 
3.4.3 Cập nhật User profile 
Cập nhật User profile là quá trình bổ sung, chỉnh sửa thông tin profile dựa vào 
những phản hồi (Relevance feedback) từ người dùng sao cho nội dung profile tại 
thời điểm cập nhật phản ánh gần đúng nhất với thể hiện của người dùng. 
Các phương pháp khởi tạo profile giải quyết tạm thời cho vấn đề người dùng mới. 
Tuy nhiên thông tin trong các profile ban đầu này còn khá đơn giản và chưa phản 
ánh chính xác đặc trưng của người dùng. Bên cạnh đó các thông tin về đặc trưng, sở 
thích của người dùng sẽ thay đổi theo thời gian, vì vậy việc cập nhật lại profile là 
điều cần thiết trong các hệ thống thích nghi. 
Có hai hướng tiếp cận chính cho vấn đề thu thập thông tin phản hồi từ người dùng 
là phản hồi tường minh (Explicit feedback) và phản hồi tiềm ẩn (Implicit feedback). 
Nhiều hệ thống kết hợp cả hai phương pháp này cho việc cập nhật profile. 
30 
3.4.3.1 Phản hồi tường minh (Explicit feedback) 
Người dùng được yêu cầu đánh giá trên các tài nguyên một cách thủ công thông qua 
các giao diện. Ví dụ đánh giá một chương trình, một trang web. Người dùng có thể 
đánh giá qua thang điểm, nhận xét, … 
Việc thu thập thông tin qua sự phản hồi tường minh của người dùng là một phương 
pháp đơn giản, khá chính xác, tuy nhiên phương pháp gặp một số trở ngại như sau: 
- Mức độ hữu ích của thông tin gắn liền với sự thay đổi nhu cầu thông tin của 
người dùng, ví dụ trang web thứ hai mặc dù có nội dung tương tự trang web 
đầu tiên nhưng được người dùng thường đánh giá trang web thứ hai thấp hơn 
do trang web trước đã cung cấp khá đầy đủ các thông tin. 
- Thông tin người dùng cung cấp có thể không chính xác, như đánh giá về nền 
tảng kiến thức hay mức độ quan tâm đến các chủ đề. 
3.4.3.2 Phản hồi tiềm ẩn (Implicit feedback) 
Hệ thống tự động xác định đặc trưng của người dùng thông qua các hành vi của 
người dùng đối với hệ thống. Ví dụ xác định mức độ quan tâm của người dùng đến 
trang web thông qua số lượt xem. 
Lợi điểm của phương pháp này là người dùng không cần phải cung cấp quá nhiều 
thông tin cá nhân cho hệ thống. 
Trở ngại của phương pháp này là dữ liệu thu thập được sẽ rất lớn, chi phí cho xử lý 
tính toán cao trong khi mức độ tin cậy của thông tin được rút trích ra thường không 
được cao so với phương pháp phản hồi tường minh. 
3.4.3.3 Phương pháp kết hợp 
Việc cung cấp chức năng phản hồi tiềm ẩn sẽ giảm bớt thao tác cho người dùng, 
trong khi việc sử dụng phương pháp phản hồi tương minh sẽ giúp hệ thống xác định 
sở thích người dùng chính xác hơn. Từ nhận xét này, nhiều hệ thống đã sử dụng 
phương pháp kết hợp giữa phản hồi tường minh và phản hồi tiềm ẩn. Một hướng 
31 
tiếp cận của phương pháp này là sử dụng sự phản hồi tiềm ẩn như là một thao tác 
kiểm tra trên những thông tin mà người dùng đã đánh giá thủ công, hoặc một hướng 
tiếp cận khác là việc phản hồi tường minh được xem như là một lựa chọn bổ sung 
khi người sử dụng có nhu cầu. 
3.4.4 Khai thác User profile 
Tùy theo chức năng, mỗi hệ thống sẽ có nhu cầu khai thác thông tin User profile 
khác nhau. Ví dụ: trong các hệ thống đào tạo từ xa, User profile được sử dụng để 
đánh giá học viên. Trong các hệ thống thương mại điện tử, User profile được khai 
thác nhằm đánh giá nhu cầu tiêu dùng từ đó có những chiến lược kinh doanh thích 
hợp. Trong các hệ thống nhận dạng, User profile được dùng làm dữ liệu so khớp với 
các đặc trưng thu thập được từ đó kết luận tính hợp lệ của người dùng. 
Từ những đặc trưng trên User profile là một mô hình rất phù hợp cho hệ thống 
chứng thực người dùng. Đặc biệt là các hệ thống chứng thực qua sinh trắc học của 
con người. Mô hình User profile đáp ứng được yêu cầu uyển chuyển và thích nghi 
cần thiết của hệ thống này. 
3.4.5 Mô hình User profile trong chứng thực keystroke dynamics 
3.4.5.1 Cấu trúc 
User profile có dạng vector, với mỗi chiều là một đặc trưng gõ phím, giá trị của mỗi 
chiều là giá trị của đặc trưng đó. 
Features(u) = { 
F1: val1 
F2: val2 
… 
Fn: valn 
} 
32 
Trong đó Profile(u) là profile của User "u" 
Các đặc trưng Fi và các giá trị tương ứng của đặc trưng là vali 
Trong bài toán chứng thực thì Fi chính là các đặc trưng gõ phím của người dùng 
như Duration, Latency, ... và vali là giá trị tính bằng milisecond của các đặc trưng 
này. Ví dụ : một thể hiện của User profile 
Features(u1) = { 
DurationMean: 103.78 
DurationVariance: 84.29 
LatencyMean: 103.78 
LatencyVariance: 84.29 
DownDownMean: 103.78 
DownDownVariance: 84.29 
… 
} 
Một thể hiện của User profile trong thực nghiệm, dạng XML với thẻ root là tên 
người dùng, thẻ cấp 1 là tên đặc trưng và thẻ cấp 2 là giá trị liên quan của đặc trưng 
đó. 
 103.78 
 84.29 
 366.32 
 185.75 
 293.96 
 206.02 
 207.7 
 213.65 
33 
 499.63 
 233.09 
 615 
 165.35 
 452 
 113.12 
 88.54 
 64.63 
 0 
 0 
 171.88 
 0 
 160.71 
 61.29 
 0 
 0 
 0 
 0 
 0 
 100 
 0 
 51.85 
 48.15 
 13.79 
 86.21 
34 
3.4.5.2 Khởi tạo 
Mỗi người dùng có một User Profile. Trong mô hình chứng thực này, ban đầu 
profile được khởi tạo theo phương pháp dùng tập huấn luyện. Hệ thống sẽ tạo ra 
một ngữ cảnh, yêu cầu người dùng gõ nhiều lần một văn bản (Patterns). Sau khi tinh 
lọc và thu thập đủ số lượng mẫu, các mẫu này sẽ được dùng làm mẫu huấn luyện 
(Train vector) cho module máy học (GA-SVM). Kết quả huấn luyện chính là vector 
khởi tạo (Init vector) và được lưu vào User profile cùng với một lượng k các vector 
luyện gần vector trung bình nhất. 
Mã giả của quá trình này như sau: 
Begin 
 UserProfile := null 
 Thu thập N patterns gõ phím từ người dùng (N ≥ 30) 
 InitVector := GA-SVM({patterns}) 
 UserProfile  InitVector 
Tính vector trung bình }{patterns=µ 
)}({ iDataTrain δµµ ±+= Với )2,1(
Nkii <=< εδ
UserProfile  DataTrain 
End 
3.4.5.3 Cập nhật/Khai thác 
Quá trình cập nhật được thực hiện theo phương pháp không tường minh (Implicite), 
người dùng phản hồi ẩn thông qua thao tác gõ phím. Theo đó, quá trình cập nhật 
chính là tích lũy DataTrain trong suốt thời gian sử dụng. Cụ thể, sau khi chứng thực 
người dùng nếu kết quả là hợp lệ thì mẫu gõ phím này là chính xác của người dùng 
- chủ nhân User profile. Mẫu này sau đó được tích lũy vào DataTrain. Tiến trình cứ 
thế tiếp tục cho đến khi số lượng DataTrain đạt tới ngưỡng N thì toàn bộ các mẫu 
trong DataTrain được dùng để huấn luyện lại module máy học. 
35 
Mã giả của quá trình này như sau: 
Begin 
 While (Đang sử dụng) 
{ 
 If có nhu cầu chứng thực then 
 Patternv := Thu thập mẫu gõ phím 
 If Chứng thực thành công then 
 DataTrain = DataTrain ∪ Patternv 
 End If 
 End If 
 If Card|DataTrain| > N Then 
 //Retraining 
 UpdateVector := GA-SVM(DataTrain) 
 UserProfile  InitVector 
 End If 
} 
End 
3.5 Mô hình GA-SVM 
3.5.1 Thuật giải di truyền 
Thuật giải di truyền - Genetic Algorithm (GA): là một kĩ thuật tìm kiếm lời giải tối 
ưu cho bài toán trong không gian lời giải cho trước bằng cách mô phỏng theo 
phương pháp chọn lọc tiến hóa của tự nhiên. 
36 
Các cặp 
bố mẹ 
Thế hệ 
con 
Quần thể 
Khởi tạo 
Kết thúc 
Chọn thế hệ bố mẹ 
Chọn các cá thể con tốt nhất 
Lai 
Đột biến 
Hình 3.8 - Lược đồ tổng quát của GA [16] 
Trong đó các lời giải ứng viên được biểu diễn dưới dạng một chuỗi nhị phân 
(Chromosome) qua 3 phép toán chọn lọc (Selection), lai (Crossover), đột biến 
(Mutation), sau n thế hệ, lời giải tối ưu gần đúng nhất sẽ được chọn. 
Ưu điểm của phương pháp này là tránh được vét cạn và tối ưu cục bộ. Nhược điểm 
là không phải lúc nào cũng tìm ra được lời giải chính xác. 
3.5.2 Support vector machine 
Support Vector Machine (SVM) là phương pháp học máy có giám sát, dựa vào các 
vector hỗ trợ. Có thể dùng để phân lớp và hồi quy. 
Trong phân lớp, đây là phương pháp phân lớp nhị phân. Mục tiêu là tìm ra một siêu 
phẳng tách biệt 2 lớp khác nhau bằng cách ánh xạ qua một không gian cao chiều 
hơn. 
37 
Hình 3.9 - SVM 
Hàm mục tiêu: 
bxwxg += )(.)( φ
- x: vector đầu vào, vector huấn luyện 
- )(xφ : ánh xạ biến x từ không gian Ra  Rb (b > a), )(xφ có thể tuyến tính 
hoặc phi tuyến 
- b: độ lệch so với góc tọa độ ban đầu 
Mục tiêu là tìm 1 siêu phẳng sao cho khoảng cách lề giữa 2 lớp là cực đại. Việc 
huấn luyện SVM chính là giải bài toán tối ưu: 
cực tiểu ∑
=
+
N
i
iCww
12
1 ξτ
sao cho: iii bxwy ξφτ −≥+ 1))(( với Nii ,...,1,0 =≥ξ 
Trong đó: 
- C: là hằng số thỏa hiệp (Trade off), đánh đổi giữa độ chính xác và 
overfitting 
38 
- iξ : khoảng cách từ mẫu (điểm) i đến lề đúng của i 
- N: số lượng mẫu huấn luyện 
Bài toán này được đưa về bài toán đối ngẫu tương ứng là bài toán quy hoạch toàn 
phương (Quadratic programing) 
Cực đại ))()((2
1
1 11
∑∑∑
= ==
−
N
i
N
j
jijiji
N
i
k xxyy φφααα 
Thỏa 0 và 0
N
1i
=∀≤≤ ∑
=
iii yiC αα 
Giải bài toán này ta được nghiệm ∑
=
=
N
i
iii xyw
1
)(φα
Mỗi mẫu ix tương ứng với một hệ số iα . Sau khi huấn luyện, các mẫu có iα > 0 gọi 
là các vector hỗ trợ (support vectors). 
Thay nghiệm trên vào g(x) ta có: 
bxxy
bxwxg
N
i
iii +=
+=
∑
=
)(.)(
)(.)(
1
φφα
φ
Có thể thay tích vô hướng )()( ji xx φφ trong không gian đặc trưng bằng hàm nhân 
(Kernel function) ),( ji xxK trong không gian đầu vào. 
bxxKyxg
N
i
iii +=∑
=
),()(
1
α
Nếu K tuyến tính thì SVM được gọi là SVM tuyến tính, nếu K phi tuyến thì gọi là 
SVM phi tuyến. 
Một số hàm nhân thông dụng: 
39 
- Linear: yxyxK .),( = 
- Polynomial: dcyxyxK ).(),( += 
- Sigmoid: )).(tanh(),( θκ += yxyxK 
- Gaussian (RBF): )
2
||||
exp(),( 2
2
σ
yxyxK −−=
Hàm phân lớp có dạng: 
bxxKyxf
svN
i
iii +=∑
=
),()(
1
α
sv
N : là số vector hỗ trợ. 
Nếu dấu của )(xf là (+) thì x thuộc lớp (+), ngược lại x thuộc lớp (-). 
Ưu điểm là: có khả năng xử lý các vector có số chiều lớn, hiệu quả với dữ liệu nhiều, 
giải quyết overfitting bằng soft margin. 
Nhược điểm là: nhạy cảm với dữ liệu nhiễu và chỉ phân lớp nhị phân. 
Việc tiền xử lý dữ liệu kết hợp với lựa chọn đặc trưng sẽ giúp giải quyết được vấn 
đề nhạy cảm với dữ liệu nhiễu. 
Để mở rộng giới hạn chỉ phân lớp nhị phân (phân lớp trên n lớp – multiple 
classification) có 2 phương pháp [20]: 
- one versus one (1 vs 1) 
- one versus all (1 vs all) 
Trường hợp cần phân lớp trên n lớp thì phương pháp (1 vs 1) sẽ cần 
2
1−n
n bộ phân 
lớp. Trong giai đoạn kiểm tra, để xác định nhãn của một test vector, test vector này 
sẽ được thử nghiệm trên 
2
1−n
n bộ phân lớp, nhãn của test vector sẽ là nhãn có tần 
suất xuất hiện nhiều nhất trong các bộ phân lớp này. Một cách khác là chuyển tập 
40 
các kết quả thành một vector mới, sau đó tiến hành gán nhãn dựa trên vector này 
bằng một bộ phân lớp khác. 
Trường hợp (1 vs all) sẽ cần n bộ phân lớp. Trong giai đoạn kiểm tra, test vector sẽ 
được thử nghiệm trên n bộ phân lớp, giá trị lớn nhất của test vector trên tất cả các 
bộ phân lớp sẽ quyết định nhãn của nó. 
Ngoài việc phân lớp nhị phân và đa lớp SVM còn có thể hồi quy và nhận dạng mẫu. 
Gọi là one-class SVM [21]. Sau đây là hình minh họa trực quan One-Class-SVM 
trong không gian 2 chiều. 
+1
-1
-1
-1
-1
-1
Hình 3.10 - One-Class SVM 
Cơ chế thực hiện tương tự như 2-class SVM, chỉ khác là tập huấn luyện khi đó 
không có lớp -1. Quá trình học là quá trình tìm 1 hàm f bao các vector (+1) bên 
trong một vùng đủ nhỏ để các vector khác ngoài vùng là (-1). 
Bài toán quy hoạch toàn phương trong 1-class trở thành: 
cực tiểu ∑
=
+−
l
i
i
vl
ww
1
1
2
1 ξρτ
sao cho: iixw ξρφτ −≥)( với lii ,...,1,0 =≥ξ 
Hàm phân lớp có dạng: ηρφτ −= )()( xwxf 
η là ngưỡng trong hàm phân lớp để tổng quát hóa dữ liệu chưa biết. 
41 
Dấu của )(xf xác định dấu của x 
Ưu điểm của 1-class SVM là giải quyết được bài toán nhận dạng mẫu, tập huấn 
luyện chỉ cần lớp (+1) không cần lớp (-1). 
3.6 Mô hình kết hợp User profile-GA-SVM 
Hình 3.11 - Mô hình kết hợp User profile - GA - SVM 
Như đã đề cập, các đặc trưng gõ phím sau khi được thu thập sẽ được dùng làm mẫu 
huấn luyện. Trong đó N đặc trưng sẽ được chọn qua cơ chế của GA 
Từ tập N đặc trưng ban đầu: {Fear1, Fear2, …, FearN} 
Biểu diễn thành dạng nhiễm sắc thể (Chromosomes): {0, 1, …, 1} 
Nếu vị trí i trong nhiễm sắc thể có giá trị là 0 thì Feari trong tập đặc trưng không 
được chọn để làm đặc trưng chứng thực, và ngược lại. Mỗi nhiễm sắc thể là một 
cách chọn đặc trưng. 
3.6.1 Cấu trúc 
UserProfile 
{ 
 // Thông tin người dùng 
 User Info 
 // Thông tin chứng thực 
42 
 SVM model 
 Chromosome GA (tập đặc trưng mà GA đánh giá là tốt nhất) 
{N vector đặc trưng} 
} 
3.6.2 Giai đoạn khởi tạo 
Hình 3.12 - Mô hình khởi tạo User profile 
Mã giả của mô hình huấn luyện GA – SVM (cơ chế khởi tạo User profile) 
Gọi C = {nhiễm sắc thể (cách chọn đặc trưng) của thế hệ hiện tại} 
begin 
 Khởi tạo quần thể gồm tập các cách chọn đặc trưng (nhiễm sắc thể) ngẫu nhiên; 
 Dùng SVM đánh giá độ thích nghi của từng nhiễm sắc thể; 
43 
 repeat 
 Chọn các cặp bố mẹ 
 Lai các nhiễm sắc thể bố mẹ để tạo ra các nhiễm sắc thể con mới 
 Đột biến các nhiễm sắc thể con 
 //Dùng SVM đánh giá độ thích nghi của từng nhiễm sắc thể con 
 begin 
 For each chromi in C 
 For each samplej in S 
 samplej’ = samplej đã bỏ các vị trí 0 tương ứng theo chromi 
 Chia các mẫu huấn luyện mới thành tập train và test 
 Dùng SVM train và test trên các tập này 
 Kết luận độ chính xác khi áp dụng mẫu huấn luyện mới 
 Độ thích nghi của chromi = độ chính xác kết luận được khi test 
 end 
 Chọn k nhiễm sắc thể có độ chính xác cao nhất cho thế hệ kế tiếp 
 until thỏa điều kiện dừng của GA 
end 
Ví dụ: 
Mẫu đặc trưng ban đầu (samplej): 
1:0.122 2:0.241 3:0.0 4:0.427 5:0.312 6:0.783 7:0.335 8:0.935 9:0.464 10:0.135 
Áp lên nhiễm sắc thể template (chromi): 
1 0 0 1 1 0 1 0 0 0 
Sau khi bỏ đi các vị trí 0, mẫu mới (samplej’) cho ra như sau: 
1 0 0 1 1 0 1 0 0 0 
1:0.122 2:0.241 3:0.0 4:0.427 5:0.312 6:0.783 7:0.335 8:0.935 9:0.464 10:0.135 
1:0.122 4:0.427 5:0.312 7:0.335  Mẫu mới 
Trong đó các chiều (index) 1, 4, 5, 7 được giữ lại còn các chiều 2, 3, 6, 8, 9, 10 bị 
bỏ đi bất kể các chiều đó có giá trị hay không. 
44 
Sau đó, mẫu 1:0.122 4:0.427 5:0.312 7:0.335 sẽ được sử dụng để làm mẫu huấn 
luyện mô hình SVM. 
Kết thúc quá trình huấn luyện ta thu được SVM model và tập con đặc trưng tốt nhất 
từ GA. Hai kết quả này sẽ được lưu trong User profile cùng với các vector đặc 
trưng đã có. 
3.6.3 Giai đoạn khai thác 
Giai đoạn này là giai đoạn sử dụng User profile để chứng thực người dùng. Sau khi 
khởi tạo User Profile, mỗi khi có nhu cầu chứng thực, người dùng sẽ được yêu cầu 
tương tác với bàn phím (nhập username, password, …) để hệ thống thu thập nội 
dung và đặc trưng gõ phím. Ngoài việc kiểm tra nội dung, hệ thống còn kiểm tra độ 
tương đồng của mẫu đặc trưng mới với mô hình đại diện cho tập đặc trưng đã có 
(SVM model) trong User profile. Theo đó mẫu đặc trưng mới thu thập sẽ không lấy 
toàn bộ đặc trưng, mà chỉ chọn ra những đặc trưng tốt nhất (theo đánh giá của GA) 
để tạo ra một mẫu mới, và mẫu này mới được dùng để chứng thực. 
Hình 3.13 - Mô hình khai thác User profile 
45 
Mã giả của mô hình khai thác (chế độ chứng thực bị động) 
Begin 
 While (Chưa đủ số lượng n phím cho trước) 
Thu thập mẫu trong lúc người dùng gõ phím 
 Rút trích đặc trưng từ n phím và tạo thành vector đặc trưng Ft 
 Áp template của User profile tương ứng lên Ft  Ft’ 
Ft’ được test trên SVM model của User profile 
If Vector Ft’ thuộc lớp (+) Then 
Đây là user hợp lệ, được phép tiếp tục sử dụng hệ thống 
 Else 
//Có khả năng không phải user hợp lệ 
Hệ thống chuyển sang chế độ xác thực; 
End If 
End 
Mã giả của mô hình xác thực (chế độ chứng thực chủ động) 
Begin 
 Count := 0; 
 While (Chưa đúng nội dung PIN) 
Yêu cầu người dùng nhập PIN 
 Count++; 
Rút trích đặc trưng từ việc gõ PIN FPIN 
 FPIN được test trên SVMPIN model của User profile 
If Vector FPIN thuộc lớp (+) thì 
//Đây là user hợp lệ 
Hệ thống chuyển sang chế độ chứng thực bị động 
 Else 
//Là user không hợp lệ 
Hệ thống yêu cầu nhập lại PIN 
46 
If Count ≥ 3 Then 
 Khóa hệ thống 
End If 
 End If 
End 
[Ví dụ: 
Mẫu đặc trưng mới thu thập (samplen): 
1:0.102 2:0.2 3:0.1 4:0122 5:0.350 6:0.534 7:0.132 8:0.821 9:0.401 10:0.232 
Áp lên nhiễm sắc thể template có trong User Profile (chromu): 
1 0 0 1 1 0 1 0 0 0 
Sau khi bỏ đi các vị trí 0, mẫu mới (samplen’) cho ra như sau: 
1 0 0 1 1 0 1 0 0 0 
1:0.122 2:0.241 3:0.0 4:0.427 5:0.312 6:0.783 7:0.335 8:0.935 9:0.464 10:0.135 
1:0.122 4:0.427 5:0.312 7:0.335  Mẫu mới 
Sau đó, mẫu 1:0.122 4:0.427 5:0.312 7:0.335 sẽ được sử dụng để làm mẫu kiểm tra 
(test sample) trong mô hình SVM. Nếu chứng thực thành công, mẫu thu thập ban 
đầu (samplen) sẽ được tích lũy vào User profile. 
Kết thúc quá trình khai thác ta thu được mẫu đặc trưng mới đăng nhập của người 
dùng và kết quả chứng thực. Nếu kết quả chứng thực là thành công (người dùng hợp 
lệ) thì mẫu mới này sẽ được tích lũy vào User profile để dùng cho giai đoạn cập 
nhật. 
3.6.4 Giai đoạn cập nhật 
Hệ thống sử dụng cơ chế cập nhật tiềm ẩn (Implicit feedback), tự động xác định đặc 
trưng của người dùng thông qua hành vi gõ phím. 
47 
Đây là giai đoạn đảm bảo cho User profile có tính thích nghi liên tục với những 
thay đổi trong đặc trưng gõ phím của người dùng. Cụ thể, ban đầu khi khởi tạo, một 
lượng N mẫu gần với vector trung bình µ nhất sẽ được lưu lại trong User Profile. 
Đồng thời trong quá trình khai thác, mỗi khi chứng thực thành công, mẫu đặc trưng 
thu thập được lại được tích lũy tiếp. Sau khi đạt một số lượng N’ cho trước, các mẫu 
này sẽ được dùng để xây dựng (huấn luyện) lại SVM model và tập đặc trưng tốt 
nhất bằng mô hình kết hợp GA-SVM tương tự như giai đoạn khởi tạo. Sau đó 
vector µ ’ sẽ được tính lại và một lượng N mẫu gần với vector trung bình µ ’ nhất 
tiếp tục được giữ lại dùng cho lần cập nhật sau. 
Hình 3.14 - Mô hình cập nhật User profile 
Kết thúc quá trình này, nội dung User profile được cập nhật theo “xu hướng” thay 
đổi trong thói quen gõ phím của người dùng. Nhằm đảm bảo tính thích nghi liên tục 
của hệ thống. 
48 
3.7 Phương pháp đánh giá 
Các hệ thống nhận dạng có thể chạy trong 2 chế độ: định danh (Identification) và 
xác thực (Verification). Mỗi chế độ sẽ có một ngưỡng được đặt ra để xác định người 
dùng có hợp lệ hay không. 
Phụ thuộc vào giá trị của ngưỡng mà tất cả hoặc không có mẫu nào của người dùng 
mạo danh (Imposter users) được chấp nhận. Khoảng giữa của 2 giá trị này gọi là tỉ 
lệ chấp nhận sai (False Accept Rate - FAR). FAR là 1 nếu tất cả các mẫu của người 
dùng mạo danh được chấp nhận, ngược lại FAR là 0 nếu không có mẫu nào của 
người dùng này được chấp nhận. 
Hình 3.15 - FAR 
Tương tự cho trường hợp người dùng hợp lệ (Legitimate users). Khoảng giá trị giữa 
tất cả các mẫu hoặc không mẫu nào của người dùng hợp lệ bị từ chối gọi là tỉ lệ từ 
chối sai (False Reject Rate - FRR). FRR là 1 nếu tất cả các mẫu của người dùng hợp 
lệ bị từ chối, ngược lại FRR là 0 nếu không có mẫu nào của người dùng này bị từ 
chối. 
Hình 3.16 - FRR 
49 
Việc chọn ngưỡng phải sao cho không có mẫu nào của người dùng mạo danh được 
chấp nhận và không có mẫu nào của người dùng hợp lệ bị từ chối. Đây là một vấn 
đề, vì trong thực tế các mẫu này có thể chồng lắp nhau. Khi đó việc chọn ngưỡng sẽ 
được cân nhắc sao cho 2 tỉ lệ FAR và FRR là thấp nhất. Và giá trị lý tưởng trong 
trường hợp này chính là giao điểm giữa FAR và FRR, gọi là tỉ lệ lỗi bình đẳng 
(Equal Error Rate – EER) 
Hình 3.17 - EER 
Khi đánh giá một hệ thống chứng thực, không thể chỉ dựa vào hai giá trị FAR hay 
FRR vì không thể so sánh một hệ thống FRR cao – FAR thấp với một hệ thống 
FAR cao – FRR thấp. Do đó tiêu chí ở đây chính là EER. Một hệ thống có EER 
thấp hơn sẽ là hệ thống tốt hơn. 
Kết quả đánh giá của hệ thống đối với một mẫu rơi vào 1 trong 4 trường hợp sau: 
 Kết quả thực 
True False 
Kết quả kiểm tra True True Positive False Positive False False Negative True Negative 
Trong đó: 
- True Positive  Mẫu mang nhãn True, hệ thống dự đoán nhãn True 
- False Positive  Mẫu mang nhãn False, hệ thống dự đoán nhãn True 
- True Negative  Mẫu mang nhãn False, hệ thống dự đoán nhãn False 
- False Negative  Mẫu mang nhãn False, hệ thống dự đoán nhãn True 
50 
iveFalsePositveTruePositi
iveFalsePosit
+
=(FRR) RateReject False
iveFalseNegatveTrueNegati
iveFalseNegat
+
=(FAR) RateAccept False
Hình 3.18 - FAR - FRR – EER [37] 
EER là giao điểm của FAR và FRR. Độ chính xác của hệ thống được tính bằng 
công thức: 
Độ chính xác = 
iveFalseNegatveTrueNegatiiveFalsePositveTruePositi
veTrueNegativeTruePositi
+++
+