1. Trang chủ
  2. » Luận Văn - Báo Cáo

Khóa luận tốt nghiệp Hệ thống thông tin: Hệ thống hỏi đáp dựa trên bộ dữ liệu câu hỏi tự nhiên

78 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Hệ thống hỏi đáp dựa trên bộ dữ liệu câu hỏi tự nhiên
Tác giả Lã Ngô Mỹ Linh
Người hướng dẫn THS. Nguyễn Thị Kim Phụng
Trường học Đại học Quốc gia TP. Hồ Chí Minh
Chuyên ngành Hệ thống thông tin
Thể loại Khóa luận tốt nghiệp
Năm xuất bản 2021
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 78
Dung lượng 35,08 MB

Cấu trúc

  • 3.5.1. Chức năng mục tiêu phân loại (Classification Objective Function) (58)
  • 3.5.2. Chức năng mục tiêu hồi quy (Regression Objective Function) (59)
  • 3.5.3. Chức năng mục tiêu bộ ba (Triplet Objective Function) (59)
  • 3.5.4. ca 8 ............... 49 CHƯƠNG 4: TRIEN KHAI THỰC NGHIỆM.........................--.2- ¿s2 ©2++++zx+2+zex 50 (0)

Nội dung

Từ đó cho ra kết quả tối ưu nhất về việc tìm độtương đồng giữa câu hỏi bằng ngôn ngữ tự nhiên của người dùng với các câu hỏi trong bộ dữ liệu câu hỏi tự nhiên... Đối tượng Sử dụng bộ dữ

Chức năng mục tiêu phân loại (Classification Objective Function)

Câu nhúng u, v được nôi lại với nhau lu-v| và nhân nó với trọng sô thu được khi huấn luyện Wt e I3" và được tối ưu hóa bang hàm mat mát cross entropy. o = softmax(Wt(u, v, |u — 0|))

Trong đó: e =n là sô chiêu của câu nhúng. e — klà số nhãn (label).

Hình 3.21: Chức năng mục tiêu phân loại (Classification Objective Function)

Chức năng mục tiêu hồi quy (Regression Objective Function)

Sử dụng độ cosine đê tính độ giông nhau giữa hai câu nhúng và sử dụng sai sô bình phương trung bình làm hàm mat mát.

Hình 3.22: Chức năng mục tiêu hồi quy (Regression Objective Function)

Chức năng mục tiêu bộ ba (Triplet Objective Function)

Cho một câu a, một câu khang định p và một câu phủ định n Mạng điều chỉnh bộ ba mắt mát sao cho khoảng cách giữa a và p nhỏ hơn khoảng cách giữa a và n Về mặt toán hoc, hàm mat mát được tối thiểu (minimize) như sau: max (Ilsa — Spl — IlSa ~ Sall + €, 0)

Trong đó: e sx là nhúng câu cho a/p/n. e || là khoảng cách.

48 e _£ (epsilon) là một tham số đảm bảo rằng sp ít nhất ¢ gần sạ hơn sa Trong thí nghiệm đặt e = 1. a S

Positive sentence Anchor sentence Negative sentence c>

Hình 3.23: Chức năng mục tiêu bộ ba (Triplet ObJective Function)

Trong quá trình nghiên cứu, chiến lược gộp theo MEAN chiếm ưu thế vượt bậc hơn hai chiến lược còn lại đối với nhiệm vụ của dé tài luận văn Do đó, hệ thống hỏi dap sẽ sử dụng chiến lược gộp trung bình cho quá trình huấn luyện mô hình Chi tiết quá trình triển khai xây dựng sẽ được trình bày ở chương tiếp theo.

CHƯƠNG 4: TRIEN KHAI THỰC NGHIEM

4.1 Thực hiện xứ lý dữ liệu

— _ Làm sạch dữ liệu: lowercase và loại bỏ các dâu câu, ky tự non-ascii. result

Hình 4.1: Lam sạch dữ liệu

— Tach từ và loại bỏ stopwords: from nltk.tokenize import word_tokenize from nltk.corpus import stopwords

50 wn WordNetLemmatizer() result [wn.lemmatize(word, for word in result] result

— _ Nối các token lại thành một câu:

Sau quá trình tiên xử lý dữ liệu, văn bản chỉ còn lại các từ trọng yêu, nó trở nên ngăn gọn và hữu ích hơn cho máy có thê hiệu và học tập được.

Một sô kêt quả thực của bộ dữ liệu câu hỏi tự nhiên (trường câu hoi) sau khi qua quá trình xử lý:

Tiên xử lý when puerto rico add usa who choose best support actress 64 national filmfare award which side white house front name metropolitan municipality south africa who host super bowl 2019 which year vivo launch first phone india

51 where talk mary magdalene bible who carry nuclear football president what origin name cynthia

Bảng 4.1: Một số dữ liệu tiền xử lý

4.2 Huấn luyện mô hình Đê huân luyện mô hình trên bộ dữ liệu cá nhân, chúng ta có thê sử dụng kiên trúc mô hình tương tự với cấu trúc mạng Siamese và Triplet như trong [7]. Ý tưởng là, đầu tiên, tạo ra các câu nhúng bằng SBERT, gọi là mô hình “giáo viên” Sau đó, tạo một mô hình mới cho tập dữ liệu mong muôn, gọi là mô hình “học sinh” và mô hình này cô găng băt chước mô hình “giáo viên”.

Sử dụng mô hình BERTbas (“bert-base-uncased”) dé tạo nhúng từ dưới dạng mô hình “học sinh” Áp dụng cho mô hình “giáo viên” là SBERT sử dụng lớp gộp trung bình (“bert-base-nli-stsb-mean-tokens”) Cùng với các tham số khác là: e e Độ dai câu đầu vào: max_seq_length = 128.

Kích thước lô (batch) nghĩa là dùng bao nhiêu dữ liệu cho mỗi lần tinh và cập nhật hệ SỐ trong khi huấn luyện: train_batch_size = 64.

Số lượng epoch thực hiện trong quá trình huấn luyện: epochs = 20.

Ty lệ học tập (learning rate) của trình tối ưu hóa Adam: Ir = 2e-5.

Tỷ lệ khởi động học tuyến tính (linear warm-up): warmup_steps = 10000 (10% dit liệu huấn luyện).

— Tao mô hình “giáo viên”:

52 teacher_model = SentenceTransformer(‘bert-base-nli-stsb-mean-tokens')

— _ Tạo mô hình “học sinh”: kết hop BERT base và lớp gdp trung bình theo sau. from sentence_transformers import models embedding_ model = models.Transformer('bert-base-uncased’) pooling_model = models.Pooling( embedding_model.get_word_embedding_ dimensionQ, pooling_mode_mean_tokens=True, pooling_mode_cls_tokense, pooling_mode_max_tokensse)

— _ Đưa dé liệu huấn luyện vào mô hình: dữ liệu gồm 93,316 câu hỏi đã được tiền xử lý, mỗi câu năm trên một dòng. from torch.utils.data import DataLoader from sentence_transformers import SentencesDataset, losses, evaluation, readers train_reader = ParallelSentencesDataset(student_model=model, teacher_model=teacher_model) train_reader.load_datắG:/_DATA/train.txt') train_dataloader = DataLoader(train_reader, shuffle=True, batch_size=train_batch_size) train_loss = losses MSELoss(model=model)

— Điều chỉnh mô hình (huấn luyện): model.fit( train_objectives=[(train_dataloader, train_loss)], epochs , evaluation_steps00, warmup_steps000, scheduler='warmupconstant', save_best_model=True, optimizer_params={'lr': 2e-5, 'eps': le-6, 'correct_bias': False })

Sau khi chạy xong, lưu model và sử dụng nó như một mô hình nhúng câu, có thể chuyên bat cứ câu nào thành một vector có 768 chiều cé định.

4.3 Đánh giá mô hình huấn luyện

— Lấy dữ liệu STS Benchmark: import tensorflow as tf import pandas as pd import os sts_dataset = tf.keras.utils.get_file( fname = "Stsbenchmark.tar.gz", origin = "http://ixa2.si.ehu.es/stswiki/images/4/48/Stsbenchmark.tar.gz", extract = True) sts_dev = pd.read_table( wou error_bad_lines = False, skip_blank_lines = True, usecols = [4, 5, 6], names = ["sim", "sent_1", "sent_2"])

# cleanup some NaN values in sts_dev sts_data = sts_dev[[isinstance(s, str) for s in sts_dev['sent_2']]] dev_scores = sfs_ data['sim ].tolist()

— _ Tính mối tương quan giữa kết quả dự đoán của mô hình và kết qua của bộ dữ liệu điểm chuẩn STS: import math from scipy import stats def my_embed(input): return model.encode([input]) def sts_ben(batch): encodel = tf.nn.12_normalize(my_embed(batch[1]), axis=1) encode2 = tf.nn.12_normalize(my_embed(batch[2]), axis=1) cosine_similarities = tf.reduce_sum(tf.multiply(encodel, encode2), axis=1) clip_cosine_similarities = tf.clip_by_value(cosine_similarities, -1.0, 1.0) return 1.0 - tf.acos(clip_cosine_similarities) / math.pi my_scores = [] my_scores.extend(sts_ben(batch)) pearson_correlation = stats.pearsonr(my_scores, dev_scores) print(Pearson correlation coefficient = {0}'.format(pearson_correlation[0])

Kết quả đánh giá mối tương quan của mô hình so với bộ dữ liệu điểm chuan STS là 0.871, đạt được kết quả khá cao, vượt kỳ vọng Tuy nhiên, nếu so sánh với các kết quả khác của mô hình SBERT được huấn luyện trước ở Bảng 4.2 thì mô hình tốt nhất của SBERT (“stsb-mpnet-base-v2”) có kết quả cao hơn một chút so với mô hình này Chính vì vậy, hệ thống hỏi đáp sẽ được triển khai dựa trên mô hình tốt nhất hiện có là “stsb-mpnet-base-v2”.

Mô hình SBERT Đánh giá bert-base-nli-mean-tokens 0.819 bert-base-nli-stsb-mean-tokens 0.871 stsb-roberta-base-v2 0.894 stsb-mpnet-base-v2 0.902

Bang 4.2: Bang đánh gia mô hình SBERT

4.4 Xây dựng hệ thống hỏi đáp

— Sử dụng model để nhúng toàn bộ các câu hỏi trong bộ dữ liệu câu hỏi tự nhiên vào không gian vector. data = pd.read_ csv(G:/cleandata.csv') embed_ data = model.encode(data.Clean)

— _ Xử lý câu hỏi truy vân của người dùng: query = 'where eiffel’ embed_query = model.encode([query]) similar = cosine_similarity(embed_query, embed_data) result = [] for id, score in sorted(enumerate(similar[0]), key=lambda x: x[1], reverse=True)[0:5]: result.append([score, data['Question ][id], data['Answer'][id]]) print(pd.DataFrame(result, columns=["Score", "Prediction", "Answer"]))

0.826517 | who is the owner of the eiffel tower City of Paris, France

0.775095 | how high is the eiffel tower in meters 324

0.766728 | how many levels are there on the eiffel tower | three

0.764441 | what is the french name of the eiffel tower tour Eiffel

0.760158 | what do they call the eiffel tower in france Tour Eiffel

Bảng 4.3: Kết quả của hệ thống hỏi đáp

4.4.2 Triển khai hệ thống lên web

— Giao diện khi vào trang web của hệ thống hỏi đáp:

Giao diện khi người dùng thực hiện truy van: ma

Hình 4.5: Giao diện trang chu

Ngày đăng: 03/11/2024, 17:44

HÌNH ẢNH LIÊN QUAN

Hình 2.1: So sánh giữa ham cross entropy và bình phương khoảng cách - Khóa luận tốt nghiệp Hệ thống thông tin: Hệ thống hỏi đáp dựa trên bộ dữ liệu câu hỏi tự nhiên
Hình 2.1 So sánh giữa ham cross entropy và bình phương khoảng cách (Trang 18)
Hình 2.2 là mô hình CBOW ở dạng tong quát. CBOW hoạt động dựa trên việc - Khóa luận tốt nghiệp Hệ thống thông tin: Hệ thống hỏi đáp dựa trên bộ dữ liệu câu hỏi tự nhiên
Hình 2.2 là mô hình CBOW ở dạng tong quát. CBOW hoạt động dựa trên việc (Trang 20)
Hình 2.8: Mô hình SBERT - Khóa luận tốt nghiệp Hệ thống thông tin: Hệ thống hỏi đáp dựa trên bộ dữ liệu câu hỏi tự nhiên
Hình 2.8 Mô hình SBERT (Trang 30)
Hình 3.1: Nhúng mã thông báo (Token Embeddings) - Khóa luận tốt nghiệp Hệ thống thông tin: Hệ thống hỏi đáp dựa trên bộ dữ liệu câu hỏi tự nhiên
Hình 3.1 Nhúng mã thông báo (Token Embeddings) (Trang 37)
Hình 3.4: Ví dụ nhúng vi trí su dung Sinusoidal Position Encoding - Khóa luận tốt nghiệp Hệ thống thông tin: Hệ thống hỏi đáp dựa trên bộ dữ liệu câu hỏi tự nhiên
Hình 3.4 Ví dụ nhúng vi trí su dung Sinusoidal Position Encoding (Trang 39)
Hình 3.6: Kiến trúc mô hình Transformer - Khóa luận tốt nghiệp Hệ thống thông tin: Hệ thống hỏi đáp dựa trên bộ dữ liệu câu hỏi tự nhiên
Hình 3.6 Kiến trúc mô hình Transformer (Trang 41)
Hình 3.8: Cơ chế tự chú ý (Self-Attention) - Khóa luận tốt nghiệp Hệ thống thông tin: Hệ thống hỏi đáp dựa trên bộ dữ liệu câu hỏi tự nhiên
Hình 3.8 Cơ chế tự chú ý (Self-Attention) (Trang 43)
Hình 3.10: Hình minh họa tinh trọng số chú ý (2) - Khóa luận tốt nghiệp Hệ thống thông tin: Hệ thống hỏi đáp dựa trên bộ dữ liệu câu hỏi tự nhiên
Hình 3.10 Hình minh họa tinh trọng số chú ý (2) (Trang 45)
Hình 3.11: Quá trình tính toán cơ chế tự chú ý - Khóa luận tốt nghiệp Hệ thống thông tin: Hệ thống hỏi đáp dựa trên bộ dữ liệu câu hỏi tự nhiên
Hình 3.11 Quá trình tính toán cơ chế tự chú ý (Trang 46)
Hình 3.13: Cơ chế chú ý nhiều đầu (Multi-Head Attention) - Khóa luận tốt nghiệp Hệ thống thông tin: Hệ thống hỏi đáp dựa trên bộ dữ liệu câu hỏi tự nhiên
Hình 3.13 Cơ chế chú ý nhiều đầu (Multi-Head Attention) (Trang 48)
Hình 3.14: Lớp thêm và chuẩn hóa (Add & Normalize) - Khóa luận tốt nghiệp Hệ thống thông tin: Hệ thống hỏi đáp dựa trên bộ dữ liệu câu hỏi tự nhiên
Hình 3.14 Lớp thêm và chuẩn hóa (Add & Normalize) (Trang 50)
Hình 3.15: Kiến trúc mô hình BERT - Khóa luận tốt nghiệp Hệ thống thông tin: Hệ thống hỏi đáp dựa trên bộ dữ liệu câu hỏi tự nhiên
Hình 3.15 Kiến trúc mô hình BERT (Trang 51)
Hình 3.17: Mô hình ngôn ngữ mat na (Masked Language Model) - Khóa luận tốt nghiệp Hệ thống thông tin: Hệ thống hỏi đáp dựa trên bộ dữ liệu câu hỏi tự nhiên
Hình 3.17 Mô hình ngôn ngữ mat na (Masked Language Model) (Trang 53)
Hình 3.20: Quá trình huấn luyện trước mô hình BERT - Khóa luận tốt nghiệp Hệ thống thông tin: Hệ thống hỏi đáp dựa trên bộ dữ liệu câu hỏi tự nhiên
Hình 3.20 Quá trình huấn luyện trước mô hình BERT (Trang 56)
Hình 3.22: Chức năng mục tiêu hồi quy (Regression Objective Function) - Khóa luận tốt nghiệp Hệ thống thông tin: Hệ thống hỏi đáp dựa trên bộ dữ liệu câu hỏi tự nhiên
Hình 3.22 Chức năng mục tiêu hồi quy (Regression Objective Function) (Trang 59)

TÀI LIỆU CÙNG NGƯỜI DÙNG

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN