- Tìm ra một số sản phẩm tốt nhất.
- Gợi ý một nhóm sản phẩm khác liên quan có thể cũng phù hợp với mình.
- Cải thiện profile người dùng.
- Tác động tới những người dùng khác.
1.3. Ứng dụng của hệ khuyến nghị
Trong thực tế RS được tích hợp vào ứng dụng của rất nhiều lĩnh vực, đặc biệt là những lĩnh vực sau:
- Thương mại điện tử: đề xuất sản phẩm phù hợp với tìm kiếm của người sử dụng hoặc đưa ra những sản phẩm liên quan.
- Giải trí: Gợi ý bài hát, bộ phim, địa điểm du lịch, sách báo,... phù hợp với sở thích người dùng.
- Giáo dục: Dự đoán kết quả của học sinh sinh viên, gợi ý môn học ngành học, đề xuất các tài liệu học tập,.
1.4. Những thách thức khi xây dựng hệ khuyến nghị
1.7.1. Khởi động nguội/ khởi động yếu (Cold-Start)
Cold-start xảy ra do hệ thống chưa thu thập đủ thông tin dẫn đến không thể tạo các gợi ý hữu ích. Ba nguyên nhân dẫn đến vấn đề này gồm: mục tin mới, người dùng mới và do hệ thống mới. Khi có một người dùng mới bắt đầu sử dụng thì hệ thống hoàn toàn không có thông tin gì về người đó cũng như khi thêm một mục tin mới vào hệ thống thì cũng không có bất kì phản hồi của người dùng nào về mục tin này. Còn nếu hệ thống mới được đưa vào sử dụng sẽ gây ra đồng thời cả hai vấn đề trên.
Đối với kỹ thuật lọc nội dung, hệ thống phải xây dựng mô hình chi tiết về sở thích và thị hiếu người dùng tường minh bằng cách truy vấn người dùng, hoặc không tường minh bằng cách giám sát các hành vi sử dụng hệ thống của người dùng. Do vậy, để tránh cold- start người dùng phải thực sự sử dụng hệ thống để góp phần xây dựng profile của mình. (Xiaoyuan Su & Taghi M.Khoshgoftaar, 2009) [5].
Đối với kỹ thuật lọc cộng tác, RS xác định độ tương tự của các người dùng trước với người dùng hiện hành để đề xuất các mục tin mà những người dùng tương tự đó thích nên việc đưa ra gợi ý sẽ thất bại nếu các mục tin chưa được đánh giá, xếp hạng bởi bất kỳ người dùng nào (Xiaoyuan Su & Taghi M.Khoshgoftaar, 2009) [5].
CHƯƠNG 2: ỨNG DỤNG HỌC MÁY TRONG HỆ KHUYẾN NGHỊ
2.1. Tổng quan về học máy (Machine Learning)
Trí tuệ nhân tạo (Artificial Intelligence - AI) là các kỹ thuật giúp cho máy tính thực hiện được những công việc như con người. Học máy (Machine Learning - ML) là một nhánh của AI. Hiện không có khái niệm chính thức nào nhưng khái quát lại, Học máy là các kỹ thuật giúp cho hệ thông máy tính có khả năng " tự học" từ dữ liệu để giải quyết những công việc cụ thể. Ví dụ như các máy tính có thể tự động phân loại các thư có chứa quảng cáo và tự động xếp thư vào thư mục rác mà không cần phải dán nhãn “spam” hay phải chỉ trước bất kỳ quy tắc nào cả.
Tom Mitchell trong cuốn sách Machine Learning cũng đã cung cấp một định nghĩa:
“A computer program is said to learn from experience E with respect to some class of tasks T and performance measure P, if its performance at tasks in T, as measured by P, improves with experience E.”[7]. Ta có thể diễn giải như sau: Một chương trình máy tính được gọi là “học” từ kinh nghiệm E với tác vụ T và được đánh giá bởi độ đo P khi và chỉ khi máy tính khiến tác vụ T này cải thiện được độ chính xác P thông qua dữ liệu E cho trước. Đây là các thành phần cơ bản mà bất cứ hệ thống học máy nào cũng có. Với ví dụ bên trên, dữ liệu E cho trước là tập dữ liệu email, tác vụ T là việc xác định email có phải là email spam hay không. Mô hình này được đánh giá bởi độ chính xác P và có thể tiến hành cải thiện mô hình dựa vào độ đo này.
Một nhánh nhỏ của ML gần đây rất được quan tâm và ưa chuông là Học sâu (Deep Learning). Deep Learning tập trung giải quyết các vấn đề liên quan đến mạng thần kinh
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.7.2. Dữ liệu thưa
Dữ liệu thưa là một vấn đề thường gặp phải trong các RS sử dụng kỹ thuật lọc cộng tác. Vấn đề xảy ra khi dữ liệu về thông tin phản hồi (feedback) không đủ để xác định những người láng giềng gây ảnh hưởng chính đến chất lượng của RS. Lọc cộng tác thường sử dụng ma trận thưa để biểu diễn dữ liệu. Khi số lượng người dùng và mục tin tăng lên, đồng nghĩa với ma trận user-item-feedback sẽ lớn hơn, các ô trống chưa được đánh giá cũng sẽ tăng lên dẫn đến dữ liệu thưa. Có nhiều phương pháp đã được đề xuất nhưng hầu hết chỉ đều thành công trong việc cung cấp các gợi ý tốt hơn mà chưa có một mô hình chung để giải quyết triệt để vấn đề này (Xiaoyuan Su & Taghi M.Khoshgoftaar, 2009)[5].
1.7.3. Khả năng mở rộng
Đối với nhiều hệ khuyến nghị có nhiều người sử dụng và nhiều sản phẩm, duy trì khả năng mở rộng là một vấn đề thách thức. Hầu hết các hệ khuyến nghị sử dụng các kiểu lọc cộng tác khác nhau để xây dựng các đề xuất các sản phẩm liên quan đến mối quan tâm của người dùng. Tuy nhiên, các kỹ thuật lọc cộng tác này yêu cầu tính toán rất nhiều tùy theo số lượng người dùng và sản phẩm trong cơ sở dữ liệu (mà thường số lượng người dùng và sản phẩm rất lớn), do vậy mà các hệ khuyến nghị sẽ bị ảnh hưởng nghiêm trọng bởi vấn đề khả năng mở rộng. Thêm vào đó, các phương pháp đề xuất để xử lý vấn đề khả năng mở rộng và thúc đẩy xây dựng các gợi ý dựa trên cơ chế xấp xỉ. Ngay cả khi chúng ta cải tiến hiệu năng, hầu hết kết quả đưa ra giảm tính chính xác.
Hoàng Thái Hạnh - Lớp K18HTTTC 11
nhân tạo, nâng cấp các công nghệ như nhận diện giọng nói hay xử lý ngôn ngữ tự nhiên. mang lại những thành tựu vô cùng to lớn, mở ra kỉ nguyên công nghệ mới cho con người. Ví dụ như AlphaGo của Google đã chiến thắng nhà vô địch cờ vây Lee Sedol vào tháng 3 năm 2016. Tính năng nhận diện khuôn mặt khá chính xác của Facebook được triển khai vào năm 2016. Trợ lý ảo Siri của Apple được giới thiệu từ năm 2006. Xe tự lái của Google được thử nghiệm chính thức trên đường phố vào năm 2015....” (Đỗ Minh Hải) [12].
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 7. Mô tả quan hệ giữa AI-ML-DL
2.1. Phân loại các thuật toán Machine Learning
Có hai cách phân loại các thuật toán ML là dựa theo phương thức học và dựa theo chức năng của mỗi thuật toán.
2.2.1. Phân loại dựa theo phương thức học
2.2.1. a. Học có giám sát (Supervied Learning)
Học có giám sát là nhóm phổ biến nhất trong các thuật toán ML. Nhóm bao gồm các thuật toán dự đoán đầu ra (output) của một dữ liệu mới (new input) dựa trên các cặp (I/O) đã biết từ trước. Các cặp dữ liệu này còn được gọi là (data, label), tức (dữ liệu, nhãn).
Một cách toán học, Học có giám sát là khi chúng ra có một tập hợp biến đầu vào X = i X1,X2,. . .,Xn } và một tập hợp nhãn tương ứng Y = {y1,y2, . . .,yn }, trong đó xj, yj là các vector. Các cặp dữ liệu biết trước (xj, yj) ∈ X × Y được gọi là tập training data (dữ liệu huấn luyện). Từ tập traing data này, chúng ta cần tạo ra một hàm số ánh xạ mỗi phần tử từ tập X sang một phần tử (xấp xỉ) tương ứng của tập Y: yj≈ f (xi), V i 1 ,2 ,..., N. Mục đích là xấp xỉ hàm số f thật tốt để khi có một dữ liệu x mới, chúng ta có thể tính được nhãn tương ứng của nó y = f(x).
Ví dụ, trong bài toán nhận dạng chữ viết tay, input là ảnh của hàng nghìn chữ số được viết bởi nhiều người khác nhau. Thuật toán cần tạo ra một mô hình tức một hàm số mà đầu vào là một bức ảnh và đầu ra là một chữ số tương ứng, như vậy khi nhận được một bức ảnh mô hình sẽ dự đoán có chữ số nào trong đó.
Học có giám sát còn được tiếp tục chia ra thành hai loại chính là Phân loại (Classification) và Hồi quy (Regression).
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
- Phân loại là bài toán có các nhãn (label) của dữ liệu đầu vào được chia thành một số hữu hạn nhóm. Ví dụ: nhận dạng email spam hay nhận diện khuôn mặt của Facebook.
- Nếu nhãn của dữ liệu đầu vào là một giá trị thực cụ thể (ví dụ: căn phòng X m2) thì bài toán đó gọi là Hồi quy.
2.2.1. b. Học không giám sát (Unsupervised Learning)
Học không giám sát khác với học có giám sát ở chỉ có dữ liệu đầu vào không biết được outcome hay label. Nói một cách toán học, học không giám sát là khi chúng ta chỉ có dữ liệu vào X mà không biết nhãn Y tương ứng. Thuật toán sẽ dựa vào cấu trúc của dữ liệu để thực hiện một công việc nào đó như phân nhóm (clustering) hoặc giảm số chiều dữ liệu (dimension reduction) để thuận tiện trong việc lưu trữ và tính toán.
Học không giám sát cũng được chia tiếp thành hai loại là phân nhóm (Clustering) và khai phá luật kết hợp (Association).
- Phân nhóm là bài toán phân nhóm toàn bộ dữ liệu X thành các nhóm nhỏ dựa trên sự liên quan giữa các dữ liệu trong mỗi nhóm. Ví dụ: phân nhóm khách hàng dựa trên hành vi mua hàng.
- Khai phá luật kết hợp là bài toán giúp khám phá ra một quy luật dựa trên nhiều dữ liệu cho trước. Ví dụ: những khách hàng mua sách thường có xu hướng mua thêm bút hoặc kẹp sách, từ đó có thể tạo ra một RS thúc đẩy nhu cầu mua sắm của khách hàng.
2.2.1. c. Học bán giám sát (Semi-Supervised Learning)
Học bán giám sát nằm giữa hai nhóm học có giám sát và học không giám sát. Nói theo cách toán học là dữ liệu X đầu vào lớn nhưng chỉ một phần trong chúng được gán nhãn. Trên thực tế, rất nhiều các bài toán ML thuộc vào nhóm này vì việc thu tập, gán nhãn dữ liệu tốn nhiều thời gian và chi phí.
2.2.1. d. Học tăng cường (Reinforcement Learning)
Học tăng cường là các bài toán giúp cho một hệ thống tự động xác định hành vi dựa trên hoàn cảnh để đạt được lợi ích cao nhất. Các bài toán này đều không có cặp dữ liệu gán nhãn X, Y đầu vào.
2.2.2. Phân loại dựa trên chức năng
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.