3.1.1 Hướng tiếp cận
Ngày nay, việc đƣa Machine Learning vào trong vào trong các hệ thống thông tin thông minh ngày càng đƣợc phổ biến rộng rãi vì Machine Learning có những ƣu điểm vƣợt bậc mà các giải pháp thông thƣờng không giải quyết đƣợc.
Đối với những hệ thống thƣơng mại điện tử bình thƣờng, chúng ta chỉ có thể tìm kiếm những sản phẩm mà ta cần theo danh mục các sản phẩm đã có sẵn trong hệ thống điều đó đồng nghĩa với việc nếu hệ thống có ít sản phẩm thì ngƣời dùng có thể tìm kiếm ngay ra sản phẩm mình cần tìm nhƣng với hệ thống có rất nhiều sản phẩm giống nhau và có những thuộc tính giống nhau tuy nhiên trong các thuộc tính đó lại có những sản phẩm phù hợp với ngƣời dùng hơn thì những hệ thống thƣơng mại điện tử bình thƣờng không thể đƣa ra một các nhanh chóng cho ngƣời dùng hoặc ngƣời dùng phải mất rất nhiểu thời gian để tìm kiếm đƣợc những gì mình cần.
Điển hình là bài toán gợi ý cho ngƣời dùng các đối tƣợng mà họ có thể quan tâm. Chẳng hạn ơ những ứng dụng thƣơng mại điện tử thông thƣờng, việc gợi ý này chỉ dựa trên một vài tiêu chí nhất định nhƣ nhóm đối tƣợng, mức giá, mầu sắc…
35
Tuy nhiên, một đối tƣợng sẽ có rất nhiều thuộc tính khác nhau, chỉ dựa vào một vài thuộc tính sẽ không đánh giá hết đƣợc độ tƣơng đồng của các đối tƣợng. Hơn nữa, khi lƣợng dữ liệu trở nên vô cùng lớn, việc truy vấn theo nhiều điều kiện phức tạp sẽ không đảm bảo đƣợc hiệu năng hệ thống. Theo khảo sát của Amazon, đa số ngƣời dùng trả lời rằng họ không muốn tiếp tục khám phá ứng dụng thƣơng mại điện tử nếu thời gian phản hồi của ứng dụng quá chậm.
Để giải quyết đƣợc cấn vấn đề này, chúng ta phải xây dựng trƣớc đƣợc mối liên hệ giữa các đối tƣợng tƣơng tự nhau dựa trên các thuộc tính của chúng và thực hiện đánh chỉ mục trƣớc khi thực hiện truy vấn.
3.1.2 Kiến trúc hệ thống
Trong chƣơng này tôi sẽ trình bày một mô hình tổng thể cho việc lƣu vết hành vi của ngƣời dùng với một hệ thống thông tin để đƣa ra gợi ý đối tƣợng thông tin mà ngƣời sử dụng quan tâm, và một giải pháp sử dụng học máy nhằm đƣa các đối tƣợng tƣơng đồng vào vào các nhóm cụ thể dựa theo tập thuộc tính của các đối tƣợng.
Hình 3.2: Sơ đồ luồng hệ thống
Thêm/ sửa đối tƣợng trong hệ thống
Tạo nhóm đối tƣợng tƣơng đồng
Kho dữ liệu
Lƣu vào kho dữ liệu
Xác định đặc tính ngƣời dùng
Xác định nhóm đối tƣợng tƣơng đồng
Truy cập kho dữ liệu để lấy thông tin đối tƣợng
36
Tại OffShore mode:
Đây là chế độ dành cho ngƣời quản trị. Mỗi khi thêm hoặc sửa dữ liệu về đặc tính của đối tƣợng, hệ thống sẽ thực hiện đƣa đối tƣợng này vào đúng nhóm mà chúng thuộc về.
Sau khi đã thiết lập nhóm cho các đối tƣợng, toàn bộ dữ liệu này sẽ đƣợc đánh chỉ mục và lƣu vào kho dữ liệu.
Tôi sử dụng học máy trong quá trình phân nhóm đối tƣợng. Có 3 phƣơng pháp học máy là:
Học có giám sát
Học không giám sát
Học bán giám sát
Nếu sử dụng phƣơng pháp học có giám sát, yêu cầu phải có tập dữ liệu đã đƣợc gán nhãn là rất lớn thì mới cho hiệu quả cao. Vấn đề là thật khó để định nghĩa các nhãn lớp cụ thể cho từng đối tƣợng, hơn nữa, quá trình này tốn rất nhiều công sức thủ công.
Do không có nhiều dữ liệu đã đƣợc gán nhãn lớp và việc gán nhãn lớp trong trƣờng hợp này là không có tiêu chí cụ thể, vì thế, tôi sự dụng phƣơng pháp học không giám sát bằng thuật toán Kmean để thực hiện phân nhóm cho các đối tƣợng.
Trong quá trình vận hành hệ thống, tôi đã thêm một module lƣu lại các đối tƣợng mà cùng một ngƣời dùng lựa chọn để xem thông tin hoặc like đối tƣợng. Sau đó, để tăng độ chính xác cho quá trình phân nhóm, tôi sử dụng học máy để huấn luyện ra hàm khoảng cách và dùng hàm khoảng cách này để phân nhóm cho toàn bộ các đối tƣợng trong ứng dụng.
Nhƣ vậy, trong luận văn này áp dụng học bán giám sát bằng cách kết hợp học không giám sát và huấn luyện hàm khoảng cách bằng học có giám sát dựa trên tập dữ liệu ít ỏi đƣợc phân nhóm có sẵn.
37
Tại Online mode:
Khi ngƣời dùng truy cập vào ứng dụng thƣơng mại điện tử, hệ thống sẽ xem xét đó có phải là ngƣời dùng đã từng truy cập vào ứng dụng hay là một ngƣời dùng hoàn toàn mới.
- Nếu là ngƣời dùng mới và ứng dụng chƣa có thông tin gì về ngƣời dùng này thì sẽ liệt kê ngỗng nhiên các đối tƣợng thuộc các nhóm khác nhau để gợi ý cho ngƣời dùng.
- Nếu trƣớc đây ngƣời dùng đã từng truy cập vào ứng dụng thì sẽ tìm cách liệt kê các đối tƣợng dựa theo thông tin mà trƣớc đó ngƣời dùng đã để lại.
Một ngƣời dùng khi truy cập ứng dụng sẽ có các hành động: xem, like hoặc đặt hàng đối tƣợng. Nhƣ vậy, tôi đƣa ra cách thức lƣu vết ngƣời dùng qua cách hành động của họ nhƣ sau:
Với mỗi phiên truy cập, hệ thống sẽ lƣu lại IP của ngƣời dùng nhƣ là một định danh (ID) của ngƣời dùng. Khi ngƣời dùng thực hiện đăng kí tài khoản, IP đó sẽ chuyển thành ID thực sự của ngƣời dùng. Mỗi khi ngƣời dùng chọn xem đối tƣợng, hệ thống sẽ lƣu lại thông tin vào bảng sau:
Bảng 3.1: Mô tả cấu trúc bảng lưu trữ hành vi người sử dụng
IP hoặc ID Định danh ngƣời dùng
Mã đối tƣợng Mã đối tƣợng trên ứng dụng
View Lƣợt view, x1 (nhân 1) mỗi khi ngƣời dùng view đối tƣợng đó
Like x3 (nhân 3) nếu ngƣời dùng thích
Trong đó, cặp IP/ID và Mã đối tƣợng là cặp khóa duy nhất trong bảng. Mỗi đối tƣợng tƣơng ứng với Mã đối tƣợng đã đƣợc phân lớp từ trƣớc. Từ vết khách hàng này, hệ thống sẽ tính ra lớp đối tƣợng mà ngƣời dùng thích, sau đó sẽ liệt kê các đối tƣợng trong lớp này làm mục tiêu gợi ý
38
cho khách hàng.
Công thức tính nhƣ sau:
Point of Pi = Hiti + 3*Likei) P = Max(Point of Pi)
Giả sử có P đối tƣợng ngƣời dùng đã từng View hoặc Vote, ta lấy đƣợc đối tƣợng Pi có lƣợng View + Like lớn nhất. Lớp đối tƣợng ngƣời dùng thích chính là lớp của đối tƣợng thứ Pi.
Ví dụ:
Bảng 3.2: Ví dụ lưu trữ hành vi người sử dụng
IP/ ID Mã đối tƣợng View Like
IP1 P1 1 1
IP1 P2 2 0
IP1 P3 3 0
Nhƣ bảng trên, ta tính Point of Pi nhƣ sau:
Point of P1 = 1 + 3 * 1 = 4; Point of P2 = 2 + 3 * 0 = 2; Point of P3 = 3 + 3 * 0 = 3;
Vậy, đối với ngƣời dùng có IP là IP1 thì đối tƣợng P1 của điểm cao nhất, do đó hệ thống sẽ liệt kê các đối tƣợng thuộc class của P1
3.2 Thiết kế và cài đặt chi tiết các thành phần hệ thống
3.2.1 Phân nhóm đối tượng bằng phương pháp học bán giám sát
Trong luận văn này tôi sử dụng thuật toán Kmean để phân cụm, trong đó, sử dụng phƣơng pháp học máy để xây dựng hàm khoảng cách.
a. Lựa chọn số cụm
Làm cách nào mà ta chọn ra đƣợc số cụm (k) thích hợp?
39
(tổng khoảng cách) cũng sẽ nhỏ hơn. Vậy, có thể chọn k = m (số đối tƣợng), nhƣ thế mỗi đối tƣợng sẽ trở thành tâm của chính nó và mỗi cụm sẽ chỉ có 1 điểm.
Rõ ràng rằng điều đó là không sai vì error sẽ bằng 0, nhƣng ta sẽ không thể tìm đƣợc mô tả đơn giản cho dữ liệu, và mô hình thu đƣợc cũng gặp vấn đề overfitting và không thể phủ đƣợc những điểm mới thêm vào.
Để giải quyết vấn đề này là bổ sung thêm hàm phạt (penalty) cho số lƣợng cụm. Từ đó, mục tiêu lúc này không chỉ còn giảm thiểu error, mà phải cân bằng cả error + penalty. Giá trị error sẽ tiến dần tới 0 khi tăng số lƣợng cụm, nhƣng đồng thời penalty cũng tăng theo. Quá trình tăng số lƣợng cụm sẽ dừng lại khi mà lƣợng error giảm đi thấp hơn so với giá trị
penalty, và kết quả thu đƣợc là kết quả tối ƣu.
b. Xây dựng tập dữ liệu mẫu
Quá trình xây dựng tập mẫu đƣợc thực hiện một cách thủ công hoàn toàn dựa trên bộ dữ liệu là các đối tƣợng ở trong kho dữ liệu. Trên kho dữ liệu đó ta chọn ra k xu hƣớng đối tƣợng, thiết lập n thuộc tính điển hình cho mỗi k xu hƣớng đó. Tập thuộc tính điển hình này sẽ là tâm của mỗi cụm.
Tiếp đó, lựa chọn các đối tƣợng tƣơng đồng trong kho dữ liệu đối với bộ dữ liệu ở tâm của mỗi cụm. Việc lựa chọn này yêu cầu kinh nghiệm chuyên nghành về lĩnh vực thông tin mà hệ thống đang thao tác. Ví dụ đối với các đối tƣợng là đồng hồ đeo tay, việc lựa chọn các đối tƣợng tƣơng đồng phải dựa trên kinh nghiệm của ngƣời làm trong lĩnh vực marketing và nghiên cứu thị trƣờng.
Trong luận văn này, tôi sử dụng tập mẫu là 30 chiếc đồng hồ đƣợc lựa chọn từ kho dữ liệu gồm 300 chiếc đồng hồ khác nhau và phân vào 6 cụm đƣợc gán nhãn từ 1 đến 6.
40
sử dụng. Ví dụ, nếu một ngƣời xem đối tƣợng x mà luôn có xu thế xem thêm đối tƣợng y thì nhiều khả năng x và y sẽ thuộc chung vào một cụm
c. Quy đổi miền không gian giá trị của các thuộc tính
Một đối tƣợng có rất nhiều thông tin thuộc tính. Các thuộc tính này có miền giá trị rất khác nhau. Ví dụ với một chiếc đồng hồ:
Đƣờng kính mặt: 50mm Độ sâu ngập nƣớc: 2m
Dễ dàng thấy rằng mặc dù 2 thuộc tính có độ quan trọng gần tƣơng đƣơng, tuy nhiên miền giá trị của chúng lại rất khác nhau. Điều này sẽ dẫn đến quá trình thực hiện thuật toán Kmean sẽ không chính xác bởi không gian n thuộc tính đã bị méo.
Để tránh bị méo miền không gian, tôi biến đổi các giá trị thuộc tính về miền [0,1] tƣơng ứng.
Đối với các thuộc tính mà giá trị là số thực:
Giả sử thuộc tính của đối tƣợng thứ i là Xi (X lớn, là giá trị trƣớc khi biến đổi của thuộc tính x), ta sẽ tính max của thuộc tính x trên N đối tƣợng cần phân cụm.
max = Max(Xi) | i = 1..N
Giá trị sau khi biến đổi của đối tƣợng thứ i là (quy định x nhỏ là giá trị sau khi biến đổi của thuộc tính x):
i = 1..N
Đối với giá trị là các chuỗi:
Việc quy đổi một chuỗi thành số thực mà vẫn đảm bảo không gian thuộc tính không bị méo là rất khó khan, vì vậy, tôi sử dụng phân bố đều rời rạc trong khoảng [0, 1] cho các giá trị chuỗi này.
Ví dụ toàn bộ các giá trị khác nhau của thuộc tính x trên tập đối tƣợng cần phân lớp có giá trị là: “A”, “B”, “C”. Tiến hành phẩn bổ trên
41
khoảng [0, 1] sẽ đƣợc các giá trị số thực tƣơng ứng nhƣ sau: “A” – 0
“B” – 0.5 “C” – 1
Lƣu ý rằng việc này cũng sẽ đảm bảo các giá trị giống nhau sẽ có cùng một vị trí trên trục tọa độ biểu diễn chiều thuộc tính x.
d. Xây dựng hàm khoảng cách
Một trong các yếu tố quan trọng nhất trong phân cụm đó là hàm khoảng cách. Có rất nhiều hàm khoảng cách có thể đƣợc sử dụng trong việc phân cụm dữ liệu nhƣ bảng mô tả dƣới đây:
Bảng 3.3: Các hàm khoảng cách
Distance Description
ArgMax ArgMax distance (L0) distance.
Bhattacharyya Bhattacharyya distance.
BrayCurtis Bray-Curtis distance.
Canberra Canberra distance.
Chebyshev Chebyshev distance.
Cosine Cosine distance.
Dice Dice dissimilarity.
Euclidean Euclidean distance metric.
42
Hellinger Herlinger distance.
Jaccard Jaccard (Index) distance.
Kulczynski Kulczynski dissimilarity.
Levenshtein Levenshtein distance.
Mahalanobis Mahalanobis distance.
Manhattan Manhattan (also known as Taxicab or L1) distance.
Matching Matching dissimilarity.
Minkowski
The Minkowski distance is a metric in a normed vector space which can be considered as a generalization of both the Euclidean distance and
the Manhattan distance.
Modular Modular distance (shortest distance between two marks on a circle).
PearsonCorrelation Pearson Correlation similarity.
RogersTanimoto Rogers-Tanimoto dissimilarity.
RusselRao Russel-Rao dissimilarity.
SokalMichener Sokal-Michener dissimilarity.
43
SquareEuclidean
Square-Euclidean distance and similarity. Please note that this distance is not a metric as it doesn't
obey the triangle inequality.
SquareMahalanobis Squared Mahalanobis distance.
Yule Yule dissimilarity.
Hiển nhiên, với những điểm nằm trong không gian, khoảng cách Euclid rõ ràng là hiệu quả nhất, nhƣng trong trƣờng hợp này phải cần thêm vài thủ thuật cho những loại dữ liệu đặc trƣng khác nhau. Có rất nhiều hàm khoảng cách phù hợp, việc này yêu cầu khá nhiều kiến thức chuyên ngành liên quan tới dữ liệu đó.
Do đó, tôi nhờ tới sự trợ giúp của Học máy để huấn luyện ra hàm khoảng cách thích hợp nhất. Hơn nữa, tôi đã có một tập dữ liệu đã đƣợc gán nhãn từ trƣớc.
Với mỗi đối tƣợng, tôi chọn ra n đặc trƣng có ảnh hƣởng lớn nhất đến tính chất của đối tƣợng. n đặc trƣng này tạo ra một không gian vector
thuộc tính n chiều.
3.2.2 Huấn luyện mạng nơ ron để xây dựng hàm khoảng cách
Xác định cấu trúc mạng:
- Mạng noron đƣợc xây dựng theo phƣơng pháp học có giám sát. Bài toán lựa chọn mạng Feed-forward 3 lớp với cấu trúc nhƣ sau : Số noron lớp đầu vào : n noron (tƣơng ứng với số chiều của vector thuộc tính)
Số noron tầng ẩn: 500 noron. Con số 500 đƣợc turning dựa trên các lần thử sau mỗi quá trình học.
44
Số noron tầng đầu ra: 1 noron. Tƣơng ứng với khoảng cách của mỗi đối tƣợng đến cụm thứ k trong bộ dữ liệu huấn luyện.
Trong hình dƣới đây biểu diễn khoảng cách của một đối tƣợng thứ i tới tâm của k cụm đã đƣợc phân nhóm từ trƣớc.
Hình 3.3: Mô hình khoảng cách đến tâm cụm của tập dữ liệu mẫu
Việc huấn luyện cho mạng học là một vòng lặp duyệt qua lần lƣợt các đối tƣợng giúp mạng noron nhớ các khoảng cách đến các tâm cụm.Với mỗi vòng lặp, một đối tƣợng sẽ đƣợc đƣa vào giảng dạy cho mạng noron học.
Tâm cụm thứ k Yk Cụm 2 Cụm 3 Cụm 1 Y2 Y3 Y 1 Đối tƣợng thứ i
45
Hình 3.4: Mô hình mạng nơ ron để huẩn luyện hàm khoảng cách
Giá trị đầu ra của mỗi nơ ron đƣợc cho bởi công thức:
) ( i i i f net y và j n j ij i w x net 1
trong đó: x1, x2, …xm là các tín hiệu đầu vào tƣơng ứng với giá trị của vector thuộc tính cho mỗi đối tƣợng, còn wi1, wi2,…,wim là các trọng số kết nối của nơron thứ i, neti là hàm tổng, f là hàm truyền, i là một ngƣỡng, yi là tín hiệu đầu ra của nơron.
Đầu ra
Thuật toán huấn luyện mạng:
Mạng feed- forward sử dụng giải thuật lan truyền ngƣợc sai số Back Propagation.
Giải thuật gồm 2 bƣớc :
Bƣớc 1:
-Lan truyền xuôi đầu vào qua mạng. Sử dụng các công thức :
Công thức chung tính đầu ra của một noron thứ i tại lớp thứ L:
Input 2n noron đầu vào Input 1 noron đầu ra ứng giá trị đầu ra của hàm Tầng input Tầng ẩn 500 noron Tầng output
46 yi= f ( n j j ijx w 0 -bi)
Với f là hàm chuyển sigmoid lƣỡng cực đƣợc tính theo công thức : f= 1 1 2 t e α: hệ số góc của hàm chuyển t: biến net-input bi: hệ số ngƣỡng hay độ lệch
Áp dụng đối với mô hình mạng của chƣơng trình :
-Công thức cho đầu ra của một noron thứ i (1500) tại lớp ẩn ai= f( n j j ijx w 1 -bi)
Với wij: trọng số tại noron thứ i của lớp ẩn kết nối với đầu vào thứ j của lớp vào
j
x : giá trị đầu vào của noron thứ j tại lớp vào