4.1.1. Mục đích của thực nghiệm
Mục tiêu của đề tài là hệ thống hóa các khái niệm về học máy, các thuật toán sử dụng trong phân tích dữ liệu dựa trên học máy và các ứng dụng của học máy trong các bài toán kinh tế; dựa trên thực trạng ứng dụng phân tích dữ liệu khách hàng và khách hàng trực tuyến bằng các công cụ công nghệ mới từ đó trình bày một số thuật toán học máy phổ biến ứng dụng trong phân tích dữ liệu khách hàng trực tuyến và so sánh mức độ phù hợp của các thuật toán đối dữ liệu lịch sử của khách hàng thu thập được trên các phương tiện truyền thông xã hội hiện nay.
Vì vậy, mục đích của chương 4 là trình bày một thực nghiệm để so sánh mức độ phù hợp của các thuật toán học máy trong ứng dụng thực tế vào phân tích dữ liệu khách hàng trực tuyến. Từ đó đưa ra các khuyến nghị phù hợp đối với các kiểu dữ liệu khách hàng phù hợp trong ứng dụng phân tích dữ liệu khách hàng trực tuyến cho các tổ chức, doanh nghiệp
4.1.2. Các bước chuẩn bị cho thực nghiệm
Để thực hiện thực nghiệm, nhóm nghiên cứu thực hiện các bước gồm:
Thứ nhất thu thập và tiền xử lý dữ liệu: Đề tài tiến hành thực nghiệm trên hai bộ dữ liệu:
Bộ dữ liệu thứ nhất là bộ dữ liệu mẫu 20News group bằng Tiếng Anh lấy từ địa chỉ của Đại học Standford (https://library.stanford.edu/science/databases). Đây là bộ dữ liệu mẫu được dùng trong phân tích và đánh giá các thuật toán học máy rất phổ biến. Thu thập từ các phương tiện truyền thông xã hội với 20 nhãn. Trong đó có 11.293 tài liệu trong tập huấn luyện, có 7.528 trong tập kiểm thử.
Bộ dữ liệu thứ 2 là nhóm nghiên cứu dưới sự trợ giúp của sinh viên chuyên thu thập trực tiếp từ bình luận về các sản phẩm của khách hàng trên một số trang thương mại điện tử như tiki.vn, sendo.vn và shopee.vn cùng một số trang bán hàng trên mạng xã hội Facebook.com. Sau khi tinh chỉnh và lọc các dữ liệu không phù hợp, nhóm nghiên cứu thu được một bộ gồm 2000 tài liệu với 20 nhãn để xây dựng bộ dữ liệu thực nghiệm. Các nội dung thu thập trên thực tế của bộ dữ liệu Tiếng Việt gồm các bài viết, các bình luận và các đánh giá, nhận xét của khách hàng trên một số trang thương mại điện tử và cổng thanh toán minh họa trong Hình 4.1 và Hình 4.2
42
Hình 4.1: Dữ liệu đánh giá sản phẩm của trang https://shopee.vn/ và sendo.vn
Thứ hai xây dựng bộ mẫu dữ liệu thực nghiệm: Để xây dựng bộ dữ liệu thực nghiệm, nhóm nghiên cứu thực hiện lấy ngẫu nhiên trong 2 bộ dữ liệu, mỗi bộ gồm 1000 tài liệu để chạy thực nghiệm.
Các tài liệu được tính bằng cách tách từ và tính thêm trọng số của các từ xuất hiện trong các tài liệu TF.IDF để phù hợp với đầu vào của một số thuật toán.
Trong đó, TF là tần suất xuất hiện của từ đó trong tổng số tài liệu, IDF là nghịch đảo của tần số hay là từ quan trọng của tài liệu. Sau khi tiền xử lý, mỗi tài liệu được biểu diễn trong một file csv để thuận tiện cho thực nghiệm và tính toán.
Thông số các bộ dữ liệu thực nghiệm được mô tả trong Bảng 4.1
43
Bảng 4.1: Tóm tắt thông số của các bộ dữ liệu thử nghiệm Bộ ngữ liệu Tổng số mẫu Số mẫu dùng TN Tổng số nhãn Số nhãn/mẫu Ngôn ngữ
20 NewsGroups 20000 1000 20 Đơn Anh
Bộ dữ liệu thực 2000 1000 20 Đơn Tiếng Việt
Dữ liệu sau khi phân tích và xây dựng được lưu vào các tập tin đuôi scv mình họa trong Bảng 4.2 sau đây:
Bảng 4.2: Minh họa dữ liệu thu thập từ thực tế
Nội dung Nhãn
Quản trị kém là nguyên nhân gây trì trệ. Tổ chức nhân sự kém thì người làm
được việc rồi cũng đi hết. Còn lại là một mớ bòng bong cần giải quyết. Kinh doanh
HÀNG RONG THỜI @ Hôm trước, lên phố có dịp ngồi nhậu với mấy người bạn ở nhà hàng Góc Phố trên đường Lê Quang Đạo, (gần Karaoke Táo Đỏ). Mà công nhận ở khu vực này phát triển, quán xá nhiều và đẹp thiệt. Hai anh em vừa ngồi vào bàn gọi bia, mồi nhậu thì có một chị đến mời mua bánh lọc, tôi nói đã gọi mồi rồi nhưng chị cứ nằn nì mãi (là em còn 1 dĩa bánh, anh mua giúp em) nên tôi mua 1 dĩa bánh lọc giá 20K (10 cái). Mới uống ly bia, chưa kịp ăn bánh lọc thì có thêm em bé khoảng 13 tuổi, trên tay bồng thêm một cháu nhỏ khoảng hơn 01 tuổi đến mời, chú ơi mua cho con 01 bì đậu phụng luộc, tôi nói là không mua, chú mua bánh rồi nhưng cháu cứ nằn nì mãi, cầm lòng không đậu nên tôi mua 01 lon đậu giá 10K. Quán chưa kịp mang mồi ra thì có thêm đứa bé nhỏ bồng 01 đứa em, nhắc thêm đứa em khoảng 04 tuổi mời tôi mua đậu phụng da cá, tôi dứt khoát không mua nhưng cháu nhỏ cứ mời mãi "chú ơi mua giùm con, chú ơi mua giùm con..." thấy mấy đứa nhỏ hoàn cảnh quá, nghĩ mấy đứa này như con của mình ở nhà đang là tuổi ăn, tuổi học nên tôi mua 02 bì với giá 10K, và tôi nói: mua rồi, mấy đứa bây đi bán chổ khác để chú nói chuyện. Khi đó tôi liếc mắt ra ngoài đường thì …
Ps: Hình ảnh này chỉ mang tính minh họa.
Kinh doanh
Cần tuyển 1 bạn content marketing. Tư duy sáng tạo, khùng khùng. Kiểu viết linh tinh mà vẫn nhiều lượt like cmt, share thì càng tốt. Làm việc tại Times city (Minh khai) Thu nhập : 6-8M (tuỳ thuộc thái độ cũng như độ khùng ) :)) P/s: Tag mấy bạn khùng khùng như thế để giới thiệu, vì nghe bảo khùng hay chơi với nhau.
Kinh doanh
Thứ ba lựa chọn một số thuật toán phù hợp với dữ liệu văn bản: Có rất nhiều thuật toán học máy có thể áp dụng cho bài toán phân tích dữ liệu khách hàng tuy nhiên trong đề tài, nhóm nghiên cứu lựa chọn một số thuật toán được đánh giá là phổ biến và có kết quả nghiên cứu khá tốt trong những nghiên cứu gần đây. Các thuật toán được lựa chọn để thực nghiệm được thống kê trong Bảng 4.3
44
Bảng 4.3: Danh sách các thuật toán được sử dụng để so sánh
Thuật toán Đặc trưng đầu vào Gán đơn nhãn Gán đa nhãn
CNN Văn bản gốc x x T2V Văn bản gốc x x MNB TF-IDF x NB TF-IDF x SVM TF-IDF x K-NN TF-IDF x C4.5 TF-IDF x
Thuật toán CNN: Convolutional Neural Network (CNNs – Mạng nơ-ron tích chập) là một trong những mô hình Deep Learning tiên tiến, CNN được đánh giá là thuật toán ứng dụng tốt cho phân tích dữ liệu văn bản.
Mạng CNN gồm một tập hợp các lớp tích chập (convolution) chồng lên nhau và sử dụng các hàm khởi tạo phi tuyến (nonlinear activation) như ReLU và tanh để kích hoạt các trọng số trong các nút (node). Mỗi một lớp sau khi thông qua các hàm kích hoạt sẽ tạo ra các thông tin trừu tượng hơn cho các lớp tiếp theo.
Trong mô hình mạng truyền ngược (feedforward neural network) thì mỗi nơ ron đầu vào (input node) cho mỗi nơ ron đầu ra trong các lớp tiếp theo. Mô hình này gọi là mạng kết nối đầy đủ (fully connected layer) hay mạng toàn vẹn (affine layer). Còn trong mô hình CNNs thì ngược lại. Các lớp liên kết được với nhau thông qua cơ chế tích chập. Lớp tiếp theo là kết quả tích chập từ lớp trước đó, nhờ vậy mà có được các kết nối cục bộ.
Mỗi một lớp được sử dụng các bộ lọc khác nhau thông thường có hàng trăm hàng nghìn bộ lọc như vậy và kết hợp kết quả của chúng lại. Ngoài ra có một số lớp khác như pooling/subsampling layer dùng để chắt lọc lại các thông tin hữu ích hơn (loại bỏ các thông tin nhiễu).
45
Hình 4.3 : Minh họa thuật toán CNN (Kim Y. , 2014) Thuật toán T2V hay word2vec:
Thuật toán Word2Vec hoặc Word Embedding biểu diễn các từ dưới dạng các vector số thực với số chiều xác định. Word2Vec là một trong những mô hình đầu tiên về Word Embedding sử dụng mạng nơ ron, vẫn khá phổ biến ở thời điểm hiện tại, có khả năng vector hóa từng từ dựa trên tập các từ chính và các từ văn cảnh...
Về mặt toán học, thực chất Word2Vec là việc ánh xạ từ một tập các từ (vocabulary) sang một không gian vector, mỗi vector được biểu diễn bởi n số thực. Mỗi từ ứng với một vector cố định. Sau quá trình huấn luyện mô hình bằng thuật toán backprobagation, trọng số các vector của từng từ được cập nhật liên tục.
Từ đó, có thể thực hiện tính toán bằng các khoảng cách quen thuộc như euclide, cosine, mahattan, ,..., những từ càng "gần" nhau về mặt khoảng cách thường là các từ hay xuất hiện cùng nhau trong văn cảnh, các từ đồng nghĩa, các từ thuộc cùng 1 trường từ vừng, ..
46
Hình 4.4 : Minh họa thuật toán Word2Vec (Allahyari, Mehdi, et al. (2017)
Thuật toán MNB: Định lý Bayes cho phép tính xác suất xảy ra của một sự kiện ngẫu nhiên A khi biết sự kiện liên quan B đã xảy ra. Xác suất này được ký hiệu là P(A|B), và đọc là “xác suất của A nếu có B”. Đại lượng này được gọi xác suất có điều kiện hay xác suất hậu nghiệm vì nó được rút ra từ giá trị được cho của B hoặc phụ thuộc vào giá trị đó.
Theo định lí Bayes, xác suất xảy ra A khi biết B sẽ phụ thuộc vào 3 yếu tố: - Xác suất xảy ra A của riêng nó, không quan tâm đến B. Kí hiệu là P(A) và đọc là xác suất của A. Đây được gọi là xác suất biên duyên hay xác suất tiên nghiệm, nó là “tiên nghiệm” theo nghĩa rằng nó không quan tâm đến bất kỳ thông tin nào về B.
- Xác suất xảy ra B của riêng nó, không quan tâm đến A. Kí hiệu là P(B) và đọc là “xác suất của B”. Đại lượng này còn gọi là hằng số chuẩn hóa (normalising constant), vì nó luôn giống nhau, không phụ thuộc vào sự kiện A đang muốn biết.
- Xác suất xảy ra B khi biết A xảy ra. Kí hiệu là P(B|A) và đọc là “xác suất của B nếu có A”. Đại lượng này gọi là khả năng (likelihood) xảy ra B khi biết A đã xảy ra. Chú ý không nhầm lẫn giữa khả năng xảy ra B khi biết A và xác suất xảy ra A khi biết B.
47
Hình 4.5: Thuật toán NB nguyên thủy (A.M. Kibriya, et al., (2004)
Thuật toán SVM: SVM là phương pháp phân lớp rất hiệu quả được Vapnik giới thiệu vào năm 1995 để giải quyết nhận dạng mẫu hai lớp sử dụng nguyên lý Cực tiểu hoá Rủi ro Cấu trúc (Structural Risk Minimization). Ý tưởng chính của thuật toán này là cho trước một tập huấn luyện được biểu diễn trong không gian vector trong đó mỗi tài liệu là một điểm, phương pháp này tìm ra một mặt phẳng h quyết định tốt nhất có thể chia các điểm trên không gian này thành hai lớp riêng biệt tương ứng lớp + và lớp -. Chất lượng của siêu mặt phẳng này được quyết định bởi khoảng cách (gọi là biên) của điểm dữ liệu gần nhất của mỗi lớp đến mặt phẳng này. Khoảng cách biên càng lớn thì mặt phẳng quyết định càng tốt đồng thời việc phân loại càng chính xác. Mục đích thuật toán SVM tìm ra được khoảng cách biên lớn nhất để tạo kết quả phân lớp tốt.
Hình 4.6 : Mô phỏng thuật toán SVM (Allahyari, Mehdi, et al. (2017)
Thuật toán K-NN:có giám sát điển hình, đó là k-nearest neighbor (kNN hay k- láng giềng gần nhất) kNN là phương pháp truyền thống khá nổi tiếng theo hướng tiếp cận thống kê đã được nghiên cứu trong nhiều năm qua. kNN được đánh giá là một trong
48
những phương pháp tốt nhất được sử dụng từ những thời kỳ đầu trong nghiên cứu về phân loại văn bản Ý tưởng của phương pháp này đó là khi cần phân loại một văn bản mới, thuật toán sẽ xác định khoảng cách (có thể áp dụng các công thức về khoảng cách như Euclide, Cosine, Manhattan, …) của tất cả các văn bản trong tập huấn luyện đến văn bản này để tìm ra k văn bản gần nhất, gọi là k nearest neighbor – k láng giềng gần nhất, sau đó dùng các khoảng cách này đánh trọng số cho tất cả các chủ đề. Khi đó, trọng số của một chủ đề chính là tổng tất cả các khoảng cách ở trên của các văn bản trong k láng giềng có cùng chủ đề, chủ đề nào không xuất hiện trong k láng giềng sẽ có trọng số bằng 0. Sau đó các chủ đề sẽ được sắp xếp theo giá trị trọng số giảm dần và các chủ đề có trọng số cao sẽ được chọn làm chủ đề của văn bản cần phân loại.
Thuật toán C4.5: C4.5 là thuật toán phân lớp dữ liệu dựa trên cây quyết định hiệu quả và phổ biến trong những ứng dụng khai phá cơ sở dữ liệu có kích thước nhỏ. C4.5 sử dụng cơ chế lưu trữ dữ liệu thường trú trong bộ nhớ, chính đặc điểm này làm C4.5 chỉ thích hợp với những cơ sở dữ liệu nhỏ, và cơ chế sắp xếp lại dữ liệu tại mỗi node trong quá trình phát triển cây quyết định. C4.5 còn chứa một kỹ thuật cho phép biểu diễn lại cây quyết định dưới dạng một danh sách sắp thứ tự các luật if-then (một dạng quy tắc phân lớp dễ hiểu). Kỹ thuật này cho phép làm giảm bớt kích thước tập luật và đơn giản hóa các luật mà độ chính xác so với nhánh tương ứng cây quyết định là tương đương. Tư tưởng phát triển cây quyết định của C4.5 là phương pháp Hunt đã nghiên cứu ở trên. Chiến lược phát triển theo độ sâu (depth-first strategy) được áp dụng
cho C4.5.
4.2. KỊCH BẢN THỰC NGHIỆM VÀ THAM SỐ ĐẦU RA 4.2.1. Kịch bản thực nghiệm 4.2.1. Kịch bản thực nghiệm
Với mỗi thực nghiệm (tương ứng với một bộ ngữ liệu), các bước tiến hành tương tự phương pháp One-vs-All như sau:
Với mỗi nhãn có trong bộ dữ liệu lấy N văn bản để thử nghiệm.
Trong N văn bản này có N/2 mẫu có nhãn đang xét (chọn ngẫu nhiên) và N/2 mẫu còn lại chọn là tập các văn bản của các nhãn còn lại được lựa chọn ngẫu nhiên.
Cụ thể với hai bộ ngữ liệu 20 NewsGroups và bộ ngữ liệu Tiếng Việt đều có 1000 mẫu
Cả hai bộ ngữ liệu đều lấy bằng N = 200
Đề tài sử dụng phương pháp cross-validation để thực hiện như sau:
Chia 1000 mẫu văn bản thành 10 nhóm con (10-folds cross-validation). Mỗi lần, lấy một nhóm làm bộ kiểm tra (bộ test), 9 nhóm còn lại làm bộ dữ liệu học (bộ training).
Sau đó thực hiện việc lặp 10 lần cho mỗi fold như sau:
Coi mẫu có nhãn tương ứng nhãn đang xét là YES, các mẫu có nhãn khác đều gán thành nhãn NO. Bài toán trở thành phân loại văn bản theo hai nhãn YES và NO.
Dùng nhóm đang xét làm bộ kiểm thử (test).
49
Lần lượt áp dụng các thuật toán được xem xét để huấn luyện và kiểm thử trên hai tập trên.
Quan sát và lưu lại các tham số đầu ra.
Tính trung bình giá trị trên từng tham số đầu ra cho từng nhãn.
Mỗi thuật toán thực hiện chạy 10 lần, ghi lại kết quả sau đó tính kết quả trung bình của 10 lần lặp. So sánh kết quả đầu ra sau 10 lần lặp.
4.2.2. Tham số đầu ra
Tham số đầu ra cho kịch bản này là F1- score và Precision
Đánh giá dựa trên độ chính xác (Accuracy), độ nhạy (Recall). Accuracy và Recall được tính toán dựa trên ma trận nhầm lẫn (confusion matrix), đây là một trong các độ đo phổ biến trong đánh giá mô hình của các nghiên cứu về dữ liệu trên các trang mạng xã hội như các nghiên cứu về hệ thống khuyến nghị sản phẩm, tư vấn khách hàng.
Trong đó, đánh giá dựa trên độ chính xác (𝑃𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛) được tính bằng:
𝑃𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛 = 𝑇𝑟𝑢𝑒 𝑃𝑜𝑠𝑖𝑡𝑖𝑣𝑒
𝑇𝑟𝑢𝑒 𝑃𝑜𝑠𝑖𝑡𝑖𝑣𝑒 + 𝐹𝑎𝑙𝑠𝑒 𝑃𝑜𝑠𝑖𝑡𝑖𝑣𝑒 =
𝑇𝑃 𝑇𝑃 + 𝐹𝑃
Recall hay độ nhạy được tính bằng:
𝑅𝑒𝑐𝑎𝑙𝑙 = 𝑇𝑟𝑢𝑒 𝑃𝑜𝑠𝑖𝑡𝑖𝑣𝑒
𝑇𝑟𝑢𝑒 𝑃𝑜𝑠𝑖𝑡𝑖𝑣𝑒 + 𝐹𝑎𝑙𝑠𝑒 𝑁𝑒𝑔𝑎𝑡𝑖𝑣𝑒 =
𝑇𝑃 𝑇𝑃 + 𝐹𝑁
Báo cáo của đề tài còn sử dụng F1- measure hay F1- score và độ chính xác Accuracy để đánh giá và so sánh các kết quả thực nghiệm. Giá trị của chúng được tính