# Question answering
Question Answering ya da Soru cevaplama, insanların sorduğu soruları doğal bir dilde otomatik olarak cevaplayan sistemler oluşturmakla ilgilenen, bilgi alma ve doğal dil işleme (NLP) alanlarındaki bir bilgisayar bilimi disiplinidir.


## Genel bakış.
Genellikle bir bilgisayar programı olan soru-cevap uygulaması, genellikle bir bilgi tabanı olan yapılandırılmış bir bilgi veya veri tabanına sorgu göndererek cevaplarını oluşturabilir. Daha yaygın olarak, soru-cevap sistemleri, doğal dil belgelerinin yapılandırılmamış bir koleksiyonundan yanıtları çekebilir.
Soru cevaplama sistemleri için kullanılan doğal dil belge koleksiyonlarına bazı örnekler şunlardır:
  - local referans metinlerinin koleksiyonu
  - iç organizasyon belgeler ve web sayfaları
  - derlenmiş haber raporları
  - bir dizi Wikipedia sayfası 
  - Dünya Çapında Ağ sayfalarının bir alt kümesi


## Soru cevaplamanın türleri.
Soru-cevap araştırması, gerçek, liste, tanım, nasıl, neden, varsayımsal, anlamsal olarak sınırlı ve diller arası sorular da dahil olmak üzere çok çeşitli soru tiplerine cevap vermenin yollarını geliştirmeye çalışır.
  - Okuduğunu anlama becerisini değerlendirmek amacıyla bir makale ile ilgili soruları cevaplamak, soru cevaplamanın daha basit biçimlerinden biridir  çünkü verilen makale, diğer soru cevaplama problemlerinin alanlarına kıyasla nispeten kısadır. Bu tür sorulara örnek olarak, konuyla ilgili bir makale sisteme verildikten sonra "Albert Einstein Nobel Ödülü'nü neden kazandı?" sorusunun sorulması verilebilir.
  - "Kapalı kitap" soru cevaplama, bir sistemin eğitim sırasında bazı gerçekleri ezberlemesi ve açıkça bir bağlam verilmeden soruları cevaplayabilmesidir. Bu, insanların kapalı kitaplı sınavlara girmesine benziyor.
  - "Kapalı alan" soru cevaplama, belirli bir alandaki (örneğin tıp veya otomotiv bakımı) sorularla ilgilenir ve ontolojilerde sıklıkla biçimselleştirilen alan-özgü bilgiden yararlanabilir. Alternatif olarak, "kapalı alan", yalnızca sınırlı sayıda soru tipinin kabul edildiği, örneğin prosedürel bilgi yerine tanımlayıcı bilgi isteyen soruları ifade edebilir. Soru cevaplama sistemleri in the context of makine okuma uygulamaları, related to tıbbi alanda da oluşturulmuştur. Alzheimer hastalığı.
  - "Açık alan" soru cevaplama, hemen hemen her şey hakkındaki soruları ele alır ve yalnızca genel ontolojilere ve dünya bilgisine güvenebilir. Açık alan soru cevaplama için tasarlanan sistemler genellikle cevabı çıkarmak için çok daha fazla veriye sahiptir. Açık alanlı bir soruya örnek olarak "Albert Einstein Nobel Ödülü'nü neden kazandı?" sorusu verilebilir ve bu konu hakkında sisteme hiçbir madde verilmez.
Soru-cevap sistemlerini sınıflandırmanın bir diğer yolu da kullanılan teknik yaklaşıma göredir. QA sistemlerinin çeşitli türleri vardır, bunlar arasında şunlar yer alır:
  - kural tabanlı sistemler
  - istatistiksel sistemler ve
  - Hibrit sistemler
Kural tabanlı sistemler, bir sorunun doğru cevabını belirlemek için bir dizi kural kullanır. İstatistiksel sistemler bir soruya en olası cevabı bulmak için istatistiksel yöntemler kullanır. Hibrit sistemler kural tabanlı ve istatistiksel yöntemlerin bir kombinasyonunu kullanır.


## Tarih.
İlk soru cevaplama sistemlerinden ikisi BASEBALL ve LUNAR idi. BASEBALL, bir yıllık bir süre boyunca Major League Baseball ile ilgili soruları yanıtladı  . LUNAR, Apollo Ay misyonlarından getirilen kayaların jeolojik analiziyle ilgili soruları yanıtladı. Her iki soru cevaplama sistemi de seçtikleri alanlarda oldukça etkiliydi. LUNAR, 1971 yılında bir ay bilimi kongresinde tanıtıldı ve sistem hakkında eğitim almamış kişiler tarafından sorulan soruların %90'ını yanıtlayabildi. Sonraki yıllarda kısıtlı alan soru cevaplama sistemleri geliştirildi. Tüm bu sistemlerin ortak özelliği, seçilen alanın uzmanları tarafından elle yazılmış bir çekirdek veri tabanına veya bilgi sistemine sahip olmalarıdır. BASEBALL ve LUNAR'ın dil yetenekleri, ilk chatbot programları olan ELIZA ve DOCTOR'a benzer teknikler kullanıyordu.
SHRDLU, Terry Winograd tarafından 1960'ların sonu ve 1970'lerin başında geliştirilen başarılı bir soru-cevap programıydı. Bir oyuncak dünyasında (bloklar dünyası) bir robotun işleyişini simüle ediyordu ve robota dünyanın durumu hakkında sorular sorma olanağı sunuyordu. Bu sistemin gücü, çok özel bir alan ve bilgisayar programında kodlanması kolay fizik kurallarına sahip çok basit bir dünyanın seçilmesiydi.
1970'lerde daha dar bilgi alanlarını hedefleyen bilgi tabanları geliştirildi. Bu uzman sistemlerle arayüz oluşturmak için geliştirilen soru cevaplama sistemleri more repeatable sonuçlar üretti ve bir bilgi alanındaki sorulara geçerli yanıtlar. Bu uzman sistemler, iç mimarileri dışında modern soru cevaplama sistemlerine oldukça benziyordu. Uzman sistemler, uzmanlar tarafından oluşturulmuş ve organize edilmiş bilgi tabanlarına büyük ölçüde dayanırken, birçok modern soru cevaplama sistemi, büyük, yapılandırılmamış, doğal dil metin gövdesinin istatistiksel işlenmesine dayanır.
1970'ler ve 1980'ler, hesaplamalı dilbilimde kapsamlı teorilerin geliştirilmesine tanık oldu ve bu da metin anlama ve soru cevaplama alanlarında iddialı projelerin geliştirilmesine yol açtı. Bir örnek, 1980'lerin sonlarında UC Berkeley'de Robert Wilensky tarafından geliştirilen Unix Consultant'tır (UC). Sistem Unix işletim sistemine ilişkin soruları yanıtladı. Alanında kapsamlı, elle hazırlanmış bir bilgi tabanına sahipti ve cevabı çeşitli kullanıcı tiplerine uyacak şekilde ifade etmeyi amaçlıyordu. Bir diğer projemiz ise Almanya'nın bir şehrinde turizm bilgilendirme alanında faaliyet gösteren bir metin anlama sistemi olan LILOG'du. UC ve LILOG projelerinde geliştirilen sistemler hiçbir zaman basit gösterim aşamasını geçememiş, ancak hesaplamalı dilbilim ve muhakeme üzerine teorilerin geliştirilmesine yardımcı olmuştur.
Sağlık ve yaşam bilimcileri için EAGLi gibi uzmanlaşmış doğal dil soru cevaplama sistemleri geliştirilmiştir.


## Uygulamalar.
QA sistemleri, aşağıdakiler de dahil olmak üzere çeşitli uygulamalarda kullanılır:
  - Bir olgunun doğrulanıp doğrulanmadığını şu şekilde soru sorarak kontrol etmek : "X" olgusu doğru mu, yanlış mı?
  - müşteri hizmetleri,
  - teknik destek,
  - pazar araştırması,
  - Raporlar üretmek veya araştırma yapmak.


## Mimarlık.
2001 yılından itibaren, soru-cevaplama sistemleri genellikle sorunun türünü ve cevap türünü belirleyen bir soru sınıflandırıcı modülü içeriyordu.
Farklı soru-cevap sistemleri farklı mimariler kullanır. Örneğin, modern açık alan soru cevaplama sistemleri, alıcı-okuyucu mimarisini kullanabilir. Alıcı, verilen soruyla ilgili ilgili belgeleri çağırmayı amaçlarken, okuyucu ise getirilen belgelerden cevabı çıkarsamak için kullanılır. GPT-3, T5 ve BART gibi sistemler uçtan uca bir  transformatör tabanlı bir mimari  mimarisi, büyük ölçekli metinsel verileri altta yatan parametrelerde depolar. Bu tür modeller, herhangi bir dış bilgi kaynağına erişmeden sorulara cevap verebilir.


## Retrieval-Augmented Generation (RAG) Mimarisi.
RAG (Retrieval-Augmented Generation), büyük dil modellerinin doğruluğunu ve güvenilirliğini artırmak için bilgi alma bileşenini üretici modelle birleştiren bir tekniktir. Bu mimari, ChatGPT gibi büyük dil modellerinin yeteneklerini temel veri sağlayan bir bilgi alma sistemi ekleyerek güçlendirir.


### RAG mimarisi iki ana bileşenden oluşur:.
Belge Alma Bileşeni (Document Retriever): Bu bileşen, girdi sorgusuna dayalı olarak ilgili belgeleri veya bilgi parçacıklarını getirmekten sorumludur. Genellikle hem sorguyu hem de belgeleri temsil etmek için yoğun vektör uzayı kullanır.
Üretici Model (Generator): Alınan bilgiyi kullanarak doğal dil yanıtları üreten büyük dil modeli.
RAG Çeşitleri:
  - Naive RAG: Basit alma-üretme süreçi
  - Advanced RAG: Gelişmiş ön işleme ve sonrası işleme teknikleri
  - Modular RAG: Özelleştirilebilir bileşen kombinasyonları


## Soru cevaplama yöntemleri.
Soru cevaplama iyi bir arama gövdesine bağlıdır; cevabı içeren belgeler olmadan herhangi bir soru cevaplama sisteminin yapabileceği çok az şey vardır. Daha büyük koleksiyonlar genellikle daha iyi soru cevaplama performansı anlamına gelir; tabi eğer soru alanı koleksiyona ortogonal değilse. Web gibi büyük koleksiyonlardaki veri yedekliliği, bilgi parçacıklarının farklı bağlamlarda ve belgelerde birçok farklı şekilde ifade edilmesinin muhtemel olduğu anlamına gelir bu da iki faydaya yol açar:
  - Doğru bilgi birçok biçimde karşımıza çıkıyorsa, soru cevaplama sisteminin metni anlamak için daha az sayıda karmaşık NLP tekniği uygulaması gerekir.
  - Sistem, doğru cevapların, yanlış cevaplardan daha fazla sayıda soruda yer almasına güvenebildiğinden, doğru cevaplar yanlış pozitiflerden filtrelenebilir.
Bazı soru cevaplama sistemleri büyük ölçüde otomatik muhakemeye dayanmaktadır.


## Açık alan soru cevaplama.
Bilgi almada, açık alanlı bir soru cevaplama sistemi, kullanıcının sorusuna yanıt olarak bir cevap döndürmeye çalışır. Döndürülen yanıt, ilgili belgelerin bir listesi yerine kısa metinler biçimindedir. Sistem, hesaplamalı dilbilim, bilgi alma ve bilgi gösterimi tekniklerinin bir kombinasyonunu kullanarak yanıtlar bulur.
Sistem, anahtar kelime kümesi yerine doğal dil sorusunu girdi olarak alır, örneğin: "Çin'in ulusal günü ne zaman?" Daha sonra bu girdi cümlesini mantıksal biçiminde bir sorguya dönüştürür. Doğal dil sorularını kabul etmek, sistemi daha kullanıcı dostu hale getiriyor, ancak uygulanması daha zor, çünkü çok çeşitli soru tipleri var ve mantıklı bir cevap verebilmek için sistemin doğru soruyu belirlemesi gerekiyor. Soruya bir soru tipi atamak çok önemli bir iştir; tüm cevap çıkarma süreci doğru soru tipini ve dolayısıyla doğru cevap tipini bulmaya dayanır.
Anahtar kelime çıkarma, girdi soru tipini belirlemenin ilk adımıdır. Bazı durumlarda, kelimeler soru tipini açıkça belirtir, örneğin, "Kim", "Nerede", "Ne zaman" veya "Kaç tane" - bu kelimeler sisteme cevapların sırasıyla "Kişi", "Yer", "Tarih" veya "Sayı" türünde olması gerektiğini düşündürebilir. POS (sözcük türü) etiketleme ve sözdizimsel ayrıştırma teknikleri de yanıt türünü belirleyebilir. Yukarıdaki örnekte özne "Çin Ulusal Günü", yüklem "is" ve zarf tamlayıcısı "when" olduğundan cevap türü "Date"dir. Ne yazık ki, "Hangi", "Ne" veya "Nasıl" gibi bazı soru sözcükleri kesin cevap türlerine karşılık gelmiyor: Her biri birden fazla türü temsil edebilir. Bu gibi durumlarda sorudaki diğer kelimelere de dikkat edilmesi gerekir. Bağlamı anlamak için WordNet gibi bir sözcüksel sözlük kullanılabilir.
Sistem soru türünü belirledikten sonra, doğru anahtar kelimeleri içeren bir dizi belge bulmak için bir bilgi arama sistemi kullanır. Bir etiketleyici ve NP/Fiil Grubu parçalayıcısı, bulunan belgelerde doğru varlıkların ve ilişkilerin belirtilip belirtilmediğini doğrulayabilir. "Kim" veya "Nerede" gibi sorular için adlandırılmış varlık tanıma aracı, alınan belgelerden ilgili "Kişi" ve "Yer" adlarını bulur. Only the relevant paragraphs are selected for ranking. [ "" ]
Bir vektör uzay modeli aday cevapları sınıflandırabilir. Kontrol etmek  eğer cevap soru tipi analizi aşamasında belirlenen doğru tipte ise. Bir çıkarım tekniği adayların cevaplarını doğrulayabilir. Daha sonra bu adayların her birine, içerdiği soru kelimesi sayısına ve bu kelimelerin adaya ne kadar yakın olduğuna göre bir puan verilir; ne kadar çok ve yakınsa o kadar iyidir. Cevap daha sonra ayrıştırılarak kompakt ve anlamlı bir gösterime çevrilir. Önceki örnekte beklenen çıktı yanıtı "1 Ekim"dir.


## Matematik soru cevaplama.
Ask Platypus ve Wikidata'ya dayanan, açık kaynaklı, matematiğe duyarlı bir soru cevaplama sistemi olan MathQA 2018'de yayınlandı. MathQA, girdi olarak İngilizce veya Hintçe doğal dil sorusunu alır ve Wikidata'dan alınan matematiksel formülü, kullanıcının değişkenler için değerler girmesine olanak tanıyan hesaplanabilir bir forma dönüştürerek özlü bir cevap olarak döndürür. Sistem, varsa değişkenlerin ve ortak sabitlerin adlarını ve değerlerini Wikidata'dan alır. Sistemin bir test setinde ticari bir hesaplamalı matematiksel bilgi motorundan daha iyi performans gösterdiği iddia edilmektedir. MathQA, Wikimedia tarafından https://mathqa.wmflabs.org/ adresinde barındırılmaktadır. 2022 yılında 15 matematik sorusu türüne cevap verecek şekilde genişletildi.
MathQA metotlarının doğal dil ile formül dilini birleştirmesi gerekiyor. Mümkün yaklaşımlardan biri , Varlık Bağlantısı aracılığıyla denetlenen açıklama gerçekleştirmektir. CLEF 2020'deki "ARQMath Görevi" Math Stack Exchange platformundan yeni gönderilen soruları, topluluk tarafından daha önce yanıtlanmış olan mevcut sorularla ilişkilendirme sorununu ele almak için başlatıldı. Zaten yanıtlanmış, anlamsal olarak ilişkili sorulara köprü metinleri sağlamak, kullanıcıların daha erken yanıtlar almasına yardımcı olur ancak anlamsal ilişkinin önemsiz olmaması nedeniyle zorlu bir sorundur. Laboratuvar, genel amaçlı arama motorlarındaki matematiksel sorguların %20'sinin iyi biçimlendirilmiş sorular olarak ifade edilmesi gerçeğinden ilham aldı. Görev iki ayrı alt görevden oluşuyordu. Görev 1: "Cevap alma" eski gönderi cevaplarını yeni sorulan sorularla eşleştirme ve Görev 2: "Formül alma" eski gönderi formüllerini yeni sorularla eşleştirme. Formül dilini içeren matematik alanıyla başlayarak, hedef daha sonra görevi diğer alanlara (örneğin kimya, biyoloji vb. gibi STEM disiplinleri) genişletmektir; bu alanlarda diğer özel gösterim türleri (örneğin kimyasal formüller) kullanılır.
Matematiksel soru cevaplamanın tersi olan matematik sorusu üretme de araştırılmıştır. PhysWikiQuiz fizik sorusu oluşturma ve test motoru, Wikidata'dan matematiksel formülleri, bunları oluşturan tanımlayıcılar (değişkenlerin adları ve değerleri) hakkındaki anlamsal bilgilerle birlikte alır. Daha sonra formüller yeniden düzenlenerek bir dizi formül varyantı oluşturulur. Daha sonra değişkenler rastgele değerlerle değiştirilerek her bir öğrencinin testine uygun çok sayıda farklı soru üretilir. PhysWikiquiz, Wikimedia tarafından https://physwikiquiz.wmflabs.org/ adresinde barındırılmaktadır.


## İlerleme.
Son zamanlarda soru cevap sistemleri genişletildi  ek bilgi alanlarını kapsayacak şekilde yıllar Örneğin, zamansal ve coğrafi soruları, tanım ve terminoloji sorularını, biyografik soruları, çok dilli soruları ve ses, görüntü ve video içeriğiyle ilgili soruları otomatik olarak yanıtlamak üzere sistemler geliştirilmiştir. Güncel soru cevap araştırma konuları şunlardır:
  - etkileşim—soruların veya cevapların açıklığa kavuşturulması 
  - cevap yeniden kullanımı veya önbelleğe alma 
  - anlamsal ayrıştırma 
  - cevap sunumu 
  - bilgi temsili ve anlamsal çıkarım 
  - sosyal medya analizi soru cevaplama sistemleriyle
  - duygu analizi 
  - tematik rollerin kullanımı 
  - Görsel soru cevaplama için resim alt yazısı 
  - Somutlaştırılmış soru cevaplama 
2011 yılında IBM tarafından geliştirilen bir soru cevaplama bilgisayar sistemi olan Watson, "Jeopardy! yarışmasında iki gösteri maçında yarıştı." Brad Rutter ve Ken Jennings'e karşı önemli bir farkla kazandı. Facebook Research, DrQA sistemini açık kaynak lisansı altında kullanıma sundu. Bu sistem bilgi kaynağı olarak Wikipedia'yı kullanır. Deepset tarafından geliştirilen açık kaynaklı çerçeve Haystack, açık alan soru cevaplama ile üretken soru cevaplamayı birleştirir ve domain adaptation destekler underlying industry use cases için dil modelleri .
GPT-4 [37], Gemini [38] gibi Büyük Dil Modelleri (LLM'ler) [36], daha karmaşık anlayış ve metin üretimi sağlayan başarılı QA sistemlerine örnektir. Metin, görüntü ve ses gibi çeşitli biçimlerdeki bilgileri işleyebilen ve anlayabilen Çok Modlu [39] QA Sistemleri ile birleştirildiğinde, LLM'ler QA sistemlerinin yeteneklerini önemli ölçüde iyileştirir.