Biểu diễn tri thức và suy luận (Knowledge representation and reasoning, KRR, KR&R, KR²) là lĩnh vực của trí tuệ nhân tạo (AI) tập trung vào việc biểu diễn thông tin về thế giới dưới dạng mà hệ thống máy tính có thể sử dụng để giải quyết các nhiệm vụ phức tạp như chẩn đoán y khoa hoặc đối thoại bằng ngôn ngữ tự nhiên. Biểu diễn tri thức kết hợp các phát hiện từ tâm lý học[1] về cách con người giải quyết vấn đề và biểu diễn tri thức, nhằm thiết kế các phương thức giúp cho việc xây dựng các hệ thống phức tạp trở nên dễ dàng hơn. Biểu diễn tri thức và suy luận cũng kết hợp các phát hiện từ logic để tự động hóa các loại suy luận khác nhau.
Các phương thức biểu diễn tri thức bao gồm mạng ngữ nghĩa, khung, luật lệ, chương trình logic và bản thể học. Ví dụ về các động cơ suy luận tự động bao gồm các động cơ suy luận, hệ thống chứng minh định lý, các trình sinh mô hình và các bộ phân loại.
Một phần của loạt bài về |
Trí tuệ nhân tạo |
---|
Hướng tiếp cận |
Công nghệ |
Thuật ngữ |
Công việc đầu tiên trong lĩnh vực biểu diễn tri thức trên máy tính tập trung vào các hệ thống giải quyết vấn đề chung, như hệ thống General Problem Solver (GPS) được phát triển bởi Allen Newell và Herbert A. Simon vào năm 1959, và hệ thống Advice Taker được đề xuất bởi John McCarthy cũng vào năm 1959. GPS sử dụng các cấu trúc dữ liệu để lập kế hoạch và phân rã vấn đề. Hệ thống này bắt đầu với một mục tiêu và sau đó phân rã mục tiêu đó thành các tiểu mục tiêu, sau đó xây dựng các chiến lược để đạt được từng tiểu mục tiêu. Ngược lại, hệ thống Advice Taker đề xuất sử dụng tính toán vị từ để biểu diễn suy luận thông thường.
Nhiều phương pháp biểu diễn tri thức trong AI thời kỳ đầu sử dụng các biểu diễn đồ thị và mạng ngữ nghĩa, tương tự như các đồ thị tri thức ngày nay. Trong các phương pháp này, giải quyết vấn đề được thực hiện thông qua duyệt đồ thị[2] hoặc tìm đường, như trong thuật toán tìm kiếm A*. Ứng dụng phổ biến bao gồm lập kế hoạch cho robot và chơi trò chơi.
Các nhà nghiên cứu khác đã tập trung vào phát triển các hệ thống chứng minh định lý tự động cho logic bậc nhất, với mục tiêu sử dụng logic toán học để hình thức hóa toán học và tự động hóa việc chứng minh các định lý toán học. Một bước tiến quan trọng trong hướng đi này là sự phát triển của phương pháp giải của John Alan Robinson.
Trong khi đó, John McCarthy và Pat Hayes đã phát triển tình huống tính toán như một hình thức logic để biểu diễn tri thức thông thường về các quy luật nhân quả. Cordell Green đã cho thấy cách lập kế hoạch cho robot bằng cách áp dụng phương pháp giải vào tình huống tính toán. Ông cũng cho thấy cách sử dụng phương pháp giải để trả lời câu hỏi và lập trình tự động.[3]
Ngược lại, các nhà nghiên cứu tại MIT đã bác bỏ phương pháp chứng minh đồng nhất của phương pháp giải và ủng hộ việc tích hợp quy trình vào tri thức.[4] Xung đột giữa việc sử dụng biểu diễn logic và biểu diễn quy trình đã được giải quyết vào đầu những năm 1970 với sự phát triển của lập trình logic và Prolog, sử dụng phương pháp giải SLD để xử lý các điều khoản Horn như các quy trình giảm mục tiêu.
Sự phát triển ban đầu của lập trình logic chủ yếu diễn ra tại châu Âu. Tại Bắc Mỹ, các nhà nghiên cứu AI như Ed Feigenbaum và Frederick Hayes-Roth đã ủng hộ việc biểu diễn tri thức theo miền cụ thể hơn là suy luận đa mục tiêu.[5]
Những nỗ lực này đã dẫn đến cuộc cách mạng nhận thức trong tâm lý học và giai đoạn của AI tập trung vào biểu diễn tri thức, kết quả là sự ra đời của hệ thống chuyên gia trong thập niên 1970 và 1980, hệ sinh, ngôn ngữ khung, v.v. Thay vì các bộ giải quyết vấn đề chung, AI đã thay đổi trọng tâm sang các hệ thống chuyên gia có thể đạt được năng lực của con người trong một nhiệm vụ cụ thể, chẳng hạn như chẩn đoán y khoa.[6]
Hệ chuyên gia đã cung cấp cho chúng ta thuật ngữ vẫn được sử dụng ngày nay, nơi các hệ thống AI được chia thành một cơ sở tri thức, bao gồm các sự thật và quy tắc về một lĩnh vực vấn đề, và một bộ suy luận, áp dụng tri thức trong cơ sở tri thức để trả lời câu hỏi và giải quyết các vấn đề trong lĩnh vực đó. Trong các hệ thống ban đầu này, các sự thật trong cơ sở tri thức thường có cấu trúc khá đơn giản, về cơ bản là những khẳng định về giá trị của các biến được sử dụng bởi các quy tắc.[7]
Trong khi đó, Marvin Minsky đã phát triển khái niệm khung (frame) vào giữa những năm 1970.[8] Một khung tương tự như một lớp đối tượng: Đó là mô tả trừu tượng của một danh mục mô tả các sự vật trên thế giới, các vấn đề và các giải pháp tiềm năng. Khung ban đầu được sử dụng trong các hệ thống hướng tới tương tác của con người, ví dụ như hiểu ngôn ngữ tự nhiên và các bối cảnh xã hội trong đó các mong đợi mặc định như việc gọi món ăn trong nhà hàng thu hẹp không gian tìm kiếm và cho phép hệ thống chọn phản hồi phù hợp cho các tình huống động.
Không lâu sau đó, các cộng đồng nghiên cứu về khung và quy tắc nhận ra rằng có sự tương tác giữa các phương pháp tiếp cận của họ. Khung rất tốt trong việc biểu diễn thế giới thực, được mô tả như các lớp, lớp con, các khe (giá trị dữ liệu) với các ràng buộc khác nhau về các giá trị có thể có. Quy tắc rất tốt trong việc biểu diễn và sử dụng logic phức tạp như quy trình chẩn đoán y khoa. Các hệ thống tích hợp được phát triển kết hợp khung và quy tắc. Một trong những hệ thống mạnh mẽ và nổi tiếng nhất là Môi trường Kỹ thuật Tri thức (Knowledge Engineering Environment - KEE) của Intellicorp vào năm 1983. KEE có một bộ quy tắc đầy đủ với suy luận tiến và lùi. Nó cũng có một cơ sở tri thức dựa trên khung hoàn chỉnh với các cơ chế kích hoạt, khe (giá trị dữ liệu), kế thừa, và truyền thông điệp. Mặc dù truyền thông điệp có nguồn gốc từ cộng đồng lập trình hướng đối tượng thay vì AI, nó đã nhanh chóng được các nhà nghiên cứu AI đón nhận trong các môi trường như KEE và trong các hệ điều hành cho các máy Lisp từ Symbolics, Xerox, và Texas Instruments.[9]
Sự tích hợp giữa khung, quy tắc và lập trình hướng đối tượng đã được thúc đẩy đáng kể bởi các hoạt động thương mại như KEE và Symbolics được tách ra từ các dự án nghiên cứu khác nhau. Cùng lúc đó, có một nhánh nghiên cứu khác ít tập trung vào thương mại hơn và được thúc đẩy bởi logic toán học và chứng minh định lý tự động.[cần dẫn nguồn] Một trong những ngôn ngữ có ảnh hưởng nhất trong nghiên cứu này là ngôn ngữ KL-ONE vào giữa những năm 80. KL-ONE là một ngôn ngữ khung có ngữ nghĩa chặt chẽ, với các định nghĩa chính thức cho các khái niệm như mối quan hệ Is-A.[10] KL-ONE và các ngôn ngữ chịu ảnh hưởng bởi nó như Loom có một bộ suy luận tự động dựa trên logic chính thức thay vì dựa trên các quy tắc IF-THEN. Bộ suy luận này được gọi là trình phân loại (classifier). Trình phân loại có thể phân tích một tập hợp các tuyên bố và suy ra các khẳng định mới, ví dụ như định nghĩa lại một lớp là lớp con hoặc lớp cha của một lớp khác mà chưa được chỉ định rõ ràng. Bằng cách này, trình phân loại có thể hoạt động như một bộ suy luận, suy diễn ra các sự thật mới từ cơ sở tri thức hiện có. Trình phân loại cũng có thể cung cấp kiểm tra tính nhất quán trên một cơ sở tri thức (trong trường hợp các ngôn ngữ KL-ONE, cơ sở tri thức này cũng được gọi là bản thể học).[11]
Một lĩnh vực nghiên cứu biểu diễn tri thức khác là vấn đề suy luận thường thức. Một trong những nhận thức đầu tiên khi cố gắng tạo phần mềm có thể hoạt động với ngôn ngữ tự nhiên của con người là con người thường xuyên dựa vào một nền tảng tri thức rộng lớn về thế giới thực mà chúng ta coi là hiển nhiên nhưng lại không rõ ràng đối với một tác nhân nhân tạo. Các nguyên tắc cơ bản về vật lý thường thức, nhân quả, ý định, v.v. Một ví dụ là vấn đề khung, rằng trong logic điều khiển theo sự kiện cần có các tiên đề nêu rõ các sự vật giữ nguyên vị trí từ thời điểm này đến thời điểm khác trừ khi chúng bị di chuyển bởi một lực bên ngoài. Để tạo ra một tác nhân trí tuệ nhân tạo thực sự có thể giao tiếp với con người bằng ngôn ngữ tự nhiên và có thể xử lý các câu hỏi và tuyên bố cơ bản về thế giới, điều quan trọng là phải biểu diễn loại tri thức này.[12] Ngoài phép tính tình huống của McCarthy và Hayes, một trong những chương trình tham vọng nhất giải quyết vấn đề này là dự án Cyc của Doug Lenat. Cyc đã thiết lập ngôn ngữ khung của riêng mình và có một số lượng lớn các nhà phân tích ghi chép lại các lĩnh vực suy luận thường thức khác nhau trong ngôn ngữ đó. Tri thức được ghi lại trong Cyc bao gồm các mô hình thường thức về thời gian, nhân quả, vật lý, ý định, và nhiều lĩnh vực khác.[13]
Điểm xuất phát của biểu diễn tri thức là giả thuyết biểu diễn tri thức được Brian C. Smith chính thức hóa lần đầu vào năm 1985:[14]
Mọi quá trình thông minh được thể hiện bằng máy móc đều bao gồm các thành phần cấu trúc mà a) chúng ta với tư cách là người quan sát bên ngoài tự nhiên cho rằng chúng đại diện cho một biểu thức dưới dạng mệnh đề về tri thức mà toàn bộ quá trình thể hiện, và b) không phụ thuộc vào sự gán ghép ngữ nghĩa bên ngoài đó, những thành phần này đóng một vai trò hình thức nhưng có tính chất nhân quả và thiết yếu trong việc tạo ra hành vi thể hiện tri thức đó.
Một trong những lĩnh vực nghiên cứu sôi động nhất về biểu diễn tri thức là mạng ngữ nghĩa.[cần dẫn nguồn] Mạng ngữ nghĩa hướng đến việc bổ sung một lớp ngữ nghĩa (ý nghĩa) trên nền tảng của Internet hiện tại. Thay vì lập chỉ mục các trang web và nội dung bằng từ khóa, mạng ngữ nghĩa tạo ra các bản thể học lớn về các khái niệm. Tìm kiếm một khái niệm sẽ hiệu quả hơn so với các tìm kiếm văn bản truyền thống. Ngôn ngữ khung và phân loại tự động đóng vai trò quan trọng trong tầm nhìn cho tương lai của mạng ngữ nghĩa. Phân loại tự động cung cấp cho các nhà phát triển công nghệ một cách để sắp xếp trật tự trên một mạng lưới tri thức luôn thay đổi. Việc xác định các bản thể học tĩnh và không có khả năng phát triển ngay lập tức sẽ hạn chế rất nhiều đối với các hệ thống trên Internet. Công nghệ phân loại cung cấp khả năng xử lý môi trường động của Internet.
Những dự án gần đây được tài trợ chủ yếu bởi Cơ quan Chỉ đạo các Dự án Nghiên cứu Quốc phòng Tiên tiến (DARPA) đã tích hợp ngôn ngữ khung và các bộ phân loại với ngôn ngữ đánh dấu dựa trên XML. Resource Description Framework (RDF) cung cấp khả năng cơ bản để định nghĩa các lớp, các lớp con và thuộc tính của đối tượng. Ngôn ngữ Web Ontology (OWL) cung cấp các mức ngữ nghĩa bổ sung và cho phép tích hợp với các công cụ phân loại.[15][16]
Biểu diễn tri thức là một lĩnh vực của trí tuệ nhân tạo (AI) tập trung vào việc thiết kế các biểu diễn máy tính để nắm bắt thông tin về thế giới nhằm giải quyết các vấn đề phức tạp.
Lý do cho biểu diễn tri thức là vì mã lập trình thủ tục truyền thống không phải là hình thức tốt nhất để giải quyết các vấn đề phức tạp. Biểu diễn tri thức giúp phần mềm phức tạp dễ dàng định nghĩa và bảo trì hơn so với mã thủ tục, và có thể được sử dụng trong các hệ chuyên gia.
Ví dụ, khi nói chuyện với các chuyên gia về các quy tắc kinh doanh thay vì mã, nó giúp thu hẹp khoảng cách ngữ nghĩa giữa người dùng và nhà phát triển, làm cho việc phát triển các hệ thống phức tạp trở nên thực tế hơn.
Biểu diễn tri thức gắn liền với suy luận tự động vì một trong những mục đích chính của việc biểu diễn tri thức là có thể suy luận về tri thức đó, đưa ra suy luận, xác nhận tri thức mới, v.v. Hầu hết các ngôn ngữ biểu diễn tri thức đều có một công cụ suy luận hoặc máy suy luận trong hệ thống.[17]
Một vấn đề quan trọng trong thiết kế các hình thức biểu diễn tri thức là sự cân bằng giữa khả năng biểu đạt và tính khả thi.[18] Logic bậc nhất (FOL), với khả năng biểu đạt mạnh mẽ và khả năng hình thức hóa nhiều phần của toán học, được xem là tiêu chuẩn để so sánh khả năng biểu đạt của các ngôn ngữ biểu diễn tri thức.
Tuy nhiên, FOL có hai nhược điểm lớn là khó sử dụng và hiệu quả khi triển khai. Do tính biểu đạt mạnh, FOL cho phép nhiều cách diễn đạt cùng một thông tin, điều này khiến người dùng khó có thể hình thức hóa hoặc hiểu tri thức được biểu diễn bằng cách phức tạp, mang tính toán học. Ngoài ra, các thủ tục chứng minh phức tạp cũng khiến người dùng khó hiểu được các chứng minh và giải thích, và việc triển khai có thể không hiệu quả. Vì vậy, FOL không bị giới hạn thường tạo ra sự ngại ngần cho các nhà phát triển phần mềm.
Một phát hiện quan trọng trong nghiên cứu AI vào những năm 1970 là các ngôn ngữ không có đầy đủ khả năng biểu đạt của FOL vẫn có thể cung cấp khả năng biểu đạt tương đối gần với FOL, nhưng lại dễ dàng hơn cho cả người phát triển và máy tính để hiểu. Nhiều hình thức biểu diễn tri thức AI ban đầu, từ cơ sở dữ liệu đến mạng ngữ nghĩa cho đến các hệ thống sản xuất, có thể được xem như là các quyết định thiết kế khác nhau về cách cân bằng giữa khả năng biểu đạt với tính tự nhiên của biểu thức và hiệu quả.[19] Sự cân bằng này là động lực chính cho sự phát triển các quy tắc IF-THEN trong các hệ thống chuyên gia dựa trên quy tắc.
Một động lực tương tự cũng là lý do phát triển của lập trình logic (LP) và ngôn ngữ lập trình logic Prolog. Các chương trình logic có cú pháp dựa trên quy tắc, dễ gây nhầm lẫn với cú pháp IF-THEN của hệ sinh (khoa học máy tính). Tuy nhiên, các chương trình logic có ngữ nghĩa logic rõ ràng, trong khi các hệ thống sản xuất thì không.
Hình thức lập trình logic sớm nhất dựa trên tập con Horn của logic bậc nhất. Nhưng các mở rộng sau đó của LP bao gồm quy tắc suy luận phủ định như thất bại (negation as failure), biến LP thành một logic không đơn điệu cho lập luận mặc định. Ngữ nghĩa mở rộng này của LP là một biến thể của ngữ nghĩa tiêu chuẩn của các mệnh đề Horn và FOL, và là một dạng ngữ nghĩa cơ sở dữ liệu, [20] bao gồm giả định tên duy nhất và một dạng giả định thế giới đóng. Các giả định này khó hơn để phát biểu và suy luận một cách rõ ràng bằng ngữ nghĩa tiêu chuẩn của FOL.
Trong một bài báo quan trọng năm 1993 về chủ đề này, Randall Davis của MIT đã trình bày năm vai trò khác nhau để phân tích một khung biểu diễn tri thức:[21]
Biểu diễn tri thức và suy luận là một công nghệ quan trọng hỗ trợ cho Mạng ngữ nghĩa. Các ngôn ngữ dựa trên mô hình Khung với phân loại tự động cung cấp một lớp ngữ nghĩa trên nền Internet hiện tại. Thay vì tìm kiếm qua các chuỗi văn bản như cách thông thường ngày nay, sẽ có thể định nghĩa các truy vấn logic và tìm các trang phù hợp với những truy vấn đó.[15] Thành phần suy luận tự động trong các hệ thống này là một động cơ được gọi là bộ phân loại. Các bộ phân loại tập trung vào các mối quan hệ phân cấp trong một cơ sở tri thức thay vì các quy tắc. Một bộ phân loại có thể suy ra các lớp mới và thay đổi động các bản thể học khi có thông tin mới được cung cấp. Khả năng này rất lý tưởng cho không gian thông tin luôn thay đổi và phát triển như Internet.[22]
Mạng ngữ nghĩa tích hợp các khái niệm từ biểu diễn tri thức và suy luận với các ngôn ngữ đánh dấu dựa trên XML. RDF cung cấp các khả năng cơ bản để định nghĩa các đối tượng dựa trên tri thức trên Internet với các tính năng cơ bản như quan hệ Is-A và các thuộc tính đối tượng. Ngôn ngữ Web Ontology (OWL) bổ sung thêm các ngữ nghĩa và tích hợp với các bộ phân loại tự động.[16]
Năm 1985, Ron Brachman đã phân loại các vấn đề cốt lõi cho biểu diễn tri thức như sau:[23]
Trong những năm đầu của hệ thống dựa trên tri thức, các cơ sở tri thức còn khá nhỏ. Những cơ sở tri thức được thiết kế để giải quyết các vấn đề thực tế thay vì chỉ chứng minh khái niệm cần phải tập trung vào các vấn đề được định nghĩa rõ ràng. Ví dụ, không chỉ là chẩn đoán y khoa nói chung, mà là chẩn đoán y khoa về các loại bệnh cụ thể.
Khi công nghệ dựa trên tri thức mở rộng, nhu cầu về cơ sở tri thức lớn hơn và cơ sở tri thức mô-đun có thể giao tiếp và tích hợp với nhau trở nên rõ ràng. Điều này đã dẫn đến sự phát triển của lĩnh vực kỹ thuật bản thể học, thiết kế và xây dựng các cơ sở tri thức lớn có thể được sử dụng bởi nhiều dự án khác nhau. Một trong những dự án nghiên cứu hàng đầu trong lĩnh vực này là dự án Cyc. Cyc là một nỗ lực nhằm xây dựng một cơ sở tri thức bách khoa khổng lồ không chỉ chứa kiến thức chuyên gia mà còn cả tri thức thông thường. Trong quá trình thiết kế một tác tử trí tuệ nhân tạo, người ta nhận ra rằng việc biểu diễn tri thức thông thường - tri thức mà con người thường coi là điều hiển nhiên - là cần thiết để tạo ra một AI có thể tương tác với con người bằng ngôn ngữ tự nhiên. Cyc được xây dựng để giải quyết vấn đề này. Ngôn ngữ mà họ định nghĩa được gọi là CycL.
Sau CycL, một số ngôn ngữ bản thể học đã được phát triển. Phần lớn chúng là các ngôn ngữ khai báo và hoặc là các ngôn ngữ khung, hoặc dựa trên logic bậc nhất. Tính mô-đun — khả năng định nghĩa ranh giới xung quanh các lĩnh vực và không gian vấn đề cụ thể — là yếu tố cần thiết cho các ngôn ngữ này. Như Tom Gruber đã nói: "Mỗi bản thể học là một hiệp ước - một sự thỏa thuận xã hội giữa những người có động cơ chung trong việc chia sẻ." Luôn có nhiều quan điểm cạnh tranh và khác biệt, làm cho việc xây dựng một bản thể học phổ quát là điều không thể. Một bản thể học phổ quát phải có khả năng áp dụng vào mọi lĩnh vực và các lĩnh vực tri thức khác nhau cần được thống nhất.[27]
Đã có một lịch sử dài trong việc xây dựng các bản thể học cho nhiều lĩnh vực nhiệm vụ khác nhau, ví dụ như một bản thể học cho chất lỏng,[28] mô hình phần tử tập trung được sử dụng rộng rãi trong việc biểu diễn mạch điện tử (ví dụ,[29]), cũng như các bản thể học về thời gian, niềm tin, và thậm chí cả lập trình. Mỗi bản thể học này đưa ra một cách nhìn về một phần của thế giới.
Mô hình phần tử tập trung, ví dụ, gợi ý rằng chúng ta nghĩ về các mạch điện dưới dạng các thành phần có kết nối giữa chúng, với tín hiệu truyền ngay lập tức dọc theo các kết nối. Đây là một cách nhìn hữu ích, nhưng không phải là duy nhất. Một bản thể học khác sẽ xuất hiện nếu chúng ta cần chú ý đến hiện tượng điện động lực trong thiết bị: Ở đây, tín hiệu truyền với tốc độ hữu hạn và một đối tượng (như một điện trở) trước đó được xem như là một thành phần đơn lẻ với hành vi đầu vào/đầu ra, giờ có thể phải được coi là một môi trường mở rộng mà trong đó sóng điện từ truyền qua.
Bản thể học có thể được viết bằng nhiều ngôn ngữ và ký hiệu khác nhau (ví dụ, logic, LISP, v.v.); thông tin chính không phải là hình thức của ngôn ngữ đó mà là nội dung, tức là tập hợp các khái niệm được đưa ra như một cách suy nghĩ về thế giới. Nói đơn giản, phần quan trọng là các khái niệm như kết nối và thành phần, chứ không phải là việc lựa chọn giữa việc viết chúng dưới dạng vị từ hay cấu trúc LISP.
Cam kết thực hiện việc lựa chọn một bản thể học này hay bản thể học khác có thể dẫn đến một cái nhìn hoàn toàn khác về nhiệm vụ đang được thực hiện. Xem xét sự khác biệt phát sinh khi chọn cách nhìn phần tử tập trung của một mạch thay vì cách nhìn điện động lực của cùng một thiết bị. Một ví dụ khác, chẩn đoán y khoa nhìn dưới dạng các quy tắc (ví dụ, MYCIN) sẽ khác biệt rõ rệt so với nhiệm vụ tương tự khi nhìn dưới dạng khung (ví dụ, INTERNIST). Khi MYCIN nhìn thấy thế giới y khoa được tạo nên bởi các liên kết kinh nghiệm kết nối triệu chứng với bệnh, INTERNIST thấy một tập hợp các nguyên mẫu, cụ thể là các bệnh điển hình, được so sánh với trường hợp hiện tại.
The good news in reducing KR service to theorem proving is that we now have a very clear, very specific notion of what the KR system should do; the bad new is that it is also clear that the services can not be provided... deciding whether or not a sentence in FOL is a theorem... is unsolvable.