Genel Anlamda Chatbot ve Bankacılık

Bankacılık sektöründe müşteri deneyiminin artması, hızla gelişen teknolojiler, bankacılık ürünlerinin artması ve her geçen zamanda yeni kanalların çıkmasından kaynaklı olarak iş yükünde gözle görülür düzeyde bir artış meydana gelmiştir. Bu neden ile bankacılık sektöründe artan bu iş yükünü minimum seviyelere indirmek için çeşitli araştırma geliştirme çalışmaları yapılmıştır ve halen yapılmaya devam etmektedir.

Bankacılık uygulamalarının artmasından kaynaklı olarak her artan uygulama katmanında hizmet verebilmek adına insan gücüne ihtiyaç duyulmuştur. Örneğin, bir müşteri kredi çekmek istediği zaman en az dört farklı kanaldan bunu gerçekleştirebilmektedir. Her bir kanalda müşterinin isteğine karşılık verebilmek için bir banka çalışanı bulunmaktadır. Bunun bankaya maliyeti vermiş olduğu krediden kazanacağı miktarı bir hayli düşürmektedir.

Bu sorunlara çözüm bulabilmek için bankacılık sektöründe araştırma geliştirme çalışmaları ilk aşamada tekrarlı olan işlerin banka çalışanı değil sistemler tarafından nasıl yapılabileceği yönünde gerçekleşmiştir. Bununla beraber müşterinin kullanmış olduğu dil nasıl anlaşılır ve buna bankacılık dili ile nasıl yanıt verilir konuları üzerinde durulmuştur. Planlanan çalışmanın en son aşamasında tekrarlı işler dışında bu sisteme nasıl akıl koyabiliriz, bizler gibi sistemler düşünüp bankayı zarara sokmayacak şekilde müşterilere nasıl cevap verir soruları olmuştur.

Tüm bu konular dahilinde günümüz trend teknolojisi olan yapay zeka teknolojisini kullanarak yapay botlar geliştirilmeye başlanmış oldu. Gelişen bu yapay botların mesajlaşma yolu ile kullanılan botlara chatbot adı verilmiştir.

How to manage Machine Learning/Deep Learning project?

Recently, I’m getting many questions about the methodology that we used. We use CRISP-DM as everyone else. So what is this CRISP-DM. I’ll try to explain briefly. CRISP-DM is Cross Industry Standart Process for Data Mining.

CRISP-DM Approach

In seperately;

1. Business Understanding

2. Data Understanding

3. Data Preparation

4. Modeling

5. Evaluation

6. Deployment

This cycle continues with this sort. Firstly, we apply Business Understanding. What exactly is your business needs, what we want from us? We look for answers to these questions, Business Understanding and Data Understanding should be evaluated together. The first two parts are the subject of Data Science. Our role begins with Data Preparation. I want to tell you with data preparation, Where and how to get data? When we decide how to get data, we need to crop/clean the data in a way that we can use. It will take us a long time to adapt the data to our ML/DL model. In this part, we must be patient 🙂

The ML/DL subjects we read always correspond to the modelling. The main issues are prediction, classification, clustering, ARM, Reinforcement Learning, Natural Language Processing, Deep Learning and etc. We use all these algorithms in modelling. In later times, I will discuss all these algorithms in more detail.

We want to find hot to evaluate this model in the Evaluation section. Also we compare the models that we used in this section. The decision of which model we will continue with is based on the accuracy rate or any other criteria that you determine.

At the end of the project, you deploy your project to the server.

Yapay Zeka Terimleri

Dünyanın en karmaşık makinesi şüphesiz insan beynidir. Sayısal bir işlemi birkaç dakikada yapabildiği gibi, çevresinde oluşan olayları idrak edebilme, öğrenme ve sonrasında tekrarlamamak için önlem alma gibi özelliklere sahiptir. Bu durumlar ile ilgili basit örnekler vermek gerekirse; yürümek, araba sürmek, karşıdan karşıya geçmek, yürüme hızını veya araba sürme hızını çevredeki duruma göre karar vermek gibi düşünebiliriz. Akla ilk gelen soru, bu saydığımız özellikler ile bir makineyi yönetebilir miyiz? Makine çevresine göre nasıl davranacağını belirleyebilir mi? Oluşan olayları idrak etme ve deneyimlerle kazanılmış bilgileri ileride tekrar kullanabilir mi? Bu durumlarda insan beynini makinelere göre üstün kılan temel özellik, sinirsel algılayıcılar vasıtası ile kazanılmış ve göreli olarak sınıflandırılmış bilgileri tekrar kullanabilmesidir. Bu durumda akla gelen ilk soru var olan sinirsel ağı algoritma ile yazabilir miyiz? Bu soru ile günümüzde oluşan Yapay Zeka terimleri; Uzman Sistemler(US), Bulanık Mantık(BM), Genetik Algoritma(GA) ve Yapay Sinir Ağları(YSA) çıkmıştır. Her bir terim Yapay Zeka alanının alt dalıdır. Araştırma ve geliştirmeler bu terimler üzerinden yapılmaktadır.

Uzman sistemler temel anlamda insan beynindeki düşünceleri gerçekleştirmek amacıyla bilgisayar tarafından işlenen bir yazılımdır. Oluşan belirli bir bilgi ve birikimleri bilgisayarlara algoritmalar yoluyla bilgisayarlara aktarmadan oluşan bir yapay zeka dalıdır.

Bulanık mantık, bulanık küme teorisine dayanan bir matematiksel durumdur. Daha basit bir mantığa dayalıdır. Soğuk- Sıcak, Kısa-Uzun yerine Sıcak-Ilık-Soğuk, Kısa-(Kısa-Orta)-(Orta-Uzun)-Uzun gibi ara değerler ile çalışma prensibini benimser.

Genetik algoritmalar evrimsel hesaplamanın bir parçası olarak düşünülebilir. Bir veri öbeğinden özel bir veriyi bulmak için kullanılan bir arama yöntemidir. En iyi, en özeli bulmaya yönelik algoritmalar geliştirilir. Genellikle çözümü zor hatta imkansız olan problemlerin çözümü için kullanılır.

Yapay sinir ağları, insan beyninin sinir ağlarını taklit eden bilgisayar programlarıdır. Herhangi bir olaya ait örnekler ile eğitilerek bilgiler programa aktarılır. Böylelikle, örnekler sayesinde açığa çıkarılmış özellikler üzerinde çeşitli genellemeler yapılarak daha sonradan ortaya çıkma ihtimali olan durumlar için çözümler üretilmesi beklenmektedir.

Yapay Zeka Teknolojisinin Tarihçesi

Teknolojinin ilerlemesi ile insanların hayatındaki zaman daha değerli bir duruma geldi. Her bir dakikanın para ile ölçülebilecek bir değer haline geldiği günümüzde, bütün teknolojik çalışmaların odak noktası insan hayatını kolaylaştırmak üzere olmuştur. Bunun üzerine birçok çalışmalar ve geliştirmeler yapılmaktadır. Biz teknolojinin yeni bir dalı olan “Yapay Zeka” konusunu ele alacağız.

Yapay zeka mantığı çok eski tarihlere dayanmaktadır. En basit mantığı ile cansız nesnelere hayat verip zeki nesneler haline getirmek olarak tanımlanabilir. Yapay zeka ile ilgili çalışmalar ilk olarak 1884 yılında görülmüştür. Charles Babbage mekanik bir makinenin kendi kendine karar verebilecek zeki davranışlar göstermesine yönelik çalışmalar yapmıştır. Bu çalışmalar sonunda hiçbir nesnenin insan gibi karar verebilen, düşünebilen, öğrenebilen varlıklar olamayacağına kanaat getirilmiştir.

Yapay zeka ile ilgili çalışmalar 1940 yıllarında bilgisayarların üretilmesi ile daha büyük bir önem kazanmıştır. Bilgisayarların ortaya çıkması ile modellenebilmesi, kendine ait bir karar mekanizması olabilir mi düşünceleri de beraberinde ortaya çıkmıştır. 1950 yılında Alan Turing bir makine kendi kendine düşünebilir mi sorusu üzerine giderek bir makine tasarlamış ve insanların yazışmasını istemiştir. Yazışma esnasında insanlardan karşıdaki kişinin makine mı yoksa insan mı olduğu sorulmuştur. Testler esnasında insan olarak değerlendirilen makinelerin zekası geçerli sayılmıştır.

Programlama dünyasında bir devrim olarak görülen bir olay; 1957 yılında MIT’den John McCarthy tarafından geliştirilmiş olan LISP(List Processing Language) programlama dilidir. Esnek programlar yapmaya imkan sağlayan yapay zeka için geliştirilmiş eski ve köklü olarak sayılan programdır.

Tam anlamıyla başarılı ve istenen sonuçlar alınamadığı için uzun süreli geliştirilmesine ara verilen “Yapay Zeka” kavramı 1970’li yıllarının başlarıyla tekrar ivme kazanmıştır. İlk uygulama alanları arasında yer alan Tıp uygulamaları arasında yer almıştır. Hastalık teşhisi gibi konular üzerinde çalışmalar yapılmış ve sonuçları başarılı olduğu gözlemlenmiştir. Bu uygulama alanında gösterilen başarı ile diğer uygulama alanlarında da kullanımı için çeşitli çalışmalar yapılmıştır.

1980’li yıllara geldiğimizde çeşitli uygulama alanları ile büyük projelerde de yer almaya başlamıştır. Geçen süre içerisinde neredeyse tüm uygulama alanlarında boy gösteren yapay zeka kavramı, günümüzde başka bir hal alarak devam etmektedir.

Bu zamana kadar yapay zeka ile ilgili uygulamalar tek kanal üzerinden ve daha basit otomasyon işleri için kullanılmaktaydı. Günümüzde bununda tam olarak yeterli olmadığının anlaşılması ile yapay sinir ağlarının geliştirilmesi çalışmaları hız kazanmıştır.

Yapay zeka ile beklenen artık insan gibi düşünebilen, kendi kendine öğrenebilen, doğru ve yanlış gibi basit kavramları rahatlıkla idrak edebilen düzeye gelmesidir. Otomasyon haricinde tekrarlı olan her işte rol alması ve bir insan gibi yapmış olduğu işten tecrübe kazanarak ileriki zamanda daha iyi bir hizmet verebilmesi gibi çalışmalar yürütülmektedir. Yapay zekanın bir alanı olan “Chatbot” konusu da tam olarak bu hizmete karşılık gelmektedir. Bir ürün düşünelim bir insan gibi sorulan sorulara doğru cevaplar versin, bir insan gibi bir defalığına öğrendiği bir şeyi ileriki bir durumda tekrar kullanabilsin ve daha önemlisi kendi kendini geliştirip, yönetebilsin.

API Nedir? Entegrasyonu nasıl yapılır?

API(Application Programming Interface) bizim dilimizde “Uygulama Programlama Arayüzü”, bir uygulamanın işlevlerine dışarıdan veya uzaktan erişilip bu işlevlerin kullanılmasını sağlayan arayüzdür. API, bir sunucunun üzerindeki uygulamaya farklı platformlardan ulaşılmasını ve response dönmesine olanak sağlar. Web API’lerinin tamamı REST(REpresentational State Transfer) mimarisi üzerinde dizayn edilir. Bundan dolayı platform bağımsız çalışır. Bu mimari GET, POST, PUT, DELETE metotlarının hepsini desteklemektedir. Web API çıktıları talebe göre JSON, XML gibi çeşitli çıktıları olabilir.

API kullanımın asıl amacı bir uygulamanın bütün veya bazı metotlarını diğer uygulamalara kullanıma açarak uzaktan gelecek veri ve bilgi taleplerini kolayca ve hızlıca karşılamaktadır. Böylelikle tek bir uygulamada gerçekleşen işlemlerden izin verilen uzak kullanıcılar belirli parametreler sayesinde faydalanabileceklerdir. API genel olarak gerçek zamanlı veriyi tek tek işlemeye yarar. Sunucunun API üzerinden gönderdiği parametre içeren veya içermeyen girdiyi sunucu işler ve geriye bir sonuç kümesi veya sadece başarı bildirimi döner. Verinin sadece belli bir kısmında yapılacak güncellemeler bir parametre gerektirir. API ise bu işlemlerin hem hızlı hemde pratik olmasını sağlar.

Entegrasyon tarafına gelecek olursak, karşıdaki sunucunun API üzerinden izin verdiği fonksiyonları kullanabilmek için öncelikle istemciyi tanıtacak bir key gereklidir. Daha sonra bu key ile kullanılabilecek erişimi onaylayacak olan bir şifre almak gerekir. API hizmeti veren sunucu tarafındaki kurum, ilk olarak istemcinin başvurusunda key ve şifreyi ister. İstenen fonksiyonlar kullanılır ve istenen bilgiler karşı uygulamadan API’lerin döndüğü response’lar vasıtasıyla alınır. İsteğe göre API’lara erişim ile ilgili kısıt konulabilir, bunun nedeni API’leri aşırı meşgul olmasını istememeden kaynaklıdır.