Kết quả đánh giá một vài mơ hình Giới thiệu trên tập dữ liệu RetailRocket

Một phần của tài liệu Xây dựng hệ quản trị đào tạo tích hợp mạng xã hội (Trang 138 - 145)

Kết quả ở hàng cuối rút ra từ mơ hình The Universal Recommender khi nhóm làm đề tài thử nghiệm với cả ba loại sự kiện để tiên đoán cho sự kiện mua cuối cùng của từng người dùng (vì mơ hình này cho phép nhận vào nhiều hơn 1 phản hồi tiềm ẩn). Có thể thấy, ALS cho kết quả khá tốt. Điều này cho thấy mơ hình này sẽ làm việc rất tốt đối với những người dùng có lịch sử “mua hàng” dồi dào. Ngược lại, mơ hình deep learning của SpotLight cho kết quả không được tốt như mong đợi. The Universal Recommender cho kết quả vừa phải, tuy nhiên

chất lượng của nó tăng lên rõ rệt khi sử dụng thêm các sự kiện phụ trợ cho sự kiện “mua” để đưa ra lời giới thiệu.

Từ kết quả trên, nhóm làm đề tài đi đến quyết định vẫn sử dụng The Universal Recommender làm mơ hình cho hệ thống giới thiệu của đề tài. Mặc dù ALS cho kết quả tốt, nhưng vì nó khơng có khả năng tiếp nhận các sự kiện phụ trợ khác khiến việc giới thiệu hoàn toàn phụ thuộc vào mức độ dồi dào của sự kiện chính. Vì lẽ đó, ALS thường dễ gặp phải tình trạng cold start: người dùng mới sử dụng hệ thống sẽ có rất ít sự kiện chính như “mua hàng”, trái lại các sự kiện như “xem thông tin”, “đưa vào giỏ hàng” xảy ra thường xuyên hơn. The Universal Recommender mang đến sự linh hoạt trong việc đưa ra lời giới thiệu đến nhiều thành phần khác nhau trong tập khách hàng, bao gồm cả những người sử dụng nhiều tương tác và ít tương tác. Ngồi ra, The Universal Recommender cịn có các tùy chọn dự phòng như giới thiệu các sản phẩm phổ biến.

6.5.2 Tích hợp vào hệ thống

Xây dựng một hệ thống giới thiệu sử dụng ActionML trải qua bốn giai đoạn chính như sau:

1. Hiện thực file config chứa các đặc tả cấu hình của engine tương ứng với thực thể mà chúng ta muốn gợi ý, trong đó quan trọng nhất là việc định nghĩa ra các sự kiện được hệ thống thu thập phục vụ mục đích đưa ra lời giới thiệu.

2. Hiện thực ở application các logic gọi API đến instance host máy chủ ActionML tương ứng với những sự kiện trên.

3. Hiện thực logic gọi API training của ActionML để huấn luyện mơ hình. 4. Hiện thực logic truy vấn các kết quả giới thiệu tùy vào yêu cầu nghiệp vụ.

Trong đó, bước 1 là quan trọng nhất vì nó ảnh hưởng trực tiếp đến chất lượng của mơ hình. Nhóm làm đề tài xác định bốn thực thể tương ứng với bốn engine dùng cho mục đích gợi ý là: course (khóa học), group (Nhóm), user (người dùng) và post (bài viết trong nhóm). Với mỗi thực thể, nhóm làm đề tài định nghĩa ra hệ thống các sự kiện khác nhau, cụ thể như sau:

Đối với thực thể course:

enroll: Người dùng ghi danh vào khóa học. Đây là sự kiện chuyển đổi chính.

detail-page-view: Người dùng xem trang thơng tin khóa học.

category-pref: Người dùng có sở thích về một thể loại khóa học nào đó. Thể loại khóa

học là một tính chất của khóa học. Sự kiện này được kích hoạt cùng lúc với enroll, với

thể loại chính là thể loại của khóa học mà người dùng ghi danh.

search-pref: Người dùng tìm kiếm một từ khóa nào đó liên quan đến khóa học.

popularity-pref: Người dùng có sở thích về độ phổ biến của khóa học. Mức độ phổ

lượng học sinh) thành các nhóm: nhỏ, vừa và lớn. Tương tự với category-pref, sự kiện này cũng được kích hoạt cùng lúc với enroll.

positive-rating: Người dùng đánh giá tích cực về một khóa học nào đó. Đánh giá tích

cực được nhóm làm đề tài định nghĩa là đánh giá có trên 3 sao.

mentor-pref: Người dùng u thích một giảng viên nào đó. Sự kiện này được kích hoạt

cùng lúc với enroll. Đối với thực thể group:

join: Người dùng gửi yêu cầu tham gia vào khóa học nào đó. Đây là sự kiện chuyển

đổi chính

detail-page-view: Người dùng xem trang thơng tin nhóm.

topic-pref: Người dùng có sở thích về một đề tài nào đó. Đề tài là một tính chất của

khóa học. Sự kiện này được kích hoạt cùng lúc với join, với đề tài là đề tài của nhóm lúc gửi yêu cầu tham gia.

search-pref: Người dùng tìm kiếm một từ khóa nào đó liên quan đến nhóm.

popularity-pref: Tương tự như sự kiện cùng tên ở khóa học.

bookmark: Người dùng bookmark một khóa học.

Đối với thực thể user:

befriend: Người dùng gửi yêu cầu kết bạn đến ai đó. Đây là sự kiện chính.

detail-page-view: Tương tự với các sự kiện cùng tên.

enroll-course: Người dùng ghi danh vào khóa học.

join-group: Người dùng gửi yêu cầu tham gia nhóm.

search-pref: Tương tự với các sự kiện cùng tên.

Đối với thực thể post:

upvote: Người dùng ủng hộ vào một bài viết nào đó. Đây là sự kiện chuyển đổi chính.

comment: Người dùng bình luận vào một bài viết.

topic-pref: Sự kiện được ghi nhận từ sự kiện cùng tên của group.

category-pref: Sự kiện được ghi nhận từ sự kiện cùng tên của course.

op-pref: Người dùng yêu thích tác giả của bài viết nào đó. Được ghi nhận cùng lúc với

sự kiện upvote, với đối tượng tác giả chính là người viết nên bài viết đó.

Tóm lại, nhóm làm đề tài xây dựng các sự kiện chuyển đổi chính được xác định là mục tiêu cuối cùng của hệ thống giới thiệu cũng như các sự kiện phụ mà nhóm xác định một cách chủ quan rằng sẽ có khả năng đóng góp vào chất lượng của mơ hình. Tính chủ quan này khơng hề ảnh hưởng đến mơ hình, kể cả trong trường một số sự kiện trên khơng hề có tính tương quan với sự kiện chính trên thực tế, vì theo cơng thức của giải thuật CCO: mơ hình có

khả năng học được các mối tương quan tiềm ẩn đó thành các ma trận trọng số. Nếu sự tương quan là hầu như khơng có, trọng số của các phần tử trong ma trận giữa sự kiện đó và sự kiện chính sẽ hầu như khơng đáng kể và không ảnh hưởng nhiều đến recommendation score dự đoán.

Một nhược điểm của ActionML được rút ra ở bước xây dựng sự kiện đó chính là nó khơng có khả năng mơ hình được các sự kiện nhiều hơn hai tham số. Lấy sự kiện positive-

rating ở trên làm ví dụ: vì mơ hình khơng thể biểu diễn khái niệm: người dùng A đánh giá

khóa học B với mức đánh giá là X. Do đó, phải chuyển đổi sự kiện này thành: người dùng A đánh giá cao khóa học B. Điều này khiến mơ hình kém chắc chắn bởi vì nó giới thiệu thêm một siêu tham số địi hỏi người thiết kế phải cân nhắc khi đánh giá mơ hình.

Một hệ quả của nhược điểm trên đó chính là ActionML khơng thể nào mơ hình được khái niệm: A có bạn bè là B cũng yêu cầu tham gia một khóa học nào đó chẳng hạn. Đây có thể nói là thiếu sót lớn nhất, vì hệ thống được xây dựng trên nền tảng mạng xã hội: khái niệm bạn bè ít nhiều có ảnh hưởng đến hành vi người dùng trong việc lựa chọn khóa học, nhóm, … mà mình muốn đăng ký. Hình thức giới thiệu trên cịn được gọi là Trust-aware Recommendation. Nhóm làm đề tài khắc phục nhược điểm trên bằng cách tận dụng khả năng hỗ trợ business rule của ActionML, cụ thể như sau:

1. Lưu trữ hoạt động của bạn bè với nhau và lưu trữ trong cơ sở dữ liệu. Đây chính là trường interactionScore của thực thể friend đã được mô tả ở mục Sắp xếp nội dung

người dùng.

2. Khi đưa ra lời giới thiệu, hệ thống query trong cơ sở dữ liệu những người có interactionScore với người dùng mục tiêu lớn hơn một giá trị ngưỡng T tự định nghĩa, gọi là trusted friend.

3. Khi query vào The Universal Recommender, thêm vào các business rule boost score của các kết quả tìm kiếm có liên quan với các trusted friends đó (ví dụ khóa học thì sẽ boost những khóa học có chứa trusted friend là học sinh).

Hình 47: API reference khi gửi query vào ActionML . ActionML thêm business rule để ràng buộc việc đưa ra giới thiệu thông qua rules.

Các câu query được hệ thống tích hợp vào API của mình bao gồm: Tìm kiếm phổ biến, tìm kiếm item tương tự item, tìm kiếm item mà người dùng có thể thích.

6.5.3 Hướng phát triển trong tương lai

Hướng phát triển đối với hệ thống đó chính là việc đánh giá hệ thống giới thiệu và tùy chỉnh khi đưa vào sử dụng rộng rãi. Có thể thấy, hệ thống giới thiệu của nhóm làm đề tài có khá nhiều siêu tham số, nhiều sự kiện và một vài business rule ràng buộc. Do đó, việc đánh giá hệ thống có vai trị quan trọng. Tuy vậy, vì trong giai đoạn luận văn nhóm làm đề tài chưa thể đưa hệ thống vào sử dụng và có dữ liệu thực tế, việc kiểm tra đánh giá được xác định sẽ là hướng phát triển trong tương lai.

Chiến lược đánh giá được đề ra như sau:

 Thực hiện A/B Testing: Đưa vào sử dụng hai hệ thống giới thiệu với các biến thể config khác nhau và lần lượt so sánh chất lượng mỗi lần hai biến thể trên hai tập người dùng tương đương nhau. Việc phân bổ tập người dùng rất quan trọng vì mỗi một người dùng sẽ có sở thích khác nhau tùy vào giới tính, độ tuổi. Cách chia dễ dàng nhất đó là chia ngẫu nhiên: băm id của người dùng vào hai xô (bucket) theo một giải thuật băm nào đó rồi đưa vào một trong hai giải thuật tùy vào xơ mà người đó trúng. Nếu tập người dùng chúng ta đủ lớn, thì sự khác biệt giữa hai xô người dùng sau khi ngẫu nhiên là không đáng kể.

 Metric sử dụng để so sánh chất lượng của hai mơ hình giới thiệu là conversion rate (CR). Ta lưu trữ danh sách các item được giới thiệu đến người dùng, thời gian giới

thiệu và mơ hình dùng để giới thiệu (A hoặc B). Ta định kỳ kiểm tra trong từng tập người dùng, tỉ lệ số người sau khi được giới thiệu lựa chọn mua bất kỳ một item trong

danh sách giới thiệu trên số người được giới thiệu là bao nhiêu. Đó chính là

conversion rate của mơ hình đó.

6.6 Tìm kiếm tương đồng ngữ nghĩa6.6.1 Thử nghiệm 6.6.1 Thử nghiệm

Nhóm làm đề tài sử dụng tập dữ liệu Quora Question Pairs để thử nghiệm tìm kiếm giải thuật và mơ hình phù hợp để hiện thực tính năng tìm kiếm về tương đồng ngữ nghĩa. Tập dữ liệu này bao gồm các cặp câu hỏi được lấy từ dữ liệu trên website Quora với nhãn là 0 hoặc 1 tương ứng với trùng hoặc khơng trùng.

Hình 48: Miêu tả tập dữ liệu Quora Question Pairs.

Nhóm làm đề tài thực hiện tiền xử lý các câu hỏi trong tập dữ liệu để phù hợp với nhiều mơ hình và giải thuật khác nhau. Các bước tiền xử lý bao gồm: chuyển đổi dạng viết tắt tiếng anh, chuyển đổi một vài từ đồng nghĩa (như e-mail thành email). Sau đó, nhóm làm đề tài thực hiện kiểm thử với ba giải thuật và mơ hình sau:

1. Mơ hình Sentence Transformer dựa trên biến thể của BERT có tên là RoBERTa (pre- trained)

2. Bộ vector hóa TF-IDF Vectorizer của thư viện sklearn.

3. Sử dụng mơ hình Universal Sentence Encoder của Google (pre-trained).

Nhóm làm đề tài thực hiện đánh các mơ hình trên bằng cách đưa từng cặp câu hỏi vào từng mơ, tính ra embedding và lấy hàm cosine similarity của chúng. Nếu giá trị này lớn hơn 0.5 thì mơ hình đó tiên đốn hai câu văn này trùng nhau, ngược lại là khơng trùng nhau. Từ đó, thu được các ma trận confusion như sau:

Hình 49: Ma trận confusion của mơ hình BERT (với hàng là nhãn, cột là giá trị dự đốn).

Hình 51: Ma trận confusion của Universal Sentence Encoder.Từ đó ta thu được các metric đánh giá ở bảng sau: Từ đó ta thu được các metric đánh giá ở bảng sau:

Mơ hình Precision Recall F-score

Bert 0.51 0.99 0.67

TF-IDF 0.56 0.42 0.48

USE 0.57 0.02 0.04

Bảng 101: Kết quả kiểm thử một vài mơ hình thường dùng cho đánh giá tương đồng ngữ nghĩa

Từ kết quả trên, nhóm làm đề tài quyết định sử dụng mơ hình pretrained RoBERTa của thư viện Sentence-Transformer.

Ngồi ra, nhóm cũng thực hiện kiểm thử hai chiến lược xây dựng mơ hình chỉ sử dụng mơ hình Bi-Encoder và kết hợp cả Bi-Encoder và Cross-Encoder (được mô tả ở phần Cơ sở lý thuyết). Nhóm làm đề tài thử nghiệm trên cùng tập dữ liệu là Quora, sử dụng thư viện đánh giá BEIR (một thư viện chuyên đánh giá cho các mơ hình thuộc tìm kiếm ngữ cảnh), thu được kết quả như sau:

Mơ hình NDCG@1 NDCG@3 NDCG@5 NDCG@10

Bi-Encoder 0.727 0.76882 0.7865 0.80529

Bi-Encoder +

Cross-Encoder 0.722 0.76724 0.78778 0.80402

Một phần của tài liệu Xây dựng hệ quản trị đào tạo tích hợp mạng xã hội (Trang 138 - 145)

Tải bản đầy đủ (PDF)

(185 trang)