Chatbotlar için Derin Öğrenme – 1

0
1859
Chatbots
Chatbots

Conversational Agents veya Dialog Systems olarak da bilinen chatbotlar çok sıcak bir konudur. Microsoft, chatbotlar’ında büyük bahisler yapıyor bununla birlikte Facebook (M), Apple (Siri), Google, WeChat ve Slack gibi şirketler de var. Tüketicilerin İşletmeci veya x.ai gibi tüketici uygulamalarını, Chatfuel gibi bot platformlarını ve Howdy’s Botkit gibi bot kütüphanelerini geliştirerek tüketicilerin hizmetlerle nasıl etkileşim kurduğunu değiştirmeye çalışan yeni bir başlangıç dalgası var. Microsoft son zamanlarda kendi bot geliştirici çerçevesini yayımladı.

Birçok şirket, doğal görüşmelerin insandan ayırt edilemez olması için botlar geliştirmeyi umut ediyor ve birçoğu bunu mümkün kılmak için NLP ve Derin Öğrenme tekniklerini kullandığını iddia ediyor. Fakat yapay zeka etrafındaki tüm aldatıcı reklamlar ile, kurguya gerçeği söylemek bazen zordur.

Bu seride, konuşma aracısı oluşturmak için kullanılan derin öğrenme tekniklerinden bazılarına geçmeden önce şu anda nerede olduğumuz, mümkün olanı ve en azından biraz zaman için neredeyse imkansız kalacağını açıklayarak başlamak istiyorum. Bu yazı bir giriş niteliğinde olup ve yaklaşan zamanlarda uygulama ayrıntılarına geçeceğiz.

Modellerin Taksonomisi

Erişim tabanlı vs. Üretken Modeller

erişim tabanlı modeller (daha kolay), girdi ve bağlama dayalı uygun bir yanıt seçmek için önceden tanımlı yanıtların havuzunu ve bir çeşit sezgisel yöntemi kullanır. Sezgisel yöntem, kural tabanlı ifade eşlemesi kadar basit olabilir ya da makine öğrenimi sınıflandırıcılarının bir topluluğu kadar karmaşık olabilir. Bu sistemler yeni bir metin oluşturmaz, sabit bir kümeden bir yanıt alırlar.

Üretken modeller (daha zor) önceden tanımlanmış yanıtlara dayanmazlar. Sıfırdan yeni tepkiler üretirler. Üretken modeller genellikle makine çevirisi tekniklerine dayanır, ancak bir dilden diğerine çevirmek yerine, bir girdiden çıktıya (tepki) çevirir.

Sequence to Sequence

Her iki yaklaşımın da bazı belirgin artıları ve eksileri vardır. Elle hazırlanmış yanıtların depolanması nedeniyle, erişim tabanlı yöntemler dilbilgisi hataları yapmazlar. Bununla birlikte, uygun ön tanımlı bir cevabın bulunmadığı görülen durumları idare edemeyebilirler. Aynı nedenlerden ötürü, bu modeller konuşmanın daha önce bahsedilen isimler gibi bağlamsal varlık bilgilerine geri atılamaz. Üretken modeller daha akıllıdır. Girişteki varlıklara geri dönebilir ve bir insana konuştuğunuz izlenimini verebilirler. Bununla birlikte, bu modellerin eğitilmesi zor, dilbilgisi hatalarını (özellikle uzun cümlelerde) yapma olasılığı yüksektir ve genellikle çok miktarda eğitim verisi gerektirir.

Derin öğrenme teknikleri hem erişim tabanlı hem de üretken modeller için kullanılabilir. Ancak araştırmalar, üretkenlik yönüne doğru ilerliyor gibi gözükmektedir. “Sequence to Sequence” gibi derin öğrenme mimarileri, metin üretmek için benzersiz bir şekilde uygundur ve araştırmacılar bu alanda hızlı ilerleme sağlamayı ummaktadır. Bununla birlikte, hâlâ iyi çalışan üretken modeller üretmenin ilk aşamalarındayız. Üretim sistemlerinin, şimdilik alım temelli olma ihtimali daha yüksektir.

Uzun vs. Kısa Konuşmalar

Konuşma ne kadar uzun sürecekse otomatikleştirmek de o kadar zor olur.Yelpazenin bir tarafında, amacın tek bir girdiye tek bir yanıt oluşturmak olduğu Kısa Metin İletişimi vardır. Örneğin, bir kullanıcıdan belirli bir soru alabilirsiniz ve uygun bir cevapla cevaplayabilirsiniz. Ardından, çoklu dönüşler geçirdiğiniz ve söylenenleri takip etmeniz gereken uzun konuşmalar vardır. Müşteri destek konuşmaları genellikle birden fazla soru içeren uzun konuşma konularıdır.

Açık Domain vs. Kapalı Domain

Açık domain ayarında kullanıcı konuşmayı her yerde alabilir. Mutlaka iyi tanımlanmış bir hedef veya amaç bulunmamıştır. Twitter ve Reddit gibi sosyal medya sitelerindeki sohbetler genellikle açık domainlerdir her türlü talimatlara gidebilirler. Sonsuz sayıda konu ve makul yanıtlar oluşturmak için belirli bir miktarda dünya bilgisinin olması zorunludur ve bu zor bir sorundur.

Sistem çok spesifik bir hedefe ulaşmaya çalıştığı için kapalı domain ayarında olası girdi ve çıktıların alanı biraz sınırlıdır. Teknik Müşteri Desteği veya Alışveriş Asistanları, kapalı domain adı problemlerine örnektir. Bu sistemlerin siyaset hakkında konuşmaları gerekmez, sadece belirli görevlerini olabildiğince verimli bir şekilde yerine getirmelidirler. Elbette, kullanıcılar konuşmayı istediği yere götürebilir ancak sistemin tüm bu durumları ele alması gerekmez ve kullanıcılar bunu beklemiyor.

Ortak Zorluklar

Birçoğu aktif araştırma alanları olan konuşma aracıları oluştururken bariz olan ve açık olmayan belli zorluklar vardır.

İçerikli Context

Mantıklı tepkiler üretmek için sistemlerin hem dilsel bağlam hem de fiziksel bağlam içermesi gerekebilir. Uzun diyaloglarda insanlar söylenenleri ve hangi bilgilerin değiştirildiğini takip ediyorlar. Bu dilbilim bağlamına bir örnek. En yaygın yaklaşım sohbeti bir vektöre yerleştirmektir, ancak bunu uzun konuşmalarla yapmak zordur. Üretken Hiyerarşik Yapay Sinir Ağı Modelleri Kullanan uçtan uca diyalog sistemlerinin oluşturulmasında deneyler ve bir Sinir Ağı Konuşma Modeli için dikkat edilmesi gereken her iki yön de bu yönde ilerlemektedir. Ayrıca tarih, saat, yer veya kullanıcı hakkında bilgi gibi başka bağlamsal verileri de dahil etmeniz gerekebilir.

Sadece Kişilik

Yanıt üretirken temsilci, semantik olarak aynı girdilere tutarlı cevaplar üretmelidir. Örneğin, “Siz kaç yaşındasınız?” Ve “Yaşınız kaç?” sorularına aynı cevabı almak istiyorsunuz. Bu basit gibi gelebilir, ancak “kişilik” veya sabit bilgiyi modellere dahil etmek birçok araştırma problemidir. Çoğu sistem, dilbilimsel mantıklı tepkiler üretmeyi öğrenir; ancak, anlamsal olarak tutarlı yanıtlar üretmek üzere eğitilmemişlerdir. Genellikle çok sayıda farklı kullanıcının verdiği çok sayıda eğitim görmeleri nedeniyle olur. Kişi Tabanlı Sinirsel Konuşma Modeli‘ndeki gibi modeller, bir kişiliği açıkça modelleme yönünde ilk adımları atıyor.

personality

Modellerin Değerlendirilmesi

Bir konuşma aracısını değerlendirmenin ideal yolu, görevini yerine getirip getirmediğini ölçmektir. Örneğin; Belirli bir konuşmada müşteri destek problemini çözebilir. Fakat bu tür etiketler, insan yargısı ve değerlendirmesi gerektirdiği için elde etmek pahalıdır. Açık domain modellerinde olduğu gibi, bazen iyi tanımlanmış bir hedef yoktur. BLEU gibi Makine Çevirisi için kullanılan ve metin eşleme temelli yaygın ölçümler mantıklı yanıtlar için tamamen farklı kelimeler veya cümleler içerebileceğinden uygun değildir.

Amaç ve Çeşitlilik

Üretken sistemlerin ortak bir problemi, çok fazla girdi örneği için “Bu harika” veya “bilmiyorum” gibi genel tepkiler üretme eğiliminde olmasıdır. Google Akıllı Yanıtlama’nın önceki sürümleri hemen hemen her şeye “sizi seviyorum” ile yanıt verme eğilimindeydi. Bu kısmen sistemlerin hem veri hem de gerçek eğitim hedefi/algoritması bakımından nasıl eğitildiğinin bir sonucu. Bazı araştırmacılar çeşitliliği çeşitli amaç fonksiyonlarıyla suni olarak teşvik etmeye çalışmaktadır. Bununla birlikte, insanlar genellikle girdiye özgü ve bir amaç taşıyan tepkiler üretir. Üretken sistemler (ve özellikle açık domain sistemleri) belirli amaçlara sahip olmaları için yetiştirilmediğinden, bu çeşitlilikten yoksundurlar.

Peki gerçekten nasıl çalışır?

Şu anda yapılan en ileri araştırmalar göz önüne alındığında, biz neredeyiz ve bu sistemler gerçekten ne kadar iyi çalışıyor? Taksonomimizi tekrar düşünelim. Bir erişim temelli açık domain sistemi açıktır, çünkü tüm durumları kapsayacak kadar yeterli cevap üretemezsiniz.Yaratıcı bir açık domain sistemi neredeyse Yapay Genel Zeka’dır (AGI) çünkü olası tüm senaryoları ele alması gerekir. Biz de ondan çok uzaktayız (ancak o bölgede çok sayıda araştırma devam ediyor).Bu, hem üretken hem de erişim temelli yöntemlerin uygun olduğu kısıtlanmış alanlarda sorunlar çıkarmamızı sağlar.Konuşmalar ne kadar uzun ve bağlanma o kadar önemliyse, sorun da o kadar zor olur.

Yakın tarihli bir röportajda, Baidu’nun baş bilim adamı Andrew Ng, şu sözleri dile getiriyor:

Bugün derin öğrenmenin değerinin çoğu, çok fazla veri alabileceğiniz dar alanlarda. Yapamayacağınız bir örnek: anlamlı bir sohbetimiz olsun. Demolar var ve konuşmayı siz seçiyorsunuz, anlamlı bir konuşma yaşıyor gibi görünürsünüz
ancak bunu kendiniz denerseniz hızla parmaklıklar geçer.

Birçok şirket, konuşmalarında insan işçilerine dış kaynak kullandırmaya başlar ve yeterli veriyi topladıklarında “otomatikleştirebileceklerine” söz verir. Biraz daha açık domain (satış e-postaları gibi) olan herhangi bir şey, şu anda yapabileceğimizin dışındadır.Bununla birlikte, bu sistemleri, yanıtları önermek ve düzeltmek suretiyle insan çalışanlarına yardımcı olmak için de kullanabiliriz. Bu çok daha uygun.

Üretim sistemlerinde dil bilgisi hataları çok pahalıdır ve kullanıcıları yok edebilir.Bu nedenle çoğu sistemin, dil bilgisi hataları ve rahatsız edici yanıtlardan arındırılmış erişim tabanlı yöntemleri kullanması muhtemelen en iyisi çözümdür.Şirketler, bir şekilde çok miktarda veri ellerine geçebilirlerse, soyutlayıcı modeller uygulanabilir hale gelir – ancak Microsoft’un Tay’ı gibi raylardan çıkmalarını önlemek için diğer teknikler yardımıyla desteklenmelidir.

Kaynak: http://www.wildml.com/2016/04/deep-learning-for-chatbots-part-1-introduction/

Facebook Yorumları