Theo PhD. Jason Brownlee, các thuật toán phân loại dựa theo một số chức năng và phân nhánh của chúng như sau [8]:
- Regression Algorithms (Thuật toán hồi quy) + Linear Regression (Hồi quy tuyến tính) + Logistic Regression (Hồi quy logistic) + Stepwise Regression (Hồi quy từng bước)
Khóa luận tốt nghiệp Ứng dụng học máy trong xây dựng hệ khuyến nghị tự động + Ordinary Least Squares Regression (OLSR)
+ Multivariate Adaptive Regression Splines (MARS) + Locally Estimated Scatterplot Smoothing (LOESS)
- Classification Algorithms (Thuật toán phân lớp) + Linear Classifier (Phân loại tuyến tính) + Kernel SVM
+ Sparse Representation-based classification (SRC) + Support Vector Machine (SVM)
- Instance-based Algorithms (Thuật toán dựa theo sơ đồ) + k-Nearest Neighbor (kNN)
+ Self-Organizing Map (SOM) + Locally Weighted Learning (LWL) + Learning Vector Quantization (LVQ)
- Regularization Algorithms (Thuật toán chuẩn hóa) + Ridge Regression
+ Elastic Net
+ Least-Angle Regression (LARS)
+ Least Absolute Shrinkage và Selection Operator (LASSO)
- Bayesian Algorithms (Thuật toán Bayes) + Naive Bayes
+ Gaussian Naive Bayes
+ Averaged One-Dependence Estimators (AODE) + Bayesian Belief Network (BBN)
+ Bayesian Network (BN) + Multinomial Naive Bayes
- Clustering Algorithms (Thuật toán phân cụm) + k-Means
+ k-Medians
+ Expectation Maximisation (EM) + Hierarchical Clustering
- Artificial Neural Network Algorithms (Thuật toán mạng nơ-ron nhân tạo) + Perceptron
Khóa luận tốt nghiệp Ứng dụng học máy trong xây dựng hệ khuyến nghị tự động + Hopfield Network
+ Radial Basis Function Network (RBFN) + Back-Propagation
- Dimensionality Reduction Algorithms (Thuật toán giảm kích thước) + Principal Component Analysis (PCA)
+ Principal Component Regression (PCR) + Partial Least Squares Regression (PLSR) + Sammon Mapping
+ Mixture Discriminant Analysis (MDA) + Quadratic Discriminant Analysis (QDA) + Flexible Discriminant Analysis (FDA) + Linear Discriminant Analysis (LDA) + Multidimensional Scaling (MDS) + Projection Pursuit
- Ensemble Algorithms (Thuật toán tập hợp) + Random Forest
+ AdaBoost + Boosting
+ Bootstrapped Aggregation (Bagging) + Stacked Generalization (blending) + Gradient Boosting Machines (GBM)
+ Gradient Boosted Regression Trees (GBRT)
- Dicision Tree (Thuật toán cây quyết định) + Iterative Dichotomiser 3 (ID3)
+ Classification và Regression Tree (CART) + C4.5 và C5.0
+ M5
+ Chi-squared Automatic Interaction Detection (CHAID) + Decision Stump
+ Conditional Decision Trees
2.2. Ứng dụng của học máy
Đối với các ngành/lĩnh vực phải làm việc với các bộ dữ liệu khổng lồ thì không thể Khóa luận tốt nghiệp Ứng dụng học máy trong xây dựng hệ khuyến nghị tự động
Hình 8. Sơ đồ tư duy các thuật toán của học máy
Hoàng Thái Hạnh - Lớp K18HTTTC 17
phủ nhận vai trò vô cùng quan trọng của ML trong việc nâng cao hiệu quả tổ chức vận hành, kiểm soát chi phí cũng như tạo ra lợi thế cạnh tranh. Dưới đây là một số ngành/ lĩnh vực đang triển khai ML:
- Dịch vụ tài chính - ngân hàng: Với sự trợ giúp của ML, các doanh nghiệp hoạt động trong ngành/lĩnh vực này có thể xác định được những cá nhân hoặc tổ chức có profile rủi ro tài chính cao hay thể tìm ra và ngăn chặn gian lận tài chính kịp thời. ML cũng được sử dụng để xác định các cơ hội đầu tư và thương mại, thời điểm giao dịch hợp lý.
- Vận tải: Dựa trên lịch sử du lịch, di chuyển và mô hình di chuyển trên nhiều tuyến đường khác nhau, ML có thể giúp các công ty vận tải dự đoán các vấn đề tiềm ẩn có thể phát sinh trên một số tuyến nhất định và theo đó khuyên khách hàng của họ nên chọn tuyến khác. Các công ty vận tải và các tổ chức giao hàng đang ngày càng sử dụng ML để thực hiện phân tích và mô hình hóa dữ liệu từ đó giúp khách hàng của họ có thể đưa ra được quyết định di chuyển sáng suốt, thông minh.
- Y tế và chăm sóc sức khỏe: ML trở thành một xu hướng chăm sóc sức khỏe hiện đang phát triển rất nhanh chóng. Ứng dụng rõ nhất là sự ra đời của máy cảm biến và các thiết bị đeo được sử dụng dữ liệu để truy cập sức khỏe của bệnh nhân. Các cảm biến trong thiết bị đeo cung cấp thông tin bệnh nhân theo thời gian thực, như tình trạng sức khỏe tổng thể, nhịp tim, huyết áp và các thông số quan trọng khác. Các bác sĩ và chuyên gia y tế có thể sử dụng thông tin này để phân tích tình trạng sức khỏe của một cá nhân, rút ra một mô hình từ lịch sử bệnh nhân và dự đoán sự xuất hiện của bất kỳ bệnh nào trong tương lai. tạo điều kiện cho các chuyên gia y tế có thể chẩn đoán và đưa ra phương thức điều trị tốt hơn.
- Tiếp thị và bán hàng: Các doanh nghiệp đang sử dụng công nghệ học máy để phân tích lịch sử mua hàng của khách hàng và đưa ra các đề xuất sản phẩm được cá nhân hóa cho lần mua tiếp theo của họ. Đây chính là Hệ khuyến nghị - RS.
Ngoài ra còn một số ứng dụng nổi bật khác của công nghệ Học máy phải kể đến như:
- Xe không người lái có thể tự lái hàng trăm triệu dặm.
- Nhận diện chữ viết tay hay tính năng nhận diện khuôn mặt của Facebook.
- Các trợ lý ảo Siri, Alexa, Cortana, Google Assistant,... xử lý ngôn ngữ tự nhiên để nhận dạng giọng nói, hiểu và phát âm được.
2.3. Học máy trong hệ khuyến nghị
Như trong chương 2 đã trình bày, hệ khuyến nghị bao gồm hai nhóm lớn chính là Lọc nội dung (Content-based filtering) và Lọc cộng tác (Collaborative filtering). Trong đó, Lọc nội dung xây dựng mô hình cho mỗi người dùng không phụ thuộc vào các người dùng khác mà phụ thuộc vào profile của mỗi mục tin. Profile này có thể được xây dựng bởi nhà cung cấp mục tin hoặc được thu thập bằng cách yêu cầu người dùng gắn nhãn cho các mục tin này và thường sử dụng kỹ thuật Xử lý ngôn ngữ tự nhiên (Natural Language Processing - NLP). Nhưng điều này lại dẫn đến:
- Không tận dụng được thông tin về hành vi, sở thích từ các người dùng khác mà các thông tin này thường rất hữu ích vì được phân thành một vài nhóm đơn giản, dễ dàng suy luận ra hành vi, sở thích của những người dùng còn lại.
- Profile cho mỗi mục tin khó xây dựng vì không phải người dùng nào cũng sẵn sàng gắn nhãn cho mục tin hoặc có nhưng cũng sẽ thường mang xu hướng thiên vị.
- Phần xử lý các từ gần/đồng nghĩa, viết tắt, viết sai chính tả, đan xen nhiều ngôn ngữ cũng rất phức tạp khi sử dụng kỹ thuật NLP.
Cách giải quyết những nhược điểm trên là sử dụng kỹ thuật Lọc cộng tác (Collaborative Filtering - CF). Do vậy mục 3.4 này sẽ chỉ trình bày về ứng dụng của học máy trong hệ khuyến nghị dựa trên kỹ thuật Lọc công tác.
Khi nói đến Lọc cộng tác mà không chú thích gì thêm thì phương pháp thông thường được sử dụng sẽ là “Thuật toán người láng giềng” (Neighborhood-based - NBCF). Phương pháp còn lại là “Phân tích ma trận thành nhân tử” (Matrix Factorization).
2.4.1. Thuật toán người láng giềng (Neighborhood-based - NBCF)
Có hai cách tiếp cận của lọc cộng tác theo thuật toán người láng giềng là dựa trên sự tương tự giữa các người dùng và dựa trên sự tương tự giữa mục tin.
2.4.1. a. Thuật toán người láng giềng dựa trên người dùng
Thuật toán người láng giềng dựa trên người dùng xác định độ tương tự giữa hai người dùng U 1 và U 2 thông qua việc so sánh các đánh giá của họ trên cùng mục tin. Sau đó dự đoán kết quả đánh giá mục tin i của người dùng U 1 dựa vào các đánh giá của người dùng tương tự U 2. Theo Herlocker & cộng sự (1999), độ tương tự giữa hai người dùng là được tính theo công thức Cosine hoặc công thức Pearson như
sau:
Hoàng Thái Hạnh - Lớp K18HTTTC 18
U1 U2 U3 U4 U5 U6 ii 5 5 2 1 1 ? *2 3 ? ? 1 ? 3 *3 ? 4 1 ? ? 1 Ũ 2 2 3 4 4 ?
Simcosine (ill, U2') cos(u1,U2) ∑ ÍEI(ru 1 í * r2i) (1)
√∑∈ √∑∈
Hoàng Thái Hạnh - Lớp K18HTTTC 19
Khóa luận tốt nghiệp Ứng dụng học máy trong xây dựng hệ khuyến nghị tự động
, .. _ʌ ∑i i ∈ (r∙* < ι - rri) * (⅛ - K) ( 2 )
SlTtlvearson ∖U-∣, U2) — . 2 =Γ ---T--- . _
∑.Mr ∑.rr.-i^-∖2
V ZJ i ∕ ∈V' U1í'U1) -√Zji ∕ ∈V ' U2i ' U2)
Trong đó:
+ i ∈ I là tổng các mục tin mà cả hai người dùng U1, U2 đã đánh giá. + và ilà những đánh giá của người dùng U 1, U 2cho mục tin i.
+rrvàrrr là trung bình các đánh giá của hai người dùng này.
Sau khi tính toán độ tương tự giữa các người dùng, để có thể dự đoán đánh giá của người dùng U 1 trên mục tin i, ta lấy trọng số trung bình của tất cả các đánh giá trên mục tin đó của người dùng tương tự U 2theo công thức sau (Resnick & cộng sự, 1994):
, , = _ +∑U2∈^im(U
1,U
2)*(r
U2i-ruJ
U 1 i U 1 + ∑U 2«> im VU 1 ,U 2 )| (3)
Với KU là tập hợp k người dùng có độ tương tự gần với người dùng U 1 (k láng giềng của ). Xét ví dụ sau:
rU4I = 3 = 3.67 r^^ι = 1 + 4 2 “2‘5 = 1.67 rU(Γι = 1 + 3 — 7 1 - 2 3
Sau khi tính được các giá trị trung bình đánh giá của người dùng, ta phải chuấn hóa dữ liệu bằng cách trừ mỗi ô màu xanh đi một số bằng chính giá trị trung bình tương ứng vừa tính được và thay các dấu “?” bằng giá trị “0”. Việc này rất quan trọng bởi:
- Ma trận sẽ xuất hiện các giá trị âm hoặc dương hoặc bằng “0” thể hiện tương ứng người dùng “thích” hoặc “không thích” hoặc chưa đánh giá mục tin khiến khi nhìn vào ma trận sẽ thấy trực quan hơn.
- Trên thực tế dữ liệu là rất lớn với hàng triệu người dùng, mục tin và phản hồi, nếu lưu toàn bộ các giá trị này trong một ma trận thì rất tốn bộ nhớ và thời gian. Nếu thay các dấu “?” bằng giá trị trung bình và lại trừ đi chính giá trị đó thì các ô này mang giá trị “0”, ta chỉ việc lưu ma trận với các giá trị khác “0” và vị trí của chúng. Như vậy không những tối ưu bộ nhớ mà việc tính toán ma trận tương tự sau này cũng dễ dàng và hiệu quả hơn.
Ma trận sau chuấn hóa dữ liệu như sau:
U1 U2 U3 M4 U5 M6
k 5 5 1 1 1 ?
Bảng 1. Ma trận User-Item-Feedback
Giả sử có các người dùng và các mục tin trên, các giá trị trong mỗi ô thể hiện số sao mà mỗi người dùng đã đánh giá cho mỗi mục tin với giá trị cao hơn thể hiện mức độ yêu thích cao hơn. Các dấu “?” là các giá trị cần phải dự đoán.
Trong ma trận thường có rất nhiều dấu “?” vì người dùng thường rất lười đánh giá. Do đó ta cần khắc phục bằng cách điền vào các giá trị sao cho không làm ảnh hưởng nhiều tới sự tương đồng giữa các người dùng. Nếu điền giá trị “0” thì giá trị này không phù hợp do 0 tương đương với mức yêu thích thấp nhất. Nếu điền giá trị “2.5” (trung bình cộng của mức đánh giá thấp nhất và cao nhất), thì với các người dùng dễ tính thường cho
Hoàng Thái Hạnh - Lớp K18HTTTC 20
Khóa luận tốt nghiệp Ứng dụng học máy trong xây dựng hệ khuyến nghị tự động 3, 4, 5 sao, mức 2.5 khá là tiêu cực. Còn với những người dùng khó tính thường chỉ cho các mức 1, 2, 3 sao thì mức 2.5 lại quá tích cực cho các mục tin mà họ không thích. [11]
Vì vậy giá trị thích hợp nhất là trung bình cộng các đánh giá do giá trị này sẽ giải quyết được những nhược điểm phía trên. Việc điền này chỉ phục vụ cho việc tính toán trong các bước trung gian chứ không phải là suy luận ra giá trị dự đoán cuối cùng.
5 + 3 + 2 3 5 + 4 + 2 3 2 It1I ~ U2I ~ U3I —
h 3 ? ? 1 ? 3 ⅛ ? 4 1 ? ? 1 ú 2 2 3 4 4 ? ị — rl 3.3 3 3.67 1.67 2 2.5 2 M1 U2 U3 M4 U5 M6 k 1.67 1.33 0.67 -1 -1.5 0 h -0.33 0 0 -1 0 1 ⅛ 0 0.33 0.67 0 0 -1 ú -1.33 -1.67 1.33 2 1.5 0
M1 «2 «3 M4 «5 M6 M1 1 0.95 -0.18 -0.76 -0.98 -0.11 «2 0.95 1 0.94 -0.69 -0.87 -0.22 «3 -0.18 0.94 1 0.5 0.87 -0.29 M4 -0.76 -0.69 0.5 1 0.87 -0.29 «5 -0.98 -0.87 0.87 0.87 1 0 «6 -0.11 -0.22 -0.29 -0.29 0 1
Bảng 2. Ma trận chuẩn hóa (theo điêm trung bình đánh giá của các user)
Hoàng Thái Hạnh - Lớp K18HTTTC 21
Khóa luận tốt nghiệp Ứng dụng học máy trong xây dựng hệ khuyến nghị tự động Tiếp theo ta tính độ tương tự giữa các người dùng theo công thức Cosine hoặc công thức Pearson. Ở đây em xin trình bày theo công thức Pearson (2):
1-67 * 1.33 + (-1.33) * (-1.67) simro.ς,r,β(M1,M2) = , _ _ „ _ _ _ = 0.95 √ 1.672 + ( - 0.3 3) 2 + ( - 1.3 3) 2 √ ( - 1.3 3) 2 + 0.3 3 2 + ( - 1.67) 2 1.67 * 0.67 +(-1.33) * 1.33 simro.ς,r,β(M1,M3) = — , = -0.18 √ 1.6 72 + ( - 0.3 3) 2 + ( - 1.3 3) 2 √ 0.672 + 0.6 72 + 1.3 3 2 , . λ- 1.67 * (—1) + (—0.33) * (—1) + (—1.33) * 2 _ c 0 s ln 1 √ 1.672 + ( - 0.3 3) 2 + ( - 1.3 3) 2 √ ( - 1) 2 + ( - 1) 2+ 2 2
U1 U2 U3 U4 U5 U6 ú 5 5 1 1 1 0.33 *2 3 3.21 2.5 1 2.17 3 3.73 4 1 2.8 3.17 1 ú 2 2 3 4 4 3.33
Bảng 3. Ma trận tương tự giữa các người dùng
Nhận xét:
- Độ tương tự giữa hai người dùng có bản chất như hàm số cosine của góc giữa hai vector nên sẽ là một số thuộc đoạn [-1; 1]. Khi giá trị bằng 1, đây là giá trị cao nhất thể hiện hai người dùng có sở thích hoàn toàn tương tự nhau. Khi giá trị bằng -1, ngược lại là giá trị thấp nhất, lúc này hai người dùng này sẽ có sở thích trái ngược nhau hoàn toàn.
- Ma trận tương tự là ma trận đối xứng vì hàm số cosine là hàm số chẵn. Cũng có thể giải thích là do người dùng U 1 nếu tương tự người dùng U 2 thì điều ngược lại cũng đúng. Các giá trị đối xứng nhau qua đường chéo màu hồng. Chúng đều bằng 1 vì đó là cosine của góc giữa 1 vector và chính nó ( C O S 0 = 1 ).
- Do ma trận ví dụ khá nhỏ, bằng trực quan ta có thể thấy U 1 tương tự U 2 (s ĩ m > 0) và không tương tự các người dùng còn lại (s im < 0) hay U 3 tương tự U4, U 5 và không tương tự các người dùng còn lại,...
Tiếp đến ta tính các giá trị còn thiếu trong ma trận 1a. Giả sử k = 2, tính dự đoán đánh giá của người dùng U 1cho mục tin i 3. Các bước để tính dự đoán như sau:
Hoàng Thái Hạnh - Lớp K18HTTTC 22
Khóa luận tốt nghiệp Ứng dụng học máy trong xây dựng hệ khuyến nghị tự động
1. Xác định các người dùng đã đánh giá mục tin í3là U2, U3, U6.
2. Xác định độ tương tự của người dùng U 1 với các người dùng này trong ma trận 1c lần lượt là 0.95; -0.18; -0.11.
3. Với k = 2, ta lấy hai giá trị độ tương tự lớn nhất với U 1 là 0.95; -0.11 tương ứng với hai người dùng U 2,U 6.
4. Xác định giá trị đã qua chuẩn hóa của hai người dùng U 2 , U 6 đã đánh giá cho mục tin í 3 trong ma trận bảng 2 lần lượt là 0.33 và -1.
5. Áp dụng công thlic ⅛1 , = ^Γ1+ --ɪɪ--- ( 3 ) , ta có:
____ 0.95 * 0.33 + (—0.11) * (—1)
L, ,• = 3.3 3 +---■.---—-÷---— --- ≈ 3.73
u 1,
3=3.3 3+ |0.9 5| + |_ 0 . ι 1∣ ≈3 . 7 3
Như vậy, dự đoán đánh giá của người dùng U 1 cho mục tin í 3 là 3.73. Thực hiện các bước tương tự để tính các giá trị trống còn lại ta được ma trận đầy đủ bảng 4 như sau:
U1 U2 U3 U4 U5 U6 Ĩ1 5 5 2 1 1 ? *2 3 ? ? 1 ? 3 *3 ? 4 1 ? ? 1 Ũ 2 2 3 4 4 ?
Bảng 4. Ma trận dự đoán đầy đủ (theo độ tương tự giữa các user)
3.4.1. b. Thuật toán người láng giềng dựa trên mục tin
Ngược lại với hướng tiếp cận trên, thuật toán người láng giềng dựa trên mục tin sẽ tính toán độ tương tự giữa các mục tin trước rồi mới đưa ra gợi ý những mục tin gần giống với mục tin yêu thích của người dùng hiện hành. Trên thực tế, hướng tiếp cận này được sử dụng nhiều hơn bởi một số hạn chế lớn của hướng tiếp cận dựa trên người dùng như:
- Trên 1 hệ thống, số lượng người dùng luôn lớn hơn số lượng mục tin rất nhiều. Do đó ma trận độ tương tự là rất lớn khiến cho việc lưu trữ ma trận này bất khả thi trong một