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: 2002 | 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
+++
+