Ứng Dụng Mạng Neural Vào Hệ Gợi Ý Trong Thương Mại Điện Tử (tt)Ứng Dụng Mạng Neural Vào Hệ Gợi Ý Trong Thương Mại Điện Tử (tt)Ứng Dụng Mạng Neural Vào Hệ Gợi Ý Trong Thương Mại Điện Tử (tt)Ứng Dụng Mạng Neural Vào Hệ Gợi Ý Trong Thương Mại Điện Tử (tt)Ứng Dụng Mạng Neural Vào Hệ Gợi Ý Trong Thương Mại Điện Tử (tt)Ứng Dụng Mạng Neural Vào Hệ Gợi Ý Trong Thương Mại Điện Tử (tt)Ứng Dụng Mạng Neural Vào Hệ Gợi Ý Trong Thương Mại Điện Tử (tt)Ứng Dụng Mạng Neural Vào Hệ Gợi Ý Trong Thương Mại Điện Tử (tt)Ứng Dụng Mạng Neural Vào Hệ Gợi Ý Trong Thương Mại Điện Tử (tt)Ứng Dụng Mạng Neural Vào Hệ Gợi Ý Trong Thương Mại Điện Tử (tt)Ứng Dụng Mạng Neural Vào Hệ Gợi Ý Trong Thương Mại Điện Tử (tt)Ứng Dụng Mạng Neural Vào Hệ Gợi Ý Trong Thương Mại Điện Tử (tt)Ứng Dụng Mạng Neural Vào Hệ Gợi Ý Trong Thương Mại Điện Tử (tt)
HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG - VÕ ĐỨC ANH ỨNG DỤNG MẠNG NEURAL VÀO HỆ GỢI Ý TRONG THƯƠNG MẠI ĐIỆN TỬ TÓM TẮT LUẬN VĂN THẠC SĨ (Theo định hướng ứng dụng) HỒ CHÍ MINH - 2017 Luận văn hồ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: PGS TS LÊ TUẤN ANH Phản biện 1: TS Nguyễn Tuấn Đăng Phản biện 2: TS Đặng Trường Sơn Luận văn bảo vệ trước Hội đồng chấm luận văn thạc sĩ Học viện Cơng nghệ Bưu Viễn thông Vào lúc: 11 30 ngày 05 tháng 08 năm 2017 Có thể tìm hiểu luận văn tại: - Thư viện Học viện Cơng nghệ Bưu Viễn thông CHƯƠNG - TỔNG QUAN 1.1 Tổng quan thương mại điện tử Hệ gợi ý Hệ gợi ý hay hệ khuyến nghị (Recommender system - RS) dạng hệ hỗ trợ định, cung cấp giải pháp mang tính cá nhân hóa mà khơng phải trải qua trình tìm kiếm phức tạp Hệ thống đưa mục thơng tin phù hợp cho người dùng cách dựa vào liệu hành vi khứ họ dự đoán thơng tin mà người dùng cần Hệ thống gợi ý với việc đưa thông tin gợi ý cho người dùng, hiển thị thêm nội dung liên quan giúp giữ người dùng lại trang lâu hơn, tăng số lượng khách hàng tiềm năng, giúp đẩy mạnh tiêu thụ sản phẩm Thông tin gợi ý, nội dung liên quan nói đề xuất, gợi mở, lựa chọn, kết tính tốn dựa việc thu thập liệu người dùng liên quan tới việc xem, mua hàng, đánh giá cá nhân trước Các dạng gợi ý có nhiều loại: gợi ý sản phẩm tới người tiêu dùng, thơng tin sản phẩm mang tính cá nhân hóa, tổng kết ý kiến từ cộng đồng, xu hướng trào lưu tại, nội dung quan tâm, chia sẻ, phê bình, đánh giá mang tính số đơng liên quan tới u cầu, mục đích cho người sử dụng Trong lĩnh vực thương mại điện tử, để xây dựng hệ gợi ý dựa vào nhiều yếu tố: lượt xem, lượt mua, số lượng mua, đánh giá sản phẩm, nhận xét phản hồi…từ làm sở để phân loại đưa thông tin phù hợp cho khách hàng 1.2 Tổng quan mạng neural Cấu trúc mạng neural Mỗi neural nhân tạo đơn vị xử lý thông tin, mơ theo neural sinh học não người Neural thành phần mạng neural Cấu trúc neural mơ tả hình Hình 1.1: Neural nhân tạo Các thành phần neural nhân tạo bao gồm: • Tập đầu vào: Là tín hiệu vào (input signals) neural, tín hiệu thường đưa vào dạng vectơ N chiều • Tập liên kết: Mỗi liên kết thể trọng số (gọi trọng số liên kết – Link weight) Trọng số liên kết tín hiệu vào thứ j với neural k thường kí hiệu 𝑤𝑘𝑗 Thông thường, trọng số khởi tạo cách ngẫu nhiên thời điểm khởi tạo mạng cập nhật liên tục q trình học mạng • Hàm tổng: Dùng để tính tổng tích đầu vào với trọng số liên kết • Ngưỡng (còn gọi độ lệch – bias): Ngưỡng thường đưa vào thành phần hàm truyền • Hàm truyền (còn gọi hàm kích hoạt – activation function): Hàm dùng để giới hạn phạm vi đầu neural Nó nhận đầu vào kết hàm tổng ngưỡng cho Thông thường, phạm vi đầu neural giới hạn đoạn [0, 1] [-1, 1] Các hàm truyền đa dạng, hàm tuyến tính phi tuyến Việc lựa chọn hàm truyền tùy vào tốn • Đầu ra: Là tín hiệu đầu neural, neural có tối đa đầu Mạng neural nhân tạo (Artificial Neural Network - ANN) gọi tắt mạng neural mơ hình xử lý thơng tin mô hoạt động hệ thần kinh người Nó tạo nên từ số lượng lớn neural kết nối với thông qua liên kết làm việc thể thống nhằm giải vấn đề cụ thể Một mạng neural nhận tạo cấu hình cho ứng dụng cụ thể, thơng qua q trình học từ tập mẫu huấn luyện Về chất học trình hiệu chỉnh trọng số liên kết neural Phân loại mạng neural • Mạng neural truyền thẳng lớp (hay gọi perceptron lớp) • Mạng neural truyền thẳng nhiều lớp (hay gọi perceptron nhiều lớp) • Mạng neural tự tổ chức (mạng Kohonen, mạng cạnh tranh) 1.3 Lý chọn đề tài Mạng neural với khả linh hoạt phát triển mạnh mẽ trở lại ngày ứng dụng nhiều lĩnh vực thực tế, giải vấn đề khó tưởng chừng khơng thực Đặc biệt tốn nhận dạng mẫu, lọc liệu dự báo Đã có nhiều cơng trình nghiên cứu, báo mở hướng ứng dụng mạng neural, nhiều mơ hình mạng neural đưa lại kết khả quan Bởi khả ứng dụng mạng neural vào hệ gợi ý triển vọng hoàn toàn khả thi Autoencoder mơ hình mạng neural dùng để học không giám sát (Unsupervised learning) thông qua mã (code) với ý tưởng mơ hình mạng neural có số nút mã trung gian nhỏ số nút đầu vào mơ hình học đặc tính ẩn liệu Chính điều mà Autoencoder học cách biểu diễn cho tập liệu, giúp dự đoán đầu từ đầu vào ban đầu Trong thực tế, Autoencoder ứng dụng thành công để giảm chiều liệu, tất nhiên khơng làm đặc tính quan trọng liệu Các cơng trình nghiên cứu hướng ứng dụng gần Autoencoder đem lại kết tốt Đó lý lựa chọn đề tài 1.4 Mục tiêu đề tài Nghiên cứu kỹ thuật áp dụng thành công vào hệ gợi ý, đánh giá ưu nhược điểm kỹ thuật Nghiên cứu mơ hình mạng Autoencoder biến thể nó, xem xét đánh giá chi tiết khả ứng dụng vào hệ gợi ý Đề xuất mơ hình mạng Autoencoder phù hợp cho toán thương mại điện tử nhằm đưa gợi ý có độ xác cao Tối ưu mơ hình mạng, thực so sánh đánh giá kết thực nghiệm với phương pháp khác 1.5 Phạm vi nội dung nghiên cứu Tập trung nghiên cứu thành phần hệ thống gợi ý, đặc biệt toán thương mại điện tử, hệ gợi ý hồn chỉnh Nghiên cứu mơ hình mạng neural mà cụ thể Autoencoder, xem xét khả ứng dụng thực tế lĩnh vực tốn ứng dụng thành cơng Tổng quan giải pháp cho hệ gợi ý nay, cách thức tiếp cận, thành công hạn chế phương pháp Đánh giá cách thức tiếp cận khác, hướng ứng dụng 4 Tham khảo tập liệu thực nghiệm mở cung cấp nhằm phục vụ mục đích nghiên cứu, thực nghiệm đặc biệt thương mại điện tử Xem xét công cụ thực nghiệm nay, đánh giá lựa chọn công cụ phù hợp Tập trung nghiên cứu sâu tìm hiểu mơ hình mạng Autoencoder biến thể Tiến hành ứng dụng mơ hình mạng Autoencoder vào tập thực nghiệm thu được, tối ưu đánh giá kết Phạm vi đề tài tập trung vào việc thực nghiệm kết quả, đặc biệt huấn luyện tối ưu mơ hình Kết so sánh để điều chỉnh tham số mơ hình mạng Q trình thực nghiệm tập trung giải hai vấn đề quan trọng giảm tối đa thời gian huấn luyện tăng độ xác kết 5 CHƯƠNG - THỰC TRẠNG NGHIÊN CỨU 2.1 Deep learning 2.2 Hệ thống gợi ý Các khái niệm Trong hệ thống gợi ý, thông thường người ta quan tâm tới ba thông tin người dùng (user), sản phẩm (item) đánh giá (rating) người dùng sản phẩm (xếp hạng theo mức độ tốt/xấu, quan tâm họ) Các thông tin biểu diễn thông qua ma trận sau: Hình 2.1: Ma trận trọng số biểu diễn đánh giá người dùng 𝒖 với sản phẩm 𝒊 Mỗi dòng user, cột item ô giá trị đánh giá biểu diễn user item tương ứng Các giá trị đánh giá thường nằm miền giá trị định (ví dụ năm mức độ từ tới 5) Các ô trống item chưa đánh giá Đáng lưu ý thường user đánh giá cho vài item định, có nhiều trống, ma trận kiểu gọi ma trận thưa (Sparse matrix) Ta có vài quy ước hình thức sau: - Coi 𝑼 tập hợp 𝑛 người dùng (user), |𝑼| = 𝑛 𝑢 người dùng (𝑢 ∈ 𝑼) Coi 𝑰 tập hợp 𝑚 sản phẩm (item), |𝑰| = 𝑚 𝑖 sản phẩm (𝑖 ∈ 𝑰) Coi 𝑹 tập hợp giá trị đánh giá người dùng (user) sản phẩm (item), 𝑟𝑢𝑖 ∈ 𝑹 giá trị đánh giá người dùng 𝑢 sản phẩm 𝑖 Coi 𝑫𝒕𝒓𝒂𝒊𝒏 ⊆ 𝑼 × 𝑰 × 𝑹 tập liệu huấn luyện Coi 𝑫𝒕𝒆𝒔𝒕 ⊆ 𝑼 × 𝑰 × 𝑹 tập liệu kiểm thử Các kỹ thuật Có thể phân loại thành ba nhóm phương pháp sau: • Lọc dựa nội dung (Content-based filtering) Phương pháp tập trung dựa vào đặc tính sản phẩm để suy luận độ phù hợp với người dùng Mỗi người dùng mô hình thơng qua hồ sơ Hệ thống đưa sản phẩm tới người dùng thông qua việc xem xét mơ tả thuộc tính, nội dung sản phẩm tương tự sản phẩm mà người dùng chọn khứ • Lọc cộng tác (Collaborative Filtering) Đây hướng tiếp cận thành công Phương pháp tập hợp đánh giá từ người dùng sản phẩm (xem nhiều, mua nhiều, đánh giá tốt…) sử dụng để tiến hành phân loại Hệ thống sử dụng lọc cộng tác dự đoán mối quan tâm người dùng sản phẩm dựa tính tốn độ tương tự người dùng, độ tương tự sản phẩm • Phương pháp lai (Hibrid approach) Tức kết hợp hai hay nhiều phương pháp hệ thống Mỗi phương pháp mạnh hay hạn chế riêng nên kết hợp làm giảm hạn chế thấp 2.3 Thuật toán lọc cộng tác Phát biểu toán lọc cộng tác: Cho tập hữu hạn 𝑈 = {𝑢1 , 𝑢2 , … , 𝑢𝑁 } tập gồm N người dùng, 𝐼 = {𝑖1 , 𝑖2 , … , 𝑖𝑀 } tập gồm M sản phẩm Mỗi sản phẩm 𝑖 ∈ 𝐼 hàng hóa, phim ảnh, sách báo, tài liệu hay dịch vụ dạng thông tin mà người dùng cần đến Mối quan hệ tập người dùng U tập sản phẩm I biểu diễn thông qua ma trận đánh giá 𝑅 = {𝑟𝑢𝑖 , 𝑢 = 𝑁, 𝑖 = 𝑀} Mỗi giá trị 𝑟𝑢𝑖 thể đánh giá người dùng 𝑢 ∈ 𝑈 sản phẩm 𝑖 ∈ 𝐼 Giá trị 𝑟𝑢𝑖 thu thập trực tiếp gián tiếp thông qua phản hồi từ người dùng Giá trị 𝑟𝑢𝑖 = ∅ hiểu người dùng 𝑢 chưa đánh giá chưa biết đến mặt hàng 𝑖 Nhiệm vụ lọc cộng tác dự đoán quan điểm người dùng 𝑢 mặt hàng 𝑖, sở tư vấn cho người dùng sản phẩm phù hợp Ma trận đánh giá (Rating matrix) R thông tin đầu vào với M dòng N cột, giá trị biểu miền hữu hạn 𝑟𝑢𝑖 ∈ {∅, 1, 2, … , R} Giải thuật CF thực tính tốn để đưa giá 𝛼 trị dự đoán 𝑟̂𝑢𝑖 danh sách khoản mục gợi ý cho người dùng 𝛼 có độ tương tự phù hợp Dựa ma trận đánh giá, phương pháp lọc cộng tác thực hai tác vụ: Dự đoán quan điểm người dùng thời sản phẩm mà họ chưa đánh giá, đồng thời đưa danh sách sản phẩm có đánh giá cao phân bổ cho người dùng thời Có thể phân loại thành hai cách tiếp cận chính: • Lọc cộng tác dựa vào nhớ (Memory-based, gọi phương pháp láng giềng, Neighborhood-based) Lọc cộng tác dựa nhớ tiếp cận theo hai phương pháp là: o Lọc cộng tác dựa người dùng (User-based approach) Dựa liệu khứ người dùng tương tự (similarity) o Lọc cộng tác dựa sản phẩm (Item-based approach) Dựa liệu khứ sản phẩm tương tự Cả hai cách tiếp cận gặp phải hạn chế là: Vấn đề liệu thưa (Sparse matrix), vấn đề người dùng (New user) sản phẩm (New item) • Lọc cộng tác dựa vào mơ hình (Model-based) Sử dụng tập đánh giá để xây dựng mơ hình huấn luyện Kết mơ hình huấn luyện sử dụng để sinh dự đoán quan điểm người dùng sản phẩm chưa họ đánh giá Ưu điểm phương pháp mơ hình huấn luyện có kích thước nhỏ nhiều so với ma trận đánh giá thực dự đốn nhanh Mơ hình cập nhật lại có thay đổi lớn thực lại phần xây dựng mô hình Kỹ thuật k láng giềng gần (User/Item k-nearest neighbors) Kỹ thuật k láng giềng gần dựa người dùng (hoàn toàn tương tự dựa sản phẩm) xác định độ tương tự hai người dùng thông quan việc so sánh đánh giá họ sản phẩm, sau dự đốn đánh giá sản phẩm i người dùng u, thông qua đánh giá người dùng tương tự với người dùng u Ta coi dòng hay cột vectơ Ta xác định độ tương tự Users hay Items sở tính toán cụ thể gọi khoảng cách Khoảng cách nhỏ có nghĩa đối tượng xem xét gần độ tương tự lớn Ngược lại, khoảng cách lớn độ tương tự nhỏ Một số khoảng cách tiêu biểu sau: • Khoảng cách Euclid Khoảng cách hai đối tượng hiểu khoảng cách hai điểm mặt phẳng toạ độ: 𝑛 𝑑(𝑥, 𝑦) = √∑(𝑥𝑘 − 𝑦𝑘 )2 𝑘=1 • Khoảng cách Minkowski Dữ liệu thực tế thường đặt mối quan hệ nhiều chiều, tổng quát hoá thành khoảng cách cho vectơ 𝑟 chiều 𝑛 𝑑(𝑥, 𝑦) = (∑|𝑥𝑘 − 𝑦𝑘 |𝑟 )𝑟 𝑘=1 • Khoảng cách cosin Một cách tiếp cận thơng thường khoảng cách hai vectơ cosin góc hợp thành chúng Ta có cơng thức: 𝑐𝑜𝑠𝑖𝑛(𝑥, 𝑦) = (𝑥 ∙ 𝑦) ‖𝑥‖‖𝑦‖ Các khoảng cách khác: khoảng cách Chebyshev, khoảng cách Mahattan, khoảng cách Levenshtein, khoảng cách Hamming, khoảng cách Lee, khoảng cách Jaro-Winkler, khoảng cách N-gram Độ tương tự người dùng u người dùng 𝑢′ tính theo Cosine Pearson sau: ∑𝑖∈𝐼 𝑠𝑖𝑚𝑐𝑜𝑠𝑖𝑛𝑒 (𝑢, 𝑢′ ) = 𝑢𝑢′ 𝑟𝑢𝑖 𝑟𝑢′𝑖 √∑𝑖∈𝐼𝑢𝑢′ 𝑟𝑢𝑖 √∑𝑖∈𝐼𝑢𝑢′ 𝑟𝑢′𝑖 𝑠𝑖𝑚𝑝𝑒𝑎𝑟𝑠𝑜𝑛 (𝑢, 𝑢′ ) = ∑𝑖∈𝐼 𝑢𝑢′ (𝑟𝑢𝑖 − 𝑟̅𝑢 ) (𝑟𝑢′𝑖 − 𝑟̅𝑢′ ) √∑𝑖∈𝐼𝑢𝑢′ (𝑟𝑢𝑖 − 𝑟̅𝑢 )2 √∑𝑖∈𝐼𝑢𝑢′ (𝑟𝑢′𝑖 − 𝑟̅𝑢′ )2 Trong đó: 𝑟𝑢𝑖 𝑟𝑢′𝑖 đánh giá người dùng u 𝑢′ sản phẩm 𝑖 tương ứng 𝐼𝑢𝑢′ tập sản phẩm đánh giá người dùng u 𝑢′ 𝑟̅𝑢 đánh giá trung bình tất sản phẩm người dùng u 𝑟̅𝑢′ đánh giá trung bình tất sản phẩm người dùng 𝑢′ Sau tính tốn độ tương tự người dùng, đánh giá người dùng u sản phẩm 𝑖 dự đốn theo cơng thức: ∑𝑢′ ∈𝐾𝑢 𝑠𝑖𝑚(𝑢, 𝑢′ ) (𝑟𝑢′𝑖 − 𝑟̅𝑢′ ) 𝑟̂𝑢𝑖 = 𝑟̅𝑢 + ∑𝑢′ ∈𝐾𝑢|𝑠𝑖𝑚(𝑢, 𝑢′ )| Trong đó: 𝑠𝑖𝑚(𝑢, 𝑢′ ) độ tương tự hai người dùng u 𝑢′ xác định 𝐾𝑢 số người dùng có độ lân cận gần người dùng u (k láng giềng gần u) Kỹ thuật phân rã ma trận (matrix factorization) Kỹ thuật phân rã ma trận (Matrix Factorization – MF) kỹ thuật chia ma trận lớn X thành hai ma trận có kích thước nhỏ W H, cho ta xây dựng lại X từ hai ma trận nhỏ xác tốt 𝑋 ~ 𝑊𝐻 𝑇 hình minh họa Hình 2.2: Phân rã ma trận Trong đó: 𝑊 ∈ 𝑅 |𝑈|×𝐾 ma trận mà dòng 𝑢 vectơ bao gồm K nhân tố tiềm ẩn (latent factors) mô tả người dùng 𝑢; 𝐻 ∈ 𝑅 |𝐼|×𝐾 ma trận dòng 𝑖 vectơ bao gồm K nhân tố tiềm ẩn mô tả cho sản phẩm 𝑖 (thông thường 𝐾 ≪ |𝑈| 𝐾 ≪ |𝐼|) Gọi 𝑤𝑢𝑘 ℎ𝑖𝑘 phần tử tương ứng ma trận W H, xếp hạng người dùng 𝑢 sản phẩm 𝑖 dự đốn cơng thức 𝐾 𝑟̂𝑢𝑖 = ∑ 𝑤𝑢𝑘 ℎ𝑖𝑘 = w ℎ𝑇 𝑘=1 Như vậy, vấn đề chủ chốt kỹ thuật MF làm tìm giá trị hai tham số W H Hai tham số có cách tối ưu hóa hàm mục tiêu (object function) tương tự hàm lỗi RMSE (Root Mean Squared Error) 𝑅𝑀𝑆𝐸 = √ |𝐷 𝑡𝑒𝑠𝑡 | ∑ (𝑢,𝑖,𝑟)∈𝐷 𝑡𝑒𝑠𝑡 (𝑟̂𝑢𝑖 − 𝑟𝑢𝑖 )2 Hàm mục tiêu hay sử dụng MF là: 𝐾 𝑂𝑀𝐹 = ∑ (𝑟̂𝑢𝑖 − 𝑟𝑢𝑖 )2 = 𝑢,𝑖∈𝐷 𝑡𝑟𝑎𝑖𝑛 ∑ 𝑢,𝑖∈𝐷 𝑡𝑟𝑎𝑖𝑛 (𝑟𝑢𝑖 − ∑ 𝑤𝑢𝑘 ℎ𝑖𝑘 ) 𝑘=1 • Chính tắc hố (Regularization) Để ngăn ngừa q khớp hay học vẹt (overfitting – xảy liệu huấn luyện cho kết tốt liệu thử nghiệm lại kém) người ta thay đổi hàm mục tiêu cách 10 thêm vào đại lượng gọi tắc hóa (Regularization) nhằm điều khiển độ lớn giá trị W H Hàm mục tiêu lúc trở thành: 𝐾 𝑂𝑀𝐹 = ∑ 𝑢,𝑖∈𝐷 𝑡𝑟𝑎𝑖𝑛 (𝑟𝑢𝑖 − ∑ 𝑤𝑢𝑘 ℎ𝑖𝑘 ) + 𝜆 (‖𝑊‖2𝐹 + ‖𝐻‖2𝐹 ) 𝑘=1 Trong 𝜆 hệ số tắc hóa (0 ≤ 𝜆 < 1) ‖ ‖2𝐹 chuẩn Frobenius • Chuẩn hố liệu Thông thường ma trận trọng số đánh giá người dùng sản phẩm thưa Ta cho giá trị (tức khơng có đánh giá), nhiên cách cho kết không tốt Một cách khác cho giá trị trung bình cộng tất mức đánh giá Khi nói tới việc đánh giá sản phẩm, người dùng có mức đánh giá cá nhân riêng Ngay định nghĩa rõ ràng mức đánh giá (ví dụ, = “hồn tồn khơng đồng ý”, = “khơng đồng ý”, = “trung tính”, = “đồng ý”, = “hoàn toàn đồng ý”), số người đánh giá tuỳ theo mức độ họ, tuỳ thuộc vào cảm tính Nếu người dễ tính, dù khơng hồn tồn hài lòng họ đánh giá 5, ngược lại có người khó tính, hồn toàn đồng ý họ đánh giá Vì bước chuẩn hố quan trọng 2.4 Autoencoder Autoencoder biến thể quan trọng deep neural network Bản chất, mô hình mạng neural mà huấn luyện để cố gắng chép liệu đầu vào thành đầu Bên trong, mơ hình có lớp ẩn 𝒉 mô tả cho mã sử dụng để đại diện cho đầu Mạng xem gồm hai phần: phần làm chức mã hoá 𝒉 = 𝒇(𝒙) giải mã tạo tái thiết 𝐫 = 𝒈(𝐡) Kiến trúc trình bày hình 2.4 Hình 2.3: Kiến trúc tổng quát autoencoder, ánh xạ đầu vào x tới đầu (gọi tái thiết) r thông qua mã h 11 Nếu autoencoder thành công việc học đơn giản tập hợp 𝒈(𝐟(𝐱)) = 𝒙 lúc khơng thật hữu ích Thay vào đó, autoencoder thiết kế để khơng thể học chép cách hồn hảo Thơng thường, giới hạn theo cách cho phép chúng chép thích hợp chép đầu vào giống với liệu huấn luyện Bởi mơ hình buộc phải ưu tiên khía đầu vào chép nên thường học thuộc tính hữu ích liệu Đây thường thuộc tính ẩn có giá trị Hình 2.4: Mơ hình trực quan autoencoder Autoencoder đại khái quát hoá ý tưởng mã hoá giải mã chức xác định để ánh xạ ngẫu nhiên 𝑝𝑒𝑛𝑐𝑜𝑑𝑒𝑟 (𝒉|𝒙) 𝑝𝑑𝑒𝑐𝑜𝑑𝑒𝑟 (𝒙|𝒉) Autoencoder không đầy đủ (Undercomplete Autoencoders) Sao chép đầu vào thành đầu nghe khơng hữu ích, thường khơng quan tâm đến đầu giải mã Thay vào đó, hi vọng việc huấn luyện autoencoder việc thực tác vụ chép đầu vào cho kết 𝒉 đặc tính hữu ích Một cách để có đặc tính hữu dụng từ autoencoder hạn chế 𝒉 có kích thước nhỏ 𝒙 Một autoencoder mà có kích thước mã nhỏ kích thước đầu vào gọi autoencoder không đầy đủ Học mô tả không đầy đủ buộc autoencoder phải biểu diễn đặc tính bật liệu huấn luyện Quá trình học mơ tả đơn giản tối ưu hàm mát (loss function): 𝑳 (𝒙, 𝒈(𝒇(𝒙))) (2.1) Trong 𝑳 hàm mát phạt 𝒈(𝐟(𝐱)) cho trường hợp sai khác với 𝐱, chẳng hạn lỗi bình phương trung bình (Mean squared error - MSE) 12 Autoencoder định chuẩn (Regularized Autoencoders) Các autoencoder với kích thước mã nhõ kích thước đầu vào, học tính bật phân phối liệu Chúng ta thấy autoencoder không học hữu ích mã hố giải mã cho nhiều dung lượng Một vấn đề tương tự xảy mã ẩn cho phép kích thước đầu vào trường hợp hồn chỉnh trường hợp mà mã ẩn lớn đầu vào Trong trường hợp này, autoencoder có hàm mã hố giải mã tuyến tính học chép liệu vào thành đầu mà không học thơng tin hữu ích phân bố liệu Lý tưởng nhất, cách huấn luyện với kiến trúc autoencoder muốn thành cơng chọn kích thước mã dung lượng mã hoá giải mã dựa độ phức tạp phân bố mơ hình hố Các autoencoder định chuẩn có khả làm việc Thay giới hạn dung lượng mơ hình cách giữ cho mã hố giải mã cạn kích thước mã nhỏ autoencoder định chuẩn sử dụng hàm mát để khuyến khích mơ hình có thuộc tính khác ngồi khả chép đầu vào thành đầu Những thuộc tính khác bao gồm độ thưa thớt biểu diễn, độ nhỏ biểu diễn dẫn xuất khả làm nhiễu thiếu đầu vào Một autoencoder định chuẩn phi tuyến khơng đầy đủ học hữu ích phân bố liệu chí khả mơ hình đủ lớn học tính nhận dạng nhỏ Autoencoder thưa (Sparse Autoencoders) Một autoencoder thưa đơn giản autoencoder mà tiêu chuẩn huấn luyện bao gồm hàm phạt thưa Ω(𝐡) lớp mã 𝐡, thêm vào hàm lỗi tái thiết: 𝑳 (𝒙, 𝒈(𝒇(𝒙))) + Ω(𝐡) (2.2) 𝑔(𝒉) đầu hàm giải mã, 𝒉 = 𝒇(𝒙) đầu hàm mã hoá Các autoencoder thưa thường sử dụng để học đặc tính tác vụ khác chẳng hạn phân loại Một autoencoder định chuẩn cho việc thưa phải đáp ứng tính thống kê độc đáo tập liệu mà huấn luyện khơng đơn hoạt động chức định dạng Bằng cách này, huấn luyện để thực tác vụ chép với mức phạt thưa mang lại mơ hình học tính hữu ích tác dụng phụ 13 Autoencoder giảm nhiễu (Denoising Autoencoders) Thay thêm hàm phạt Ω vào hàm chi phí, có autoencoder mà học tính hữu ích việc thay đổi đại lượng lỗi tái thiết hàm chi phí Theo truyền thống, autoencoder tối ưu dạng hàm: 𝐿 (𝒙, 𝑔(𝑓(𝒙))) (2.8) 𝐿 hàm mát phạt 𝑔(𝑓(𝒙)) cho giá trị khác từ 𝒙, chẳng hạn chuẩn 𝐿2 sai khác chúng Điều khuyến khích 𝑔 ∘ 𝑓 để học cách trở thành hàm nhận dạng chúng có khả làm điều Một autoencoder giảm nhiễu hay DAE thay cho tối ưu ̃))) 𝐿 (𝒙, 𝑔(𝑓(𝒙 (2.9) ̃ 𝒙 mà bị hỏng số nhiễu (noise) Autoencoder Trong 𝒙 phải khơi phục hỏng thay chép đầu vào chúng Autoencoder giảm nhiễu lấy phần liệu hỏng (corrupted) q trình huấn luyện để khơi phục liệu không bị biến dạng ban đầu Kỹ thuật trình bày thành cách tiếp cận cụ thể nhằm thu biểu diễn tốt Một biểu diễn tốt thu kết khả quan từ liệu đầu vào hỏng phục hồi lại liệu nguyên vẹn (clean) tương ứng Định nghĩa bao gồm giả định ngầm sau: • Biểu diễn mức sau tương đối ổn định mạnh với hỏng hóc liệu đầu vào • Cần trích xuất đặc tính hữu ích cho việc biểu diễn phân bố đầu vào 14 CHƯƠNG - THỰC NGHIỆM VÀ ĐÁNH GIÁ 3.1 Môi trường thực nghiệm Ngơn ngữ lập trình Python Cơng cụ thực nghiệm TensorFlow TensorFlow (https://www.tensorflow.org/) thư viện nhóm Google Brain Google phát triển phát hành mã nguồn mở vào tháng 11/2015 TensorFlow cho sử dụng nhiều sản phẩm thương mại Google phân loại email Gmail, nhận biết phát âm dịch tự động, nhận biết khuôn mặt Google Photo, tối ưu hố kết tìm kiếm, quảng cáo Youtube Đây công cụ học máy mạnh Cấu hình máy thực nghiệm MacBook Pro 13-inch, 2016 Cấu hình: - Bộ xử lý Intel Core i5 2GHz - Bộ nhớ RAM GB 1867 MHz-LPDDR3 - Đồ hoạ Intel Iris Graphics 540 1536 MB 3.2 Thông tin tập liệu thực nghiệm Bộ liệu thực nghiệm bao gồm: Movielens NguyenKim Bảng 3.1: Thông tin tập liệu thực nghiệm Tên tập liệu Thông tin user Thông tin item Nhãn item MovieLens-1M Có Có Khơng MovieLens-10M Khơng Có Có MovieLens-20M Khơng Có Có Có Có Có NguyenKim MovieLens tập liệu thu thập có đánh giá từ người dùng trang MovieLens (http://movielens.org) Tập liệu chia sẻ cơng khai hồn tồn miễn phí, phục vụ cơng tác học tập nghiên cứu MovieLens bao gồm thông tin phim, người dùng, đánh giá người dùng phim nhãn tương ứng 15 MovieLens tập liệu điển hình cho hệ gợi ý, tuỳ biến khác phù hợp cho việc thực nghiệm, đánh giá Với tập liệu MovieLens-1M có triệu đánh giá từ 6.040 người dùng 3.900 phim Tất file có dạng *.csv, kích thước file ratings.csv lớn với 2,4 MB có cấu trúc định dạng sau: UserID::MovieID::Rating::Timestamp Trong đó: - UserID mã người dùng, phạm vi từ tới 6.040 MovieID mã phim, phạm vi từ tới 3.952 Rating giá trị đánh giá, từ tới mức với mức tăng 0,5 (0,5 – 5,0 sao) Timestamp nhãn thời gian tính giây theo thời điểm đánh giá Mỗi người dùng có 20 đánh giá Tập Movielens-10M có 10 triệu đánh giá 95.589 nhãn (tags) từ 10.681 phim 71.567 người dùng Tập MovieLens-20M có 20 triệu đánh giá (chính xác 20.000.263) 465.564 nhãn (tags) 27278 phim 138.493 người dùng Các người dùng tham gia đánh giá từ 09/01/1995 tới 31/03/2015 NguyenKim tập liệu từ trang bán hàng điện máy Nguyễn Kim (http://nguyenkim.com) thu thập từ năm 2014 tới tháng 10/2016 Tập liệu bao gồm thông tin sản phẩm điện máy, người dùng, thông tin mua hàng đánh giá người dùng sản phẩm Đây tập liệu nhất, có q trình cơng tác, phù hợp để thực nghiệm đánh giá với yêu cầu luận văn đồng thời ứng dụng cụ thể vào cơng việc thực tiễn Thơng tin chi tiết liệu có 160.394 người dùng 15.945 sản phẩm, có 1.221 người dùng định danh tiến hành đánh giá 15 nghìn sản phẩm Số đánh giá thu 73.844, bao gồm người dùng chưa định danh (userId = 0) Mức độ đánh giá gồm năm mức từ tới (1 – sao) Ở hai tập liệu đối tượng người dùng xem xét đưa gợi ý, tuỳ vào người dùng mà có gợi ý 3.3 Mô tả phương pháp thực nghiệm Xây dựng mạng Autoencoder để thử nghiệm với hai liệu Movielens NguyenKim Mơ hình sau hồn thành giai đoạn lập trình thực huấn luyện hiệu chỉnh tham số phù hợp nhằm cho kết tốt Việc huấn luyện mạng 16 autoencoder giúp học đặc tính liệu, học cách biểu diễn đánh giá từ đưa đánh giá dự đốn người dùng Tiền xử lý liệu xây dựng ma trận đánh giá Để phục vụ cho việc xây dựng mơ hình, liệu cần xử lý để làm “tinh” Đối với Movielens cần đọc dòng (khơng làm tràn nhớ) đưa giá trị đánh giá vào ma trận, phải xác định trước kích thước (dòng cột) ma trận cần dùng, tránh lãng phí xử lý thời gian Với liệu NguyenKim trước làm điều thực thêm bước loại bỏ đánh giá người dùng chưa định danh (userId = 0) Dữ liệu sau đọc lưu trữ vào nhớ, xây dựng nên ma trận đánh giá với kích thước số người dùng với sản phẩm có thực đánh giá Ma trận đầu vào cho trình huấn luyện # Read data from file def readDataNK(): rating = pd.read_csv('rating.csv', usecols=['rating_value', 'post_id', 'thread_id']) info_product = pd.read_csv('discussion.csv', usecols=['thread_id', 'object_id', 'object_type']) info_user = pd.read_csv('discussion_posts.csv', usecols=['post_id', 'thread_id', 'user_id']) return rating, info_product, info_user # Build a weight matrix by rating values def buildMatrixNK(): # dataframe with need fields rating, info_product, info_user = readDataNK() # get number user user_ids = set(info_user.loc[info_user['user_id'] > 0].iloc[:, 2]) list_user = sorted(list(user_ids)) us = [list_user[i] for i in range(len(user_ids))] # get number product product_ids = set(info_product.loc[(info_product['object_type'] == 'P')].iloc[:, 1]) list_product = sorted(list(product_ids)) product = [list_product[i] for i in range(len(product_ids))] # matrix rating rows, columns = len(product), len(us) # Initialize matrix matrix_ratings = [[0 for x in range(columns)] for y in range(rows)] # Count building time start_time = time.time() for index, row in rating.iterrows(): # Find rating user user_id = user_selected_rows = info_user.loc[(info_user['post_id'] == row['post_id']) & (info_user['thread_id'] == row['thread_id'])] if not user_selected_rows.empty: user_id = user_selected_rows.iloc[0]['user_id'] # Find rating product product_id = product_selected_rows = info_product.loc[(info_product['thread_id'] == row['thread_id']) & (info_product['object_type'] == 'P')] if not product_selected_rows.empty: product_id = product_selected_rows.iloc[0]['object_id'] # feed rating into matrix if (user_id > 0) & (product_id > 0): 17 matrix_ratings[product.index(product_id)][us.index(user_id)] = row['rating_value'] print('Build matrix rating in %s seconds.' % (time.time() - start_time)) # Save matrix rating into file np.savetxt("matrix_nk.csv", matrix_ratings, delimiter=",") return matrix_ratings, rows Xây dựng mơ hình Sau xây dựng xong ma trận trọng số, ta tiến hành xây dựng mơ hình huấn luyện Cần lưu ý mơ hình autoencoder muốn học cách biểu diễn liệu số mã lớp ẩn phải nhỏ đầu vào Một mơ hình autoencoder bao gồm lớp đầu vào, lớp ẩn lớp đầu weights = { 'encoder_h1': tf.Variable(tf.random_normal([PARAM.n_input, PARAM.n_hidden_1])), 'encoder_h2': tf.Variable(tf.random_normal([PARAM.n_hidden_1, PARAM.n_hidden_2])), 'decoder_h1': tf.Variable(tf.random_normal([PARAM.n_hidden_2, PARAM.n_hidden_1])), 'decoder_h2': tf.Variable(tf.random_normal([PARAM.n_hidden_1, PARAM.n_input])), } biases = { 'encoder_b1': tf.Variable(tf.random_normal([PARAM.n_hidden_1])), 'encoder_b2': tf.Variable(tf.random_normal([PARAM.n_hidden_2])), 'decoder_b1': tf.Variable(tf.random_normal([PARAM.n_hidden_1])), 'decoder_b2': tf.Variable(tf.random_normal([PARAM.n_input])) } X = tf.placeholder("float", [None, PARAM.n_input]) # Building the encoder def encoder(x): # Encoder Hidden layer with sigmoid activation #1 layer_1 = tf.nn.sigmoid(tf.add(tf.matmul(x, weights['encoder_h1']), biases['encoder_b1'])) # Encoder Hidden layer with sigmoid activation #2 layer_2 = tf.nn.sigmoid(tf.add(tf.matmul(layer_1, weights['encoder_h2']), biases['encoder_b2'])) return layer_2 # Building the decoder def decoder(x): # Decoder Hidden layer with sigmoid activation #1 layer_1 = tf.nn.sigmoid(tf.add(tf.matmul(x, weights['decoder_h1']), biases['decoder_b1'])) # Decoder Hidden layer with sigmoid activation #2 layer_2 = tf.nn.sigmoid(tf.add(tf.matmul(layer_1, weights['decoder_h2']), biases['decoder_b2'])) return layer_2 # Construct model encoder_op = encoder(X) decoder_op = decoder(encoder_op) # Prediction y_pred = decoder_op # Targets are the train data (rating is a part of train data (very inc NOT use label)) y_true = X # Original loss function loss = tf.reduce_mean(tf.pow(y_true - y_pred, 2)) # Optimizer, minimize the squared error optimizer = tf.train.RMSPropOptimizer(PARAM.learning_rate).minimize(loss) Khai báo tham số Trong mạng neural nói chung autoencoder nói riêng khai báo tham số mạng quan trọng Các tham số ảnh hưởng trực tiếp tới thời gian huấn luyện, 18 độ xác kết sau huấn luyện mạng Việc tìm tham số tối ưu điều khó khơng muốn nói khơng thể, ta có cách thử sai để hiệu chỉnh dần q trình huấn luyện mà thơi Có thể tham khảo phạm vi loại tham số để giảm thiểu việc thử sai nhiều lần, làm tốn thời gian cơng sức ''' Cấu hình tham số (Movielen Parameters) ''' # Tốc độ học learning_rate = 0.01 # Số lần vào mạng training_epochs = 50 # Network Parameters # Số mã lớp ẩn n_hidden_1 = 50 # Số mã lớp ẩn n_hidden_2 = 100 # Số mã lớp ẩn n_hidden_3 = 200 # Số đầu vào huấn luyện mạng n_input = 9066 # Tỉ lệ test (Cross-validation) test_size = 0.3 # Số gói lần huấn luyện total_batch = 20 # Giá trị tắc (Coefficient Regularization) beta = 0.01 • Tốc độ học (Learning rate) Đây đại lượng quan trọng định tốc độ hội tụ thuật toán Nếu lựa chọn giá trị nhỏ tốc độ hội tụ chậm Điều làm cho số bước lặp trở nên lớn nhiều thuật tốn dừng lại trước tới đích mặc đù đích gần Trong thực tế tính tốn trở nên phức tạp learning rate thấp ảnh hưởng tới tốc độ thuật toán nhiều, chí khơng tới đích Ngược lại learning rate lớn có khả thuật tốn khơng hội tụ bước nhảy q lớn, khiến quanh quẩn đích Lựa chọn giá trị phù hợp đảm bảo thuật toán hội tụ tốc độ tính tốn nhanh Giá trị tham khảo từ khoảng 0.01 tới 0.1 tuỳ thuộc vào toán • Số lần vào mạng (training epochs) Thuật ngữ epoch dùng để mơ tả q trình tất mẫu đầu vào tập huấn luyện đưa vào để huấn luyện mạng Số lượng epoch xác định số lần mạng huấn luyện Giá trị định thời gian huấn luyện mạng Một giá trị phù hợp làm mơ hình mạng vừa đủ để học biểu diễn liệu đồng thời đảm bảo thời gian huấn luyện không lâu Giá trị thông thường từ vài chục tới vài trăm tuỳ thuộc vào loại mạng • Số lớp ẩn (hidden layer) 19 Lớp ẩn đóng vai trò nhận liệu từ lớp đầu vào chuyển đổi chúng tới lớp tiếp sau để xử lý Bao nhêu lớp ẩn lớp ẩn có mã để biểu diễn đặc tính thật câu hỏi khó Thơng thường số lớp ẩn khơng vượt q 10 số lượng mã tuỳ độ phức tạp liệu (ở số chiều ma trận đánh giá) • Cross-validation (đánh giá chéo) Đây phương pháp kiểm tra độ xác mơ hình học máy dựa tập liệu học cho trước Thay dùng phần liệu làm tập liệu học crossvalidation dùng tồn liệu để dạy cho máy Toàn liệu chia thành tập nhỏ Phần lớn dùng để học, phần lại dùng để kiểm tra Đây cách chống học vẹt (Quá khớp - Overfitting) hiệu Trong phạm vi luận văn tập liệu chia thành tỉ lệ 7:3, 8:2, 9:1 để thực nghiệm • Regurization (Đại lượng điều chỉnh) Đây đại lượng điều chỉnh đưa thêm vào hàm chi phí (đã trình bày chương 2) Khi tối ưu hàm này, ta không cần “tối ưu quá”, mơ hình bị overfit vào liệu huấn luyện không đủ tổng quát để mơ hình hố liệu Regurization cách để cân tượng Trong phạm vi ta xem xét L1/L2 regularization Thơng thường L1 regularization dùng để chuẩn tắc trường hợp liệu thưa, L2 ngăn q khít q trình học Huấn luyện mơ hình # Initializing the variables init = tf.global_variables_initializer() # Launch the graph with tf.Session() as sess: sess.run(init) # Init data X_data, rows = buildMatrixNK () # Split random dataset X_train, X_test = train_test_split(X_data, test_size=PARAM.test_size) RANGE = int(round(len(X_train)/PARAM.total_batch)) start_time = timeit.default_timer() # Train cycle for epoch in range(PARAM.training_epochs): # Loop over all batches for i in range(PARAM.total_batch): # Run optimization op and get loss with range _, c = sess.run([optimizer, loss], feed_dict={X: X_train[i * RANGE: (i + 1) * RANGE]}) # Display logs per epoch step print("Epoch:", '%04d' % (epoch + 1), "cost=", "{:.9f}".format(c)) print("Optimization Finished!") 20 Dự đốn kết tính tốn tỉ lệ lỗi Đại lượng sử dụng để đo tỉ lệ lỗi mơ hình học máy giá trị bình thường trung bình lỗi lấy (Root Mean Squared Error), gọi tắt RMSE Giá trị sử dụng để đánh giá độ khớp mơ hình so với liệu huấn luyện Được tính bậc hai giá trị tuyệt đối hệ số tương quan giá trị thực giá trị dự đoán: 𝑅𝑀𝑆𝐸 = √ ∑𝑛𝑢=1(𝑟̂𝑢 − 𝑟𝑢 )2 𝑛 # Applying encode and decode model on test data encode_decode = sess.run(y_pred, feed_dict={X: X_test}) # Calculate RMSE rmse = sess.run(tf.sqrt(tf.reduce_mean(tf.square(X_test - encode_decode)))) # Writing to save file np.savetxt("predict.csv", encode_decode, delimiter=",") 3.4 Kết thực nghiệm MovieLens Thời gian chạy thực nghiệm Movielens-1M, Movielens-10M, Movielens-20M 10 phút, 30 • • • • • Cross-validation Dựa dòng (Row-based) dựa cột (Column-based) Điều chỉnh tốc độ học (learning rate) Điều chỉnh số lần vào mạng (training epoch) Điều chỉnh số lớp ẩn (hidden layer) Hiện tại, thông số cho kết mà đạt tỉ lệ lỗi thấp với RMSE = 0,424252998775 (trên tập Movielens-1M) là: learning_rate = 0.01 training_epochs = 50 n_hidden_1 = 10 n_hidden_2 = 20 n_hidden_3 = 30 n_hidden_4 = 40 n_input = 9066 test_size = 0.1 total_batch = 20 beta = 0.01 NguyenKim Thời gian chạy thực nghiệm tập liệu NguyenKim khoảng 50 phút Bộ thông số tốt tập liệu NguyenKim là: learning_rate = 0.01 training_epochs = 50 n_hidden_1 = 10 n_hidden_2 = 20 n_hidden_3 = 30 21 n_hidden_4 = 40 n_input = 1221 test_size = 0.1 total_batch = 20 beta = 0.01 22 KẾT LUẬN VÀ KIẾN NGHỊ Những đóng góp luận văn Luận văn nghiên cứu mơ hình mạng neural, ứng dụng Autoencoder vào hệ gợi ý toán thương mại điện tử, mà cụ thể cho kết hai tập liệu thử nghiệm Movielens NguyenKim Mơ hình Autoencoder xây dựng qua trình cải tiến hiệu chỉnh cho kết khả quan, hồn tồn áp dụng vào hệ thống thực tế Đồng thời, luận văn cách thức để làm giảm thời gian huấn luyến liệu, hướng tối ưu tham số để giảm tỉ lệ lỗi Đề tài mở hướng tiếp cận ứng dụng mơ hình mạng neural tốn dự đoán nay, đặc biệt lĩnh vực thương mại điện tử Khơng dừng lại mơ hình Autoencoder mà nhiều mơ hình khác Thêm nữa, mơ hình kết hợp với phương pháp áp dụng thành công trước đó, mà cụ thể hệ thống gợi ý lọc cộng tác, dự đoán xác Dựa nghiên cứu sở lý thuyết công nghệ liên quan, đề tài bám sát nội dung đề cương đề thu kết đáp ứng yêu cầu Từ kết bước đầu này, luận văn tiếp tục có hướng phát triển tốt hơn, tập liệu lớn phạm vi rộng hơn, kết đánh giá để cải tiến nhằm ngày xác Những vấn đề tồn Thời gian huấn luyện cho kết lâu Kết huấn luyện bị ảnh hưởng nhiều yếu tố: • Tập liệu NguyenKim chưa đủ lớn, đánh giá dẫn đến xây dựng ma trận đánh giá thưa • Do mơ hình mạng Autoencoder có nhiều tham số nên việc tối ưu chưa thể thử hết tất trường hợp • Cơng nghệ mơ hình nên thử nghiệm đơi chút khó khăn Hướng phát triển luận văn Tiếp tục thử nghiệm cải tiến để giảm thời gian huấn luyện có kết tốt hơn, thu thập tập liệu lớn đặc biệt có giải pháp cho vấn đề người dùng liệu thưa 23 Kết hợp với lọc cộng tác phương pháp lai nhằm tận dụng ưu điểm hai phương pháp Nghiên cứu đánh giá để triển khai thực tế, vừa đảm bảo gợi ý thời gian thực, vừa cập nhật lại mơ hình mạng có thêm đánh giá Ngồi ra, sau mơ hình Autoencoder ứng dụng thành công, tác giả xem xét để áp dụng mơ hình mạng neural khác Từ có cách tiếp cận deep learning nhiều lĩnh vực nói chung thương mại điện tử nói riêng ... thành phần hệ thống gợi ý, đặc biệt toán thương mại điện tử, hệ gợi ý hồn chỉnh Nghiên cứu mơ hình mạng neural mà cụ thể Autoencoder, xem xét khả ứng dụng thực tế lĩnh vực tốn ứng dụng thành... thuật áp dụng thành công vào hệ gợi ý, đánh giá ưu nhược điểm kỹ thuật Nghiên cứu mơ hình mạng Autoencoder biến thể nó, xem xét đánh giá chi tiết khả ứng dụng vào hệ gợi ý Đề xuất mơ hình mạng Autoencoder... Tổng quan mạng neural Cấu trúc mạng neural Mỗi neural nhân tạo đơn vị xử lý thông tin, mơ theo neural sinh học não người Neural thành phần mạng neural Cấu trúc neural mơ tả hình Hình 1.1: Neural