Đăng ký Đăng nhập
Trang chủ Nghiên cứu phương pháp học sâu cho lọc cộng tác (tt)...

Tài liệu Nghiên cứu phương pháp học sâu cho lọc cộng tác (tt)

.PDF
26
337
60

Mô tả:

Nghiên cứu phương pháp học sâu cho lọc cộng tác (tt)Nghiên cứu phương pháp học sâu cho lọc cộng tác (tt)Nghiên cứu phương pháp học sâu cho lọc cộng tác (tt)Nghiên cứu phương pháp học sâu cho lọc cộng tác (tt)Nghiên cứu phương pháp học sâu cho lọc cộng tác (tt)Nghiên cứu phương pháp học sâu cho lọc cộng tác (tt)Nghiên cứu phương pháp học sâu cho lọc cộng tác (tt)Nghiên cứu phương pháp học sâu cho lọc cộng tác (tt)Nghiên cứu phương pháp học sâu cho lọc cộng tác (tt)Nghiên cứu phương pháp học sâu cho lọc cộng tác (tt)Nghiên cứu phương pháp học sâu cho lọc cộng tác (tt)Nghiên cứu phương pháp học sâu cho lọc cộng tác (tt)Nghiên cứu phương pháp học sâu cho lọc cộng tác (tt)Nghiên cứu phương pháp học sâu cho lọc cộng tác (tt)Nghiên cứu phương pháp học sâu cho lọc cộng tác (tt)Nghiên cứu phương pháp học sâu cho lọc cộng tác (tt)Nghiên cứu phương pháp học sâu cho lọc cộng tác (tt)Nghiên cứu phương pháp học sâu cho lọc cộng tác (tt)Nghiên cứu phương pháp học sâu cho lọc cộng tác (tt)Nghiên cứu phương pháp học sâu cho lọc cộng tác (tt)Nghiên cứu phương pháp học sâu cho lọc cộng tác (tt)
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG --------------------------------------- TRƯƠNG THỊ HẬU NGHIÊN CỨU PHƯƠNG PHÁP HỌC SÂU CHO LỌC CỘNG TÁC CHUYÊN NGÀNH : KHOA HỌC MÁY TÍNH MÃ SỐ: 60.48.01.01 (Khoa học máy tính) TÓM TẮT LUẬN VĂN THẠC SĨ HÀ NỘI – 2016 Luận văn được hoàn thành tại: HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG Người hướng dẫn khoa học: TS. Nguyễn Duy Phương Phản biện 1:…………………………………………………………………………. Phản biện 2:…………………………………………………………………………. Luận văn sẽ được bảo vệ trước hội đồng chấm luận văn thạc sĩ tại Học viện Công nghệ Bưu chính Viễn thông Vào lúc: ……..giờ …….ngày …… tháng …… năm ………. Có thể tìm hiểu luận văn tại: - Thư viện của Học viện Công nghệ Bưu chính Viễn thông. 1 MỞ ĐẦU Thế giới đã chứng kiến sự phát triển vượt bậc của lĩnh vực trí tuệ nhân tạo (Artificial Intelligence - AI) trong những năm gần đây. Google, Microsoft và Facebook đã thành lập những nhóm nghiên cứu và thực thi thành công một số dự án không tưởng. Một vài trong số dự án này trú trọng đến việc khai thác sự phong phú, đa dạng của dữ liệu được tạo ra bởi người sử dụng mạng xã hội. Rất nhiều trong số đó tập trung vào phân tích, và nâng cao hiệu quả tính toán. Chìa khóa để dẫn đến những thành công này được hỗ trợ một phần không nhỏ bởi một xu hướng mới trong AI, được gọi là “Deep Learning”. Deep Learning là một thuật toán dựa trên một số ý tưởng từ não bộ tới việc tiếp thu nhiều tầng biểu đạt, cả cụ thể lẫn trừu tượng, qua đó làm rõ nghĩa của các loại dữ liệu. Nói cách khác, deep learning là một lĩnh vực mới của machine learning nhằm cải thiện những ứng dụng như thị giác máy tính (computer vision), xử lý ngôn ngữ tự nhiên (natural language processing) để giải đáp những thách thức đối với dữ liệu phi cấu trúc. Điểm đặc biệt của Deep Learning là tính chính xác dựa vào lượng dữ liệu, lượng dữ liệu có thể có kích thước khổng lồ mà không bị hạn chế. Chính vì vậy em đã chọn đề tài “Nghiên cứu phương pháp học sâu cho lọc cộng tác” để thực hiện trong khuôn khổ luận văn tốt nghiệp thạc sỹ ngành khoa học máy tính. Nội dung luận văn được cấu trúc thành 3 chương như sau Chương 1: Giới thiệu về Deep Learning Trong chương này, luận văn sẽ giới thiêu tổng quan về phương pháp học sâu: định nghĩa và các loại phương pháp học sâu. Chương 2: Deep Learning cho lọc cộng tác Trình bày phương pháp học Deep Learningg cho lọc cộng tác. Dựa vào những nghiên cứu cơ bản, đi sâu tìm hiểu vào kỹ thuật học sâu cho lọc cộng tác bằng máy hạn chế Bolzmman. Chương 3: Xây dựng hệ thống và thực nghiệm Chương 3 trình bày về phương pháp thử nghiệm và đánh giá. Kết luận và hướng phát triển Trình bày tóm tắt những kết quả đã đạt được và chưa đạt được. Từ đó đề xuất mục tiêu cũng như hướng nghiên cứu, phát triển tiếp theo. 2 CHƯƠNG 1. GIỚI THIỆU VỀ DEEP LEARNING 1.1. Tổng quan về Deep Learning 1.1.1. Định nghĩa Từ năm 2006, học với cấu trúc sâu, hay thường gọi là học sâu hoặc học theo từng lớp đã nổi lên như một lĩnh vực mới trong nghiên cứu học máy. Trong nhiều năm qua, các kỹ thuật phát triển từ nghiên cứu học sâu đã bị ảnh hưởng tới một loạt các tín hiệu và công việc xử lý thông tin. Rất nhiều các hội thảo, hướng dẫn và các phiên họp đặc biệt trong những năm gần đây đã được dành riêng để giới thiệu về học sâu và ứng dụng của nó đến các tín hiệu khác nhau và các tiến trình xử lý thông tin. Trước khi đi vào tìm hiểu cụ thể, luận văn đưa ra định nghĩa về học sâu: “Học sâu là một lĩnh vực mới của nghiên cứu học máy, đã được giới thiệu với mục đích đưa học máy gần gũi hơn với một trong những mục tiêu ban đầu của nó: Trí tuệ nhân tạo. Học Sâu là học hỏi nhiều cấp độ của các đại diện và sự trừu tượng đó giúp làm cho ý nghĩa của dữ liệu như hình ảnh, âm thanh rõ ràng hơn.” 1.1.2. Lịch sử 1.1.3. Ứng dụng Sự đột phá của các công nghệ Deep Learning được ứng dụng ngày càng nhiều bởi các doanh nghiệp để tạo ra các mô hình kinh doanh mới và xây dựng những ứng dụng mới mẻ để giải quyết những bài toán thực tế, trong đó phải kể đến những ứng dụng có nhiều tiềm năng thương mại hóa sau: a. Nhận dạng giọng nói: Tất cả các hệ thống nhận dạng giọng nói thương mại chính (ví dụ: Microsoft Cortana, Xbox, Skype Translator, Google Now, Apple Siri, Baidu và iFlyTek tìm kiếm bằng giọng nói và một loạt các sản phẩm của Nuance speech, vv) được dựa trên phương pháp học sâu. b. Nhận dạng hình ảnh Mục tiêu của công nghệ nhận diện ảnh là nhận biết và xác định các đối tượng trong ảnh cũng như hiểu được nội dung và ngữ cảnh trong đó. Ví dụ dưới cho thấy dịch vụ nhận diện và xác định khuôn mặt của AlchemyVision có khả năng phân biệt hai khuôn mặt tương tự nhau giữa nam diễn viên Will Ferrell và tay trống của Red Hot Chili Peppers, Chad 3 Smith. Công nghệ nhận diện hình ảnh cũng được đưa vào Facebook để gợi ý người dùng tag mặt bạn bè hay ứng dụng vào khoa học tội phạm và điều tra. Hình 1-1: Nhận diện hai khuôn mặt tương tự nhau c. Xử lý ngôn ngữ tự nhiên Mạng nơ-ron đã được sử dụng cho việc thực hiện các mô hình ngôn ngữ kể từ đầu những năm 2000. Các kỹ thuật quan trọng trong lĩnh vực này là lấy mẫu âm và nhúng chữ (word embedding). Các mạng kiến trúc sâu đã đạt được những kết quả tiên tiến nhất trong nhiều tác vụ xử lý ngôn ngữ tự nhiên như phân tích thống kê, phân tích tình cảm, tra cứu thông tin, dịch máy, liên kết thực thể ngữ cảnh, và.v.v. d. Khám phá dược phẩm và độc chất học Ngành công nghiệp dược phẩm phải đối mặt với vấn đề mà một tỷ lệ lớn các loại thuốc tiềm năng thất bại khi tiếp cận với thị trường. Những thất bại của các hợp chất hóa học này gây ra bởi không đủ hiệu quả trên mục tiêu phân tử sinh học, có các tương tác không bị phát hiện và không mong muốn với các phân tử sinh học khác, hoặc các hiệu ứng độc dược ngoài dự tính. Các nhà nghiên cứu đến từ Google và Stanford đã mở rộng học sâu để khám phá dược phẩm bằng cách kết hợp dữ liệu từ nhiều nguồn khác nhau. e. Hệ thống gợi ý trên các nền tảng Các nền tảng lớn hiện nay như Facebook, Amazon, Netflix,... đều có hệ thống gợi ý (recommend) rất mạnh giúp tăng đáng kể độ tương tác của người dùng. Cụ thể là chúng dựa trên các dữ liệu người dùng phát sinh ra khi dùng để gợi ý thêm những sản phẩm họ sẽ thích (trên các nền tảng mua sắm), những bộ phim họ sẽ muốn xem (vd. như trên Netflix), gợi ý 4 các bài quảng cáo/được tài trợ (trên Facebook) hay các khóa học người học quan tâm (trên các nền tảng học online). Hình 1-2: Hệ thống tư vấn cho người dùng 1.2. Phân loại các phương pháp học sâu Như đã giới thiệu ở trên, học sâu đề cập đến một phần khá rộng của các kỹ thuật học máy và các cấu trúc, với các dấu hiệu của việc sử dụng nhiều lớp xử lý thông tin phi tuyến tính phân cấp trong tự nhiên. Tùy thuộc vào mục đích sử dụng các cấu trúc và kỹ nhuật như thế nào mà ta có thể phân học sâu thành ba loại chính là: mạng học sâu có giám sát (deep network for supervised learning), mạng học sâu không giám sát (deep network for unsupervised learning), mạng học sâu kết hợp (deep network for hybrid learning). 1.2.1. Mạng học sâu có giám sát Mạng học sâu có giám sát cung cấp trực tiếp tài liệu cho mục đích phân biệt các mô hình phân loại bằng cách mô tả sự phân bố hậu nghiệm của các lớp có điều kiện trên tập dữ liệu có sẵn. Tức là, dữ liệu huấn luyện bao gồm các lớp đầu vào và đầu ra mong muốn. Đầu ra là dự đoán của một lớp phân loại cho một đối tượng đầu vào. Nhiệm vụ của chương trình học sâu có giám sát là dự đoán giá trị của hàm đầu ra cho một đối tượng bất kì là đầu vào hợp lệ, sau khi đã xem xét tập dữ liệu huấn luyện (là các đầu vào và đầu ra tương ứng). Để đạt được điều này, chương trình phải học tổng quát hóa từ các dữ liệu sẵn có để dự đoán được những tình huống chưa gặp phải theo một cách hợp lý. 5 1.2.2. Phương pháp học sâu không giám sát Phương pháp này nắm bắt độ tương đồng của dữ liệu quan sát được để phân tích mô hình và xác định được đầu ra khi không có thông tin gì về nhãn lớp mục tiêu có sẵn. Nó khác biệt với học có giám sát ở chỗ là đầu ra đúng tương ứng cho mỗi đầu vào là không biết trước. Trong học không có giám sát, một tập dữ liệu đầu vào được thu thập. Học không có giám sát thường xem với các đối tượng đầu vào như là một tập các biến ngẫu nhiên. Sau đó, một mô hình mật độ kết hợp sẽ được xây dựng cho tập dữ liệu đó. 1.2.3. Mạng học sâu kết hợp Thuật ngữ “kết hợp” đề cập đến các kiến trúc sâu bao gồm hoặc sử dụng cả hai thành phần mô hình sinh mẫu và mô hình phân biệt. Trong kiến trúc mạng học sâu kết hợp, mục tiêu cuối cùng là các thành phần sinh mẫu chủ yếu được khai thác để giúp mô hình phân biệt. 1.3. Kết luận chương Chương 1 đã giới thiệu tổng quan về phương pháp deep learning. Deep Learning được xem như là nhánh chi tiết hơn của Machine Learning, thuật ngữ dùng để chỉ một phân ngành của trí tuệ nhân tạo chuyên nghiên cứu và xây dựng các hệ thống có khả năng học hỏi từ dữ liệu thay vì chỉ thực thi theo những dòng lệnh được lập trình sẵn. Trong bối cảnh lượng dữ liệu thu thập được ngày càng nhiều, công nghệ học hỏi của máy tính càng phải “sâu” để có thể đưa ra được những kết quả hữu ích. Deep learning được biết đến như việc tiếp thu nhiều tầng biểu đạt, cả cụ thể lẫn trừu tượng, qua đó làm rõ nghĩa của các loại dữ liệu ví dụ như hình ảnh, âm thanh và văn bản. Trên thế giới đã có nhiều công trình nghiên cứu đạt những kết quả khả quan, các ông lớn như Google, Microsoft và Facebook, họ đã tự thành lập những nhóm nghiên cứu và tiếp tục đầu tư vào lĩnh vực này. 6 CHƯƠNG 2. DEEP LEARNING CHO LỌC CỘNG TÁC 2.1. Giới thiệu về phương pháp tư vấn dựa trên kỹ thuật lọc cộng tác 2.1.1. Giới thiệu về hệ thống tư vấn Hệ thống tư vấn (Recommender Systems -RSs) là những công cụ hay kỹ thuật phần mềm cung cấp các gợi ý về các sản phẩm cho người dùng. Các gợi ý này liên quan đến quá trình ra quyết định về loại sản phẩm cần mua, loại âm nhạc cần nghe, hoặc tin tức cần đọc,... Hình 2-1: Minh họa hệ thống tư vấn sách cho người đọc Ứng dụng: Phạm vi ứng dụng của hệ thống tư vấn lựa chọn là rất rộng. Trong thương mại điện tử, hầu hết các hệ thống này là các hệ thống bán sách, giới thiệu phim, tin tức, đĩa CD ca nhạc, các trang Web... Phân loại: Có rất nhiều cách để dự đoán, ước lượng hạng /điểm cho các sản phẩm như sử dụng học máy, lí thuyết xấp sỉ, các thuật toán dựa trên kinh nghiệm … Theo [1], các hệ thống tư vấn thường được phân thành ba loại: - Tư vấn dựa trên nội dung - Tư vấn dựa trên cộng tác - Tư vấn dựa trên cách tiếp cận kết hợp 2.1.2. Tư vấn dựa trên lọc cộng tác Mục đích của giải thuật lọc cộng tác là gợi ý những sản phẩm mới hoặc dự đoán một sản phẩm hợp lý cho người dùng, dựa trên những sở thích trước đây và lựa chọn từ những sở thích của những người dùng khác. 7 Hình 2-2: Minh họa phương pháp tư vấn dựa trên lọc cộng tác 2.2. Giới thiệu về máy Bolzmman ((Botlzmann Machine)) 2.2.1. Mô hình máy Bolzman Botlzmann Machine là một mạng nơ ron hồi quy (là mạng mà đầu ra của một nơ-ron có thể thành đầu vào của rơ-ron trên cùng một lớp hoặc của các lớp trước đó, nó có chu trình khép kín hình 2-4 gồm các nút nhị phân ngẫu nhiên và các kết nối đối xứng được tìm ra bởi David Ackley, Geofrey Hinton, và Terrence Sejnowski [2]. Hình 2-3: Mạng nơ-ron hồi quy một lớp 8 Các đơn vị ẩn- Hidden units H H H H V H H V H V V H V V V V V Các đơn vị hiện- Visible units Hình 2-4: Một Boltzmann Machine, các nút có thể nối với nhau theo bất kỳ cách nào. Các nút của một BM thường được chia thành hai lớp, một là tập hợp các nút có thể nhìn thấy được (visible units) trong đó có thể có dữ liệu giữ trên nó, và một tập hợp các nút ẩn (hidden units) mà hành động như các biến tiềm ẩn [4]. Các nút được kết nối với nhau bằng các kết nối đối xứng theo bất kỳ cách nào tùy ý, ngoại trừ với chính mình (hình 2-5). Mỗi nút i có một trạng thái si nhị phân và hai trạng thái “tắt” hoặc “mở” (si=0 hoặc si=1) với một xác suất đó là một hàm logistic của các yếu tố đầu vào mà nó nhận được từ các nút khác j nó được kết nối tới [4]:p(si  1)  1 1  exp(bi   si w ij ) i (2.8) Trong đó bi là ngưỡng (hay còn gọi là độ lệch bias: Ngưỡng này thường được đưa vào như một thành phần của hàm truyền của nút i và trọng số wij là trọng số liên kết của đối xứng giữa nút i và nút j. E (v, h)   bi si(v,h)   si(v,h) s (v,h) w ij j i i j (2.9) Nếu các nút được lựa chọn ngẫu nhiên và liên tục được cập nhật bằng cách sử dụng công thức (2.8), nó có thể được chỉ ra rằng mạng cuối cùng sẽ đạt được một phân bố xác 9 suất ổn định (hoặc cân bằng), trong đó xác suất tìm thấy mạng trong bất kỳ cấu hình toàn cục (v,h) được xác định bởi năng lượng của các cấu hình tương đối so với các nguồn năng exp(  E(v, h)) lượng của tất cả các cấu hình p (v, h)có thể có [4]: khác   exp( E (u, g)) u,g (2.10) Đặc biệt hơn nữa, xác suất tìm thấy mạng ở tính dừng với một v cấu hình với các nút có thể nhìn thấy nó được cho bởi: p(v)   exp( E(v, h)) h  exp( E(u, g)) u,g (2.11) 2.2.2. Huấn luyên cho máy Bolzmann Các đơn vị trong BM được chia thành các nút ẩn và các nút hiện. Các đơn vị hiện có thể nhận được thông tin từ “môi trường”, tức là tập huấn luyện là một tập vector nhị phân trên tập V. Sự phân phối trên tập huấn luyện được ký hiệu là P+ (V) và P- (V) phân phối sinh ra trên các visible units của một BM khi mạng chạy tự do ở trạng thái cân bằng. Xem xét đo Kullback – Leibler (Entropy tương đối) để đánh giá khoảng cách giữa hai phân phối, huấn luyện để giảm thiểu: P  (v) G   P (v) ln(  ) P (v) v  (2.12) Ý nghĩa của Gain(G) là một thước đo độ tương tự giữa P+ (V) và P- (V). G=0 thì P+ (V) = P- (V) và ngược lại. Từ công thức (2.12) là hàm gián tiếp của những trọng số và ngưỡng của BM, mô hình này có thể được cải thiện bằng việc chỉnh sửa trong số wij và ngưỡng bi như vậy là để giảm G. Do đó một chiến lược gradient descent có thể được sử dụng để giảm thiểu G. Đáng ngạc nhiên, nó có thể được hiển thị [2] mà đạo hàm riêng của G đối với wij là đơn giản như: G w ij  ( si s j     si s j   ) (2.13) Trong đó,  + là xác suất trung bình, khi dữ liệu những vector từ P+ (V) được giữ trên các nút có thể nhìn thấy, tìm kiếm cả nút i và nút j bật khi BM chạy ở trạng thái cân bằng. 10  - là xác suất trung bình của tìm kiếm cả nút i và nút j bật khi BM chạy tự do ở trạng thái cân bằng. Trong thực tế, tính toán + được gọi là positive phase và có thể thực hiện như mô tả trong thuật toán bảng 2-1. Tính toán - được gọi là negative phase và có thể được thực hiện như mô tả trong thuật toán bảng 2-2. Bảng 2-1: Bảng giải thuật Positive phase Giải thuật BM- Positive phase 1. Giữ một vector dữ liệu trên các nút hiển thị của BM 2. Cập nhật các nút ẩn theo thứ tự ngẫu nhiên bằng công thức 2.8 3. Một khi BM đã đạt đến trạng thái phân phối cân bằng của mình, vector trạng thái lấy mẫu và ghi lại sisj 4. Lặp lại các bước 1,2,3 cho toàn bộ dữ liệu. Tính trung bình để lấy +. Bảng 2-2: Bảng giải thuật Negative phase Giải thuật BM- Negative phase 1. Khởi tạo BM với các trạng thái là ngẫu nhiên 2. Cập nhật các visible và hidden unit theo thứ tự ngẫu nhiên sử dụng công thức 2.8 3. Một khi BM đã đạt đến trạng thái phân phối cân bằng của mình, vector trạng thái lấy mẫu và ghi lại sisj 4. Lặp lại các bước 1,2, và 3 nhiều lần. Tính trung bình để lấy + 2.3. Máy hạn chế Botlzmann (Restrist Botlzmann Machine) 2.3.1. Mô hình máy hạn chế Botlzmann Mô hình RBM là một Botlzmann Machine có kiến trúc hạn chế. Với BM thì các nút hiện (visible units) và các nút ẩn (hidden units) có thể kết nối với nhau. Còn trong RBM nó cũng gồm hai lớp, một lớp là các nút hiện (visible units) và một lớp là các nút ẩn (hidden units) nhưng không có sự kết nối giữa các nút hiện với nút hiện (visible - visible) hoặc nút ẩn với nút ẩn (hidden - hidden) giữa chúng là hoàn toàn độc lập [5]. Với tính năng hạn chế 11 giữa các nút đó làm cho việc đào tạo RBM trở lên dễ dàng. Một ví dụ của mô hình RBM trong hình 2-6 Các đơn vị ẩn - Hidden units - H, các ngưỡng - bj H, b1 H, b3 H, b5 H, b7 .... H, b2 H, b4 H, bj H, b6 W V, b1 V, b3 V, b5 V, b7 .... V, b2 V, b4 V, b6 V, bi Các nút hiện - Visible units - H, các ngưỡng – bi, W - trọng số liên kết V và H Hình 2-5: Một Restricted Boltzmann Machine chỉ có sự liên kết giữa các nút hiện và các nút ẩn. 2.3.2. Huấn luyện cho máy hạn chế Botlzmann (RBM) Với việc giới hạn các kết nối, việc tính toán + không còn gặp khó khăn. Thật vậy, khi mà một vector dữ liệu được giữ trên các nút hiện, các nút ẩn là điều kiện độc lập và lấy mẫu unbiased từ + có thể được tính toán trong một bước song song bằng cách sử dụng công thức (2.8). May mắn thay, việc học thực sự vẫn hoạt động khá tốt nếu - được thay thế bằng một xấp xỉ T được mô tả như trong thuật toán bảng 2.3. Các quy tắc học tập trở thành: wij   ( sis j    sis j T ) (2.16) bi   ( si     si T ) Bảng 2-3: Bảng giải thuật huấn luyện phân kỳ tương phản CD Giải thuật RBM- Contrastive Divergence 1. Giữ một vector dữ liệu trên các visible unit của RBMs 2. Cập nhật song song tất cả các hidden units sử dụng công thức 2.8 (2.17) 12 3. Lặp T bước hình 2.4, luân phiên cập nhật tất cả các visible units, các hidden units song song, vẫn sử dụng công thức 2.8 4. Lấy mẫu sisj từ cấu hình hiện tại. 5. Lặp lại các bước 1,2,3, và 4 cho mỗi dữ liệu có sẵn và tính trung bình để có T 2.4. Máy hạn chế Botlzmann (RBMs) trong lọc cộng tác 2.4.1. Mô hình máy hạn chế Botlzmann (RBMs) trong lọc cộng tác Giả sử chúng ta có N người dùng đánh giá M bộ phim, các đánh giá (rating) dạng số nguyên có giá trị 1 -> K. Khi đưa mô hình RBMs áp dụng vào trong lọc cộng tác thì gặp hai vấn đề. Vấn đề thứ nhất, mô hình gốc của RBM với giá trị đầu vào các nút hiện là dạng nhị phân. Trong khi đó, dữ liệu đầu vào dùng cho các nút hiện của RBMs trong lọc cộng tác lại là dạng số nguyên (giá trị của N người dùng đánh giá M bộ phim) hình 2-7. Một giải pháp đơn giản để giải quyết vấn đề đó là “softmax” units. Mỗi đánh giá được biến đổi thành một mã nhị phân, các nút nhị phân ở vị trí thứ k của softmax được gán bằng 1 khi và chỉ khi người dùng đánh giá bộ phim thứ k. Vấn đề thứ hai là làm sao để giải quyết số lượng lớn của dữ liệu thưa nói cách khác là không có đánh giá của người dùng cho các bộ phim như đã đề cập trong chương 1. Giải pháp được đề xuất trong [9] là xem xét rằng các nút hiện tương ứng với các bộ phim mà người dùng không đánh giá thì sẽ không tồn tại hình 2-8. 13 Hình 2-6: So sánh RBMs nhị phân và RBMs trong lọc cộng tác[8] hj Wijk h W V Không có đánh giá Không có đánh giá  ik Hình 2-7: Restricted Boltzmann Machine cho lọc cộng tác. Nút hiện nhị phân được thay thế với các softmax units. Mỗi người dùng chỉ có một RBMs bao gồm softmax units cho những bộ phim được đánh giá bởi người dùng đó Bảng 2-4: Những người dùng đánh giá cho từng bộ phim Movie M1 M2 M3 U1 1 4 1 U2 3 U3 1 U4 4 M4 M5 User 2 2 2 3 1 2 1 4 4 3 Bảng 2-5: Một người dùng (U2 bảng 1) đánh giá cho những bộ phim M1 M2 M3 M4 M5 1 0 0 0 0 0 2 0 0 1 0 0 3 1 0 0 0 0 Movie K 14 4 0 0 0 1 0 Cụ thể hơn, Xét một người dùng u đánh giá M bộ phim. Xây dựng ma trận V có k K  M , K là đánh giá của u đối với M bộ phim có dạng số nguyên 1 -> K. Các vị trí vi  1 nếu người dùng u đánh giá bộ phim i là k và các giá trị còn lại sẽ là 0 (Bảng 2-4 -> Bảng 2-5 xét cho một người dùng U2). Các hj có j=1,...F là các giá trị nhị phân của các nút ẩn. Cột của V được mô hình hóa bằng cách sử dụng một phân phối đa thức (một softmax) và các F exp(bik   h jW2.8 đặc trưng ẩn h được mô phỏng giống như trong công thức ij k ) [9]: j 1 p( ik  1| h)  K F  exp(b   h W l 1 p (h j  1| V )  l i j j 1 l ij ) (2.18) 1 m K 1  exp( b j   ikWijk ) i 1 k 1 (2.19) Trong đó, Wijk k là trọng số kết nối giữa đánh giá k của bộ phim i và nút ẩn j, bi là bias (ngưỡng) của đánh giá k cho bộ phim i và bj là ngưỡng của nút ẩn j. 2.4.2. Huấn luyện máy hạn chế Botlzmann (RBMs) trong lọc cộng tác Mặc dù hàm kích hoạt của các nút hiện đã thay đổi, các quy tắc học ở công thức (2.16), (2.17) vẫn như cũ. Sự khác biệt duy nhất là Gibbs sampling được sử dụng để tái tạo lại phân phối duy nhất trong xếp hạng không missing ratings [9]. Sử dụng các ký hiệu giới thiệu trước đây để học trở thành: Wijk   w ( vik hj    vik hj T ) (2.20) bik   v ( vik     vik T ) (2.21) bk   h ( hj    hj T ) j (2.22) 2.4.3. Dự đoán Quay lại vấn đề là làm sao để tư vấn? Bây giờ đã biết làm thế nào để mô hình một phân phối đánh giá trên các nút hiện của một RBM, suy luận ra các xếp hạng chưa đánh giá là thực tế khá đơn giản: Giữ các xếp hạng người dùng trên các nút softmax, và sau đó thực hiện một bước lấy mẫu Gibbs duy nhất trên tất cả các đánh giá bị missing. Đó chính là cách giải quyết. Thuật toán dự đoán được đưa ra dưới bảng 2-6: 15 Bảng 2-6: Dự đoán của giải thuật RBMs trong lọc cộng tác Giải thuật RBM- Dự đoán Inputs: Một người dùng u và một bộ phim i Outputs: Một dự đoán của R(u,i) 1. Giữ đánh giá của người dùng u trên các softmax units của RBM. 2. Tính toán 3. Tính toán ˆ p j  p (h j  1| V) k F cho  p các ˆj exp(bi  tất cảWij k ) hidden units j j 1 k p( i  1| p)  K F ˆ exp(bli   p jWijl )  l 1 j 1 cho k =1,...,K K 4. Dự đoán giá trị. ví dụ: 2.5. ˆ R(u,i)   p( ik  1| p)k k 1 . Kết luận Chương 2 đã giới thiệu về giải thuật BM, RBM và RBMs trong lọc cộng tác. Phương pháp huấn luyện, cập nhật giá trị các tham số và dự đoán của giải thuật RBMs cũng đã được đề cập. Chương 3 tiếp theo sẽ tiến hành cài đặt thuật toán cho bài toán được đưa ra với dữ liệu dataset mà hệ thống Netflix cung cấp. 16 CHƯƠNG III. XÂY DỰNG HỆ THỐNG VÀ THỬ NGHIỆM Xây dựng bài toán 3.1. Vị trí cần dự đoán i1 i2 i3 ... ij u1 u2 ... ua ... in Dự đoán Prediction Raj (Dự đoán của người dùng a trên tài nguyên j) ... um Đầu vào: Ma trận đánh giá R Rating maxtrix Giải thuật lọc cộng tác Collaborative Filtering Algorithm RBMs Đầu ra Hình 3-1: Xây dựng bài toán trong lọc cộng tác Bài toàn mà luận văn xây dựng, hình 3.1 thì bài toàn được đưa ra như sau: Trong bài toán tư vấn dựa trên lọc cộng tác, giá trị đầu vào của hệ tư vấn chính là các đánh giá dạng số nguyên K của người dùng tới những bộ phim được xây dựng thành dạng ma trận R. R có kích thước N  M với N là số người dùng. Đầu ra của bài toán có giá trị Raj với a  N , j  M chính là kết quả dự đoán của kỹ thuật lọc cộng tác. Cụ thể ở đây được thể hiện bằng giải thuật RBMs. Các kết quả dự đoán được sử dụng để tính độ hiệu quả của thuật toán qua chỉ số đánh giá RMSE của giải thuật. 3.2. Hệ thống của máy hạn chế Boltzmann (RBMs) trong lọc cộng tác 17 Khởi tạo +Khởi tạo trọng số W với các giá trị 0 +Khởi tạo ngưỡng b với các giá trị 0 Tất cả users -người dùng chia n mini -batch mini-batch 2 mini-batch 1 m users Một user +Tính xác suất điều kiện của h và v +Chạy Gibbs sampler qua T bước lặp Dữ liệu đầu vào DataSet mini-batch n m users m users Một user +Tính xác suất điều kiện của h và v +Chạy Gibbs sampler qua T bước lặp ... Một user +Tính xác suất điều kiện của h và v +Chạy Gibbs sampler qua T bước lặp Đưa ra các dự đoán và chỉ số đánh giá RMSE Khối 3 - Khối dự đoán, đánh giá Cập nhật các giá trị Cập nhật các giá trị Cập nhật các giá trị Khối 1 - Khối dữ liệu Trọng số Ngưỡng w b phía h Ngưỡng b phía v Trọng số w Ngưỡng b phía h Ngưỡng b phía v Trọng số Ngưỡng Ngưỡng w b phía h b phía v Khối 2 -Khối giải thuật RBM Hình 3-2: Sơ đồ khối hệ thống sử dụng giải thuật RBMs trong lọc cộng tác. Căn bậc hai của trung bình bình phương sai số (Root Mean Squared Error) [8]: RMSE  1 ˆ T (R(u,i)  R(u,i))2 | T | (u,i) (3.1) Trong đó, + T là bộ dữ liệu kiểm tra(testing set) + R(u,i) là giá trị đánh giá thực của người dùng u với bộ phim i ˆ + R (u,i) là giá trị dự đoán của người dùng u với bộ phim i theo giải bảng xx 3.3. Mô tả dữ liệu Dataset Netflix Khối 1, dữ liệu theo như [9] và Netflix [11 ] cung cấp, dữ liệu được thu thập từ giữa tháng 10 năm 1998 đến tháng 12 năm 2005 gồm những đánh giá của người dùng đối với những bộ phim theo định dạng hình 3.4. 18 Hình 3-3: Định dạng của đánh giá những người dùng đối với những bộ phim Trong hình 3.4 mô tả dữ liệu dataset của nhiều người dùng. Mỗi người dùng chứa một mảng hai chiều là mã những bộ phim và giá trị được người dùng đánh giá. Ví dụ xét người dùng trong hình ô số 1. Các giá trị 252, 411, 788,... chiều thứ nhất là mã của các bộ phim. Chiều số hai là 1, 4, 1,... là kết quả đánh giá của người đó với tương ứng mã các bộ phim ở mảng một. Ở ô số 2 và các ô còn lại cũng tương tự. Khi huấn luyện, Netflix cung cấp các tập: dữ liệu huấn luyện (Training set) bao gồm 100,480,507 đánh giá từ 480,189 người dùng và 17,770 bộ phim, dữ liệu kiểm tra (validation) bao gồm 1,408,395 đánh giá, và dữ liệu kiểm định (testing set, gồm các mẫu hoàn toàn mới) gồm 2,817,131 cặp người dùng / bộ phim đánh giá. Bảng 3.3 sẽ mô tóm lược lại các thông số dữ liệu. Bảng 3-1: Thông số dữ liệu mà Netflix cung cấp
- Xem thêm -

Tài liệu liên quan