CHƯƠNG2. CƠ SỞ LÝ THUYET

Một phần của tài liệu Khóa luận tốt nghiệp Hệ thống thông tin: Xây dựng website báo điện tử tích hợp hệ thống khuyến nghị nội dung (Trang 23 - 35)

Chương này dé cập đến những kiến thức lý thuyết quan trọng. Đặc biệt là cần làm

rõ những lý thuyết về công nghệ, thuật toán, khái niệm được sử dụng và nhắc đến

trong khóa luận.

2.1. Hệ thống khuyến nghị

RELATED POSTS

BAT DONG SAN

6 quy định về trách nhiệm của người sử dụng dắt...

IM NHUNG (1/H)

BAT DONG SAN

..À ca Cham sử dụng dat Nha

Pe x yh) nude giao, ngudi dan sẽ..

BAT DONG SAN

Thủ tục xóc định tiền sử dụng dat phải nộp khi ba...

By KIMN T

Hình 2.1 Các bai báo có cùng nội dung

Hệ thống khuyến nghị là một loại hệ thống thông tin được sử dụng để đề xuất, gợi

ý các mục tiêu mà người dùng có thể quan tâm. Mục tiêu có thể là sản phẩm, nội dung, dịch vụ, hoặc bat cứ thứ gì mà người dùng có thé tương tác.

Có nhiều phương pháp và kỹ thuật được sử dụng dé xây dựng hệ thống khuyến nghị, trong đó hai phương pháp phổ biến nhất là Collaborative Filtering và Content- Based Filtering. Cả hai phương pháp này đều có ưu điểm và hạn chế riêng.

— Collaborative Eilteringt!: Phương pháp nay dựa trên việc phân tích hành vi và

sở thích của một nhóm người dùng dé đề xuất cho người dùng hiện tại các mục

tiêu mà nhóm người dùng tương tự đã thích. Collaborative Filtering có hai

dạng chính là User-Based và Item-Based. User-Based sử dụng sự tương đồng giữa các người dùng để dé xuất, trong khi Item-Based sử dung sự tương đồng giữa các mục tiêu dé dé xuất. Collaborative Filtering có thé giúp đề xuất các mục tiêu mà người dùng chưa từng biết đến, và nó phổ biến trong các nền tảng như phim ảnh, âm nhạc và mua sắm trực tuyến.

— Content-Based Filtering!"!; Phương pháp này đề xuất các mục tiêu tương tự

dựa trên đặc trưng và thuộc tính của mục tiêu và sở thích của người dùng. Nó

xác định mức độ tương đồng giữa các mục tiêu và sở thích của người dùng dựa trên các thông tin như từ khóa, thể loại, tác giả, diễn viên, v.v. Content- Based Filtering phù hợp cho việc đề xuất các mục tiêu tương tự về nội dung

hoặc thuộc tính.

Mục tiêu của hệ thống khuyến nghị là tăng trải nghiệm của người dùng, giúp họ

khám phá những mục tiêu mới và phù hợp với sở thích của mình. Nó được áp dụng

rộng rãi trong các nền tảng thương mại điện tử, dich vu streaming, trang tin tức, mạng

xã hội và nhiều lĩnh vực khác để cung cấp trải nghiệm cá nhân hóa và giúp người dùng tìm thấy những mục tiêu mà họ thích.

Trong phạm vi đề tài này chỉ tập trung xây dựng hệ thống Content-Based Filtering

dé đề xuất bài báo dựa theo các thuộc tính như tên bai báo, nội dung tóm tắt, thé loại,

tác giả của nó.

2.2. K-Nearest Neighbors

# Khởi tạo mô hình

model = NearestNeighbors()

# Huấn Luyện mô hình

model. fit(features)

# Dự đoán mức độ tương tự giữa các bài viết

distances, indices = model.kneighbors(features, n_neighbors=10)

print("Indices:", indices)

print("Distances:", distances)

Indices: [[ @ 850 905... 371 435 647]

[ 1 168 15... 11 669 698]

[ 2 231 22... 452 111 518]

[10007 9811 9690 ...

[19098 8944 9849

9895 9914 9892]

9163 9968 9915]

[19009 9706 9476... 9891 9573 9866]]

Distances: [[9. 2.18978151 2.19560631 ... 2.24071816 2.24195205 2.24727363]

[9. 1.52477213 1.52907909 ... 1.65776413 1.66086184 1.68270612]

l9. 1.93869929 2.26693577 ... 2.30336053 2.30413922 2.30999498]

[9. 1.61728007 1.6404974 ... 1.7160157 1.72499178 1.72606848]

[o. 1.65622376 1.6715852 ... 1.76567463 1.78597367 1.80044473]

fo. 1.69784875 1.72453458 ... 1.79335252 1.79362071 1.79893094]]

Hình 2.2 Sử dụng KNN dé dự đoán mức độ tương tự giữa các bài viết Thuật toán k-hàng xóm gan nhất, còn được gọi là KNN hoặc k-NN, là một thuật toán phân loại phi tham số, học có giám sát, sử dụng độ gần để thực hiện phân loại hoặc dự đoán về việc nhóm của một điềm dữ liệu cụ thé"). Mặc dù nó có thé được sử dụng cho cả bài toán hồi quy (regression) và phân loại (classification), nó thường được sử dụng như một thuật toán phân loại, dựa trên giả định rằng các điểm tương tự

có thể được tìm thấy gần nhau

Cách thức hoạt động của mô hình Nearest Neighbors như sau:

— Tién xử lý dữ liệu: Đầu tiên, dữ liệu huấn luyện được tiền xử lý dé chuẩn hóa

và chuẩn bị cho quá trình tìm kiếm gần nhất.

— Xây dựng cấu trúc dữ liệu: Dữ liệu huấn luyện được lưu trữ trong một cấu trúc

dữ liệu hiệu quả để tìm kiếm gần nhất nhanh chóng. Cấu trúc dữ liệu phổ biến

cho mô hình Nearest Neighbors là cây KD-tree hoặc Ball tree.

— Tìm kiếm gần nhất: Khi có một điểm dữ liệu mới, mô hình tìm kiếm các điểm

dữ liệu trong tập huấn luyện mà có đặc trưng gần nhất với điểm dữ liệu mới.

Thông thường, khoảng cách Euclidean hoặc khoảng cách cosine được sử dụng

để

- Dự

lo độ tương đồng giữa các điểm dữ liệu.

đoán: Sau khi tìm thấy các điểm gần nhất, mô hình thực hiện dự đoán dựa trên nhãn của các điểm dữ liệu gần nhất này. Có thể sử dụng phương pháp đa

số đơn giản hoặc trọng số được gán cho các điểm gần nhất dựa trên khoảng

cách.

Mô hin! Nearest Neighbors thường được sử dụng trong các tác vụ như phân loại,

phân cụm, tìm kiếm gần nhất và khám phá dữ liệu. Nó có thể đưa ra dự đoán nhanh

chóng mà không cần quá trình huấn luyện phức tạp. Tuy nhiên, mô hình này có nhược điểm là yêu cầu lưu trữ toàn bộ tập dữ liệu huấn luyện và tốn nhiều thời gian khi số lượng điểm dữ liệu lớn.

2.2.1. Chỉ số khoảng cách

Mục tiêu của thuật toán k-nearest neighbor là xác định các neighbor gần nhất của một điểm nhất định, dé chúng ta có thé gán một nhãn cho điểm đó. Đề làm điều này, KNN có một vài yêu cầu:

— Xác định chỉ số khoảng cách: Để xác định điểm dữ liệu nào gần nhất với một

điểm truy vẫn nhất định, khoảng cách giữa điểm truy vấn và các điểm dữ liệu khác sẽ cần được tính toán. Các chỉ số khoảng cách này giúp hình thành ranh giới quyết định, phân vùng các điểm truy vấn thành các khu vực khác nhau'®,

+

một số thước đo khoảng cách có thể chọn:

Khoảng cách Euclid (p=2): Đây là thước đo khoảng cách được sử dụng

phổ biến nhất và nó được giới hạn ở các vectơ có giá trị thực.

Công thức Euclid ©):

d(x, y) = xe — x)?

i=1

Khoảng cach Manhattan (p = 1): Đây cũng là một số liệu khoảng cách

phổ biến khác, do giá trị tuyệt đối giữa hai điểm.

Công thức Manhattan"!:

Manhattan Distance = d(x, y) = (> |x; — )m

í=1

Khoảng cách Minkowski: Thước đo khoảng cách này là dạng tổng quát của số liệu khoảng cách Euclide va Manhattan. Tham số, p, trong công

thức dưới đây, cho phép tạo các số liệu khoảng cách khác.

Công thức Minkowskil°l:

TẾ Tp

Minkowski Distance = (> |x¡ — )

i=1

Khoảng cách Hamming: Ky thuật này thường được su dụng với các vectơ

Boolean hoặc chuỗi, xác định các điểm mà các vectơ không khớp.

Công thức Hamming!°:I6].

k

Hamming Distance = Dy = > |x¡ — #¡|

i=1

2.2.2. Định nghĩa k

Giá trị k trong thuật toán k-gần nhất hàng xóm (k-NN) xác định số lượng hàng xóm sẽ được kiểm tra dé xác định phân loại của một điểm truy vấn cụ thé. Ví dụ, nếu k=1, thì một điểm sẽ được gan vào cùng một lớp với hàng xóm gần nhất duy nhất của

nól5l,

2.2.3. Ứng dụng của K-Nearest Neighbors

Nearest Neighbors có nhiều ứng dụng trong các lĩnh vực khác nhau. Dưới đây là một số ví dụ về ứng dụng của thuật toán Nearest Neighbors:

— Phân loại văn bản: Trong xử lý ngôn ngữ tự nhiên, Nearest Neighbors có thể

được sử dụng để phân loại văn bản dựa trên đặc trưng của các từ hoặc câu.

— Gợi ý sản phẩm: Trong lĩnh vực thương mại điện tử, Nearest Neighbors có thé

được sử dụng đề gợi ý sản phẩm cho người dùng dựa trên sự tương đồng của

hành vi mua hàng hoặc đánh giá của người dùng khác.

— Xử lý ảnh: Trong xử lý anh, Nearest Neighbors có thé được sử dụng dé tìm

kiếm và nhận dạng các hình ảnh tương tự. Ví dụ, khi người dùng cung cấp một hình anh, Nearest Neighbors có thé tìm kiếm trong cơ sở dữ liệu hình ảnh dé tim ra những hình ảnh tương tự hoặc cùng chủ dé.

2.3. Các thuật toán hỗ trợ

2.3.1.1. Ý tưởng

Từ thông tin mô tả của item, biểu diễn item dưới dạng vectơ thuộc tính. Sau đó dùng các vectơ này để học mô hình của mỗi user, là ma trận trọng số của user với mỗi item"),

Thuật toán content-based gồm 2 bước:

— Bước 1: Biểu diễn items dưới dạng vec-tơ thuộc tính — item profile

— Bước 2: Học mô hình của mỗi user

2.3.1.2. Xây dung Items Profile

Trong các hệ thống content-based, chúng ta cần xây dựng một bộ hồ sơ (profile) cho mỗi item. Profile này được biểu dién dưới dạng toán học là một “feature vector”

n chiều. Trong những trường hợp đơn giản (vi dụ như item là dir liệu dạng văn bản), feature vector được trực tiếp trích xuất từ item. Từ đó chúng ta có thể xác định các item có nội dung tương tự bằng cách tính độ tương đồng giữa các feature vector của

chúng,

Một số phương pháp thường được sử dụng đề xây dựng feature vector là:

— Sử dụng TF-IDF

— Sử dụng biểu diễn nhị phân

2.3.2. TE-IDF

Trong dé tài này sử dụng TF-IDF dé chuyển đổi tiêu đề và phan tóm tắt nội dung của các bài báo thành ma trận đặc trưng để đưa vào mô hình huấn luyện.

# Khởi tạo vectorizer vectorizer = TfidfVectorizer()

# Tinh toán TF-IDF cho tất cả các thuộc tinh

vectorizer.fit(df[‘Title’] + df[ 'Summary ' ]) title tfidf = vectorizer.transform(df[ "Title' ]) summary_tfidf = vectorizer.transform(df[ ° Summary‘ ])

# Kết hợp các ma trận TF-IDF Lại với nhau features = hstack([title tfidf, summary_tfidf])

Hình 2.3 Sử dụng TF-IDF dé chuyên văn bản thành ma trận đặc trưng TF-IDF là từ viết tắt của thuật ngữ tiếng Anh Term Frequency — Inverse Document Frequency, TF-IDF là trong số của một từ trong văn bản thu được qua thống kê thé

hiện mức độ quan trọng của từ này trong một văn bản, mà bản thân văn bản đang xét

nằm trong một tập hợp các văn bản”,

Đây là một phương pháp được sử dụng trong xử lý ngôn ngữ tự nhiên và truy vấn thông tin để đánh giá mức độ quan trọng của một thuật ngữ trong một tài liệu.

Trọng số TF-IDF được tính toán bằng cách kết hợp hai yếu tố chính: tần số thuật ngữ (TF) và tần số nghịch dao tài liệu (IDF).

— Tần số thuật ngữ TF(t,d) °l: Đây là một phép đo mức độ xuất hiện của một

thuật ngữ trong một tài liệu cụ thể. Nó được tính bằng cách đếm số lần thuật ngữ t xuất hiện trong tài liệu d đó. Tần suất xuất hiện của t trong tài liệu d càng lớn thì độ quan trọng của nó đối với văn bản càng cao và được tính bởi số lần xuất hiện của t trong d chia cho tông số từ trong văn bản d như sau:

— _ Tần số nghịch đảo tài liệu IDF(t, D) ÊÌ; Đây là một phép do mức độ quan trọng

của một thuật ngữ trong toàn bộ tập tài liệu. Nó được tính bằng cách chia tổng

số tài liệu cho số tài liệu chứa thuật ngữ đó, sau đó lấy logarit cơ số 2 của kết quả. IDF giúp giảm độ ưu tiên cho các thuật ngữ phổ biến như "a", "the" và tăng độ ưu tiên cho các thuật ngữ hiếm hơn nhưng mang nhiễu thông tin quan trọng. IDF được tính bằng công thức:

— Công thức IDF(t, D)Ê!:

IDFŒ,Đ)= red:N(D)

t ed

Sau khi tính được TF va IDF, ta có thé tính toán trong sé TF-IDF bằng cách nhân hai giá trị này với nhau. Kết quả là một giá trị số dương, cao nhất khi một thuật ngữ xuất hiện nhiều lần trong một tài liệu cụ thể và ít khi xuất hiện trong các tài liệu khác. Trong đó tông số văn bản trong tập mẫu là D, số văn bản chứa từ là t

Trong thực tế, ta thường lấy log cho TF và IDF nhằm giảm bớt đi sự quan trọng của những từ xuất hiện quá nhiều lần. Do đó TF-IDF được tính như sau:

Công thức TFIDF(t, d, D)!!:

TFIDF(t, d, D) = log(1 + TF(t, đ)) * log (IDF(t,d))

TF-IDF thường được sử dung trong các hệ thống tìm kiếm va phân loại văn bản

để đánh giá mức độ liên quan của một tài liệu đến một thuật ngữ cụ thể. Các giá trị TF-IDF cao cho thay một thuật ngữ quan trọng trong tài liệu đó, va do đó, nó có thé được sử dung dé tìm kiếm, phân loại hoặc xếp hang tài liệu theo mức độ liên quan.

TF-IDF được sử dụng trong nhiều tác vụ xử lý ngôn ngữ tự nhiên và truy vấn thông tin. Dưới đây là một số tình huống phổ biến sử dụng TF-IDF:

— Tim kiếm thông tin: TF-IDF được sử dụng trong hệ thống tìm kiếm dé xếp

hạng các tài liệu theo mức độ liên quan đến một truy van cu thể. Các thuật toán

— Phân loại văn bản: TF-IDF cũng được sử dụng trong tác vụ phân loại văn bản,

trong đó mỗi tài liệu được biểu diễn bằng vectơ TF-IDF. Các mô hình học máy như hồi quy logistic, hỗn hợp Gaussian hoặc máy vector hỗ trợ (SVM) có thể

sử dụng vectơ TF-IDF đề phân loại tài liệu thành các nhãn phù hợp.

— Tóm tắt văn bản: Khi xây dựng hệ thống tóm tắt văn bản tự động, TF-IDF có

thể được sử dụng để xác định các câu hoặc đoạn văn nỗi bật trong tài liệu. Các câu có trọng số TF-IDF cao sẽ có khả năng chứa nhiều thông tin quan trọng

và được ưu tiên trong quá trình tóm tắt.

Ưu điểm của việc sử dụng TF-IDF:

— Ưu điểm lớn nhất của TF-IDF đến từ việc nó đơn giản và dé sử dụng. Nó rat

đơn giản dé tính toán, nó rẻ về mặt tính toán và nó là điểm khởi đầu đơn giản

cho các tính toán tương tự.

Nhược điểm của việc sử dụng TF-IDF

— TF-IDF không mang ý nghĩa ngữ cảnh. Nó chi xem xét tam quan trọng của

các từ thông qua tần số xuất hiện, nhưng nó không phải rút ra ngữ cảnh của các từ và hiểu tầm quan trọng của từ trong ngữ cảnh đó.

2.3.3. Stop words

Stop words là nhóm các từ phổ biến và không mang nhiều ý nghĩa trong một ngôn ngữ cụ thé. Đối với xử lý ngôn ngữ tự nhiên, stop words thường được loại bỏ khỏi

văn bản hoặc không được xem xét trong quá trình xử lý ngôn ngữ!

Các từ dừng thường bao gồm các từ như "là", "của", "và", "với", "ở", "làm", "cho",

"theo", "một", "hai", "ba", "cả", "đến", "trên", "đưới",... và nhiều từ phụ thuộc vào ngôn ngữ cụ thé. Các từ này xuất hiện rất phổ biến trong văn bản mà không mang

2.3.4. Biểu diễn nhị phân (One-hot coding)

Biểu diễn nhị phân, còn được gọi là one-hot coding, là một phương pháp đề biểu diễn thông tin đưới dạng vectơ nhị phân, trong đó chỉ có một phần tử duy nhất trong vectơ có giá tri 1 và tất cả các phần tử khác có giá trị 0. Phương pháp này thường được sử dụng trong xử lý ngôn ngữ tự nhiên và machine learning để biểu diễn các biến phân loại (categorical variables) dưới dạng số học dé có thé sử dụng trong các

thuật toán máy học và hoc may"),

Cách thức biểu diễn one-hot coding như sau: Giả sử ta có một tập hợp các nhãn (labels) hoặc các biến phân loại, ví dụ như {A, B, C, D}. Để biểu diễn mỗi nhãn thành vecto nhị phân, ta sẽ tạo ra một vectơ có độ dài bằng với số lượng nhãn và gan giá trị

1 cho vị trí tương ứng với nhãn và giá trị 0 cho các vị trí còn lại.

Ví dụ:

— Thời sự: [1, 0, 0, 0]

— Kinh tế: [0, 1, 0, 0]

— Tài chính: [0, 0, 1, 0]

— Xã hội: [0, 0, 0, 1]

Với biéu diễn này, ta có thé sử dụng các phép toán và thuật toán liên quan đến số học trên các biến phân loại. Ví dụ, ta có thể tính toán khoảng cách giữa các nhãn, áp dụng các thuật toán phân loại như hồi quy logistic hoặc hỗn hợp Gaussian, và thực

hiện các phép toán khác như dot product giữa các vectơ one-hot.

One-hot coding cũng có một số hạn chế, như việc tạo ra các vectơ có kích thước lớn khi số lượng nhãn tăng lên, và không khai thác được sự tương quan giữa các nhãn. Tuy nhiên, trong nhiều trường hợp, one-hot coding là một phương pháp tiện lợi để biểu diễn các biến phân loại trong quá trình xử lý dữ liệu và huấn luyện mô hình.

2.4. Các nền tang và công nghệ

2.4.1. React

Hình 2.4 Logo React

React là một thư viện JavaScript phổ biến được sử dụng để xây dựng giao diện người dùng (UI). Nó được phát triển bởi Facebook và ra mắt lần đầu vào năm 2013. React cho phép xây dựng các thành phần UI tái sử dụng và tương tác một cách dễ dàng, giúp tăng tính tương tác và khả năng duy trì mã nguồn trong các ứng dụng web.

Một trong những khái niệm quan trọng nhất trong React là "virtual DOM" (cây

DOM ảo). Khi một thành phần React được cập nhật, React sẽ tạo ra một cây DOM

do dé so sánh với cây DOM hiện tại và chỉ cập nhật những phần thay đổi thực sự trên

giao diện người dùng. Điều này giúp tăng hiệu suất và tối ưu hóa ứng dung.!7!

React sử dụng JSX (JavaScript XML) dé định nghĩa giao diện người dùng. JSX cho phép viết mã HTML trong JavaScript, tạo ra một cách thức dễ đọc và dễ hiểu đề

xây dựng giao diện người dùng trong React.!7!

React cũng hỗ trợ quản lý trạng thái (state) và lifecycle trong các thành phần. Bằng cách sử dụng state, có thể lưu trữ và quản lý dữ liệu trong ứng dụng của mình.

Lifecycle methods cho phép thực hiện các hành động như khởi tạo, cập nhật và hủy

thành phan trong quá trình hoạt động của nó”,

Một phần của tài liệu Khóa luận tốt nghiệp Hệ thống thông tin: Xây dựng website báo điện tử tích hợp hệ thống khuyến nghị nội dung (Trang 23 - 35)

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

(97 trang)