Showing posts with label analytics. Show all posts
Showing posts with label analytics. Show all posts

Eski Çamlar


Geçen ay meşhur bir "Data & Analytics" etkinliğine katıldım. Aşağı yukarı yer aldığım her seansta yapay zekadan bahsedildi. Yapay zekaya dair en çok yönetişim faktörleri hakkında konuşuldu. Hangi kullanım türlerini nasıl devreye almak lazım, yönetim kurullarına bu işleri nasıl sunmak lazım başlıkları da boldu. "Don't boil the ocean" en çok kullanılan deyimdi. "Her şeyi hemen yapmaya kalkma, büyük düşün küçük adımlarla başla" denildi... Diğer bir yapay zeka sloganı ise "trust" idi. Yapay zeka yazılımlarına dair öngörülemezlik bu işin çözülemeyen bir parçası olduğundan, denetleme değil, güvene dayalı ilerleme önerildi. Sektörde pek yerini bulamamış olsa da Chief Data & Analytics Officer (CDAO) rollerinde yer alanlar ne yapmalı, nasıl yapmalı değerlendirmelerine yer verildi. Data, bahsetmesi nispeten kolay ve temel bir kavram olduğundan "AI-ready Data" etiketiyle veri kalitesi ve yapay zeka ilişkisi güçlü bir şekilde kuruldu. Fakat, analitik biraz öksüz kaldı. "Traditional AI" filan diyerek analitik işlere yapay zeka denilmeye çalışıldı ama pek tutmadı. Bizde bir laf vardır "eski çamlar bardak oldu" denir... Gözlemlediğim kadarıyla, eski analitikler de yapay zeka olmuş :) Ama tam da olamamış... 

Bu dejenerasyona birkaç farklı yazımda da değinmiştim. Yapay zeka, analitik, daha öncesinde veri madenciliği, onun da öncesinde iş zekası ve en temelde bilgisayar bilimi konuları hakkında kafalar karışık. Bilgi eksikliği ve sektörde yer edinme çabasıyla ayağı yere basmayan, ticari modelden yoksun hikayeleştirmeler üzerinden yaygın iletişim yapılıyor. Sıklıkla klasik hesaplama görevlerine yapay zeka denildiğine şahit oluyorum: "Ambara kaç kilo malzeme koyacağımıza yapay zeka ile karar verdik", "Satış hedeflerini yapay zeka ile veriyoruz", "Müşteri segmentlerini yapay zeka ile belirledik" vb. sözler dile getiriliyor.

Bu yazıda yapay zeka nedir, akademik taksonomide yeri nerededir, analitikten farkı nedir gibi tanımlamalara girmeyeceğim ama şunu belirtmekte fayda görüyorum: Bugünlerde yapay zeka ile ilgili yaklaşım ve ürün geliştirme faaliyetleri dünyada 4-5 büyük firma tarafından ve akademik disiplinden kopuk, puslu bir şekilde ilerliyor. Bunun farkında olmamız lazım. Bilişim tarihine baktığımızda bu bir ilk. Bu alandaki temel adımlar hep açık, akademik yanı güçlü, erişilebilir ve irdelenebilir bir nitelikteydi. Devlet girişimi de olsa, özel sektör girişimleri de olsa teknik spesifikasyonlar hep açıktı ve bir standartlaşma mantığı hakimdi. İlk işletim sistemleri, bilgisayar mimarileri, işlemci yapıları, kullanıcı etkileşim modelleri, veri tabanları, programlama dillerine bakıldığında bu makul yaklaşımın izi daima sürülebilir. Yapay zeka alanında, tarihte ilk kez en ileri çalışmalar üniversiteler dışlanarak yürütülüyor. Her şey ticari ve politik, dijital egemenlik kurmaya odaklı. Bir yerlerde daima belirsizlik ve kapalı kutular var. Standartlaşma yok. Bununla beraber, her şeyden haberi var gibi davranan büyükçe bir kitle var. Bu tezat ile makul bir istikamete varmak çok zor...

Ticari Unix işletim sistemi ve kaynak kodu kapalı yazılım lisanslaması tutumuna karşı tepki olarak özgür yazılım akımı başlamıştı ve yıllar içinde zenginleşerek kendine azımsanamayacak ölçüde yer buldu. Fakat, o zamanlar bir yetenekli ekip veya bir kişi azim gösterip işletim sistemi, compiler, editör, driver vb. geliştirebiliyordu. Bu tarz bir özgürlükçü bireysel tutumun yapay zeka alanında boy göstermesi çok zor çünkü ihtiyaç duyulan veri miktarı, donanım gücü ve enerji miktarı bireysel ölçeğin çok ötesinde. Belki akademi tarafından çok daha etkin bir yapay zeka yaklaşımı ortaya konulabilirse özgürleşme kapısı bir nebze aralanabilir.

Dolayısıyla, bilimselliğin ticari arzuların gerisinde kaldığı tekinsiz bir zeminde yapay zeka değerlendirmeleri yapmaya çalışıyoruz. Bu konularda hizmet ve teknoloji sunan firmalar da bu eksende çok yoğun propaganda yapıyorlar. Her yöneticide bir "geride kaldık" tedirginliği var. Acilen bir yapay zeka üretimi yapmak isteniyor.  

Sektör liderlerine tavsiyem, tarihi boyunca kavram ve sunum dosyası üretmiş firmalardan kavram ve sunum almaları, yazılım/donanım üretmiş firmalardan yazılım/donanım almaları ve ticari kar sağlayacak özgün rotaya bağımsızca karar vermeleri. Mevcut durumda sunum ve kavram üretmekte mahir firmalar teknoloji, teknoloji firmaları hukuki yaklaşım, hukuk firmaları da yapay zeka konusunda felsefe üretmeye meyilli. Dedim ya kafalar karışık.

Kendini ispatlamış 3 üretken yapay zeka vakası biliyorum: (i) müşteri destek hizmetleri (Service Now), (ii) akıllı doküman uyarlamaları (JP Morgan), (iii) yazılım geliştirme asistanı (Intuit). Bilgimin kaynağı Evangelos Simoudis. Somutlaştırmadan, yaklaşımın başarısını ispat etmeden basit analitik ve iş zekası uygulamaları, bazen de birinci seviyeden mantık yürütme ve aritmetik ile çözülecek birçok problemi yapay zeka ile çözüyoruz demek ve yapay zekaya mistik bir anlam yüklemek bence pek doğru değil.

Benim bugün itibarıyla bu konulara dair görüşlerim şu şekilde:
  1. Yapay zeka çok disiplinli bir alandır ama neticede, çalışan hali bir yazılım sistemidir. Yazılım mühendislerinin aktifleşmesi gerek. Çok sessizler. İşlem otonomisi, etkileşim tasarımı, hesaplama teknikleri, bilgi teorisi ve yeni bilgi temsil şekilleri ortaya koyma açılarından yapay zeka alanında bilgisayar mühendislerine çok iş düşüyor.
  2. Analitik, "demokratikleşmiş", iş zekası gibi zaman içinde tabana inmiş bir kavramdır. Her iş kolu bağımsız analitik görev yürütebilmelidir. Bilgi teknolojileri bölümleri bu amaca hizmet edecek kaliteli veri ve kullanması kolay analitik platformları iş kollarına sunabilmelidir. Veriye dayalı her fikir saatler mertebesinde iş kolları tarafından test edilebilmeli, uygunsa devreye alınabilmelidir. Teknolojik altyapı bu çevikliği destekler nitelikte olmalıdır.
  3. Veri bilimi, tanımı itibarıyla çokça sorgulanan bir dal olarak belirmişti. Her kurumun ve otoritenin kendine has bir veri bilimi Venn diyagramı vardı. Neticede bu ekipler kuruldu, gelişti... Başta her yönetici "PhD arakadaşlarla bomba gibi ekip kurduk" diye yola çıktılar. Bu arkadaşlar genelde Python programlama dili ile kısa kodlar yazıp meşhur birkaç library kullandılar. Daha net olmak gerekirse, neredeyse hepsi xgboost ve lightgbm ile iş kollarının verdikleri target değişken için en iyi Gini katsayısını yakalamaya çalıştı. "Gini fetişi" diyordu tanıdığım bir CDAO bu duruma. Bir bilgi sisteminin temel taşı olan özgün veri yapısı tasarımı hiç hayata alınamadı. Çok kolonlu, "flat", değişken kümeleriyle ilerlendi. Uzatmayayım, veri bilimi çabaları mantıksal temellendirme, planlama ve stratejik karar otomasyonları alanlarında hayal edildiği ölçüde başarılı olamadı. Zaten belli bir sınırın geçilemeyeceğine dair teorik çerçeveler hep vardı ama bugün yapay zeka için yaratılmış mistik tutum o zamanlar da veri bilimi için yaratılmıştı. Korona salgını esnasında zaman serisi verileri üzerinden salgının bitme zamanını tahmin çabalarını ve yaşanan hüsranı hatırlayın. Evreni deterministik bir düzende işliyor sanarak veriye sahip olanın geleceği bileceği inancına kapılmaktan kaynaklı bir durum. Felsefi niteliği bir yana, günümüzde, ortamda kaliteli veri var ise veri bilimi faaliyetleri teknik olarak tümüyle otomasyona alınabiliyor. Bu konuda birçok başarılı ticari ürün var. Diğer yandan, şu sıralar kimse veri biliminden bahsetmiyor, herkes yapay zekaya yöneldi. Oysa yapay zeka, veri biliminin devamı veya ilerlemiş hali değildir.
  4. "Yazılım artık makineler tarafından yapılıyor" inancına sahip birçok yeni mezun bilgisayar mühendisine rastlamaya başladım. Kodu yazılım sanıyorlar. Bu noktada öğretim üyelerine büyük iş düşüyor. Yenilikçi bilgi sistemleri üretebilecek kalibrede bir zihin yapısına dönülmesi gerek. Bugünlerde veri, bilgi sistemi, yazılım, yapay zeka vb. birbirinden bağımsız kavramlarmışçasına bir güdülenme var ve bence hatalı. Hiç kimse her şeyi bilemez ama bilişim tarihini iyi anlatmak ve ilişkilerin doğru kurulmasını sağlamak bir çıkış yöntemi olabilir.
  5. Üretken yapay zeka kullanarak kod üreten ve bu yaklaşımla profesyonel yazılım mühendisliği yapabileceğini sanan, bazı mesleki yeterlilik sınavlarında dahi bu davranışı sergileyen kurnaz ve dar görüşlü bir kitle türedi ve sayıları hızla artıyor. Yazılım ürünleri üzerinden ticari faaliyet yürüten kurumların bu kitleye karşı dirençli yöntemler geliştirmesi gerek.

Yine hiçbir şeyi beğenmeyip, her şeye bir kulp takmış gibi bir tutum sergiledim ama bunu daha önceki bir yazımda izah etmiştim: Ben ÖYS neslinden bir fen liseliyim. Seçenekler arasından en uygununa razı olmak bizim anlayışımıza ters düşüyor. Bizde formül ezberlemek yok. Temeli öğrenip formülleri her seferinde baştan türetebilmek üzerine eğitildik. Biz önce soruya bakarız enine boyuna, ve gerekirse "bu soru yanlış" deriz. Kalemi atarız, sonuçlarına da katlanırız :) 

Momentum

 

Mustafa Kemal Atatürk in the field with staff, during the Turkish War of Independence

In classical cognitive science, it is assumed that peripheral sensors of your body perceive the signals and then, those signals are transferred to your brain through your nerves. After the transfer, your brain symbolizes the signals received, processes and stores the symbolic information in order to make decisions, solve problems, manage memory operations and trigger actions in an organized fashion. It is a very central way of explaining human cognition. All the intellect is sourced in the head.

To me, how we design our organizations and information systems is very similar to the classical account of cognition. We collect the information at the edge. Sometimes a sensor reads the data, sometimes a sales team enters data to their tablet computers, sometimes your branches are there for receiving information from your related parties. Edges are connected to the center. You may call it head quarter, head office, mainframe, data center etc. In the center, stored data is processed by "intelligent" systems and "intelligent" professionals. Central decisions are made and the actions are pushed to the edge units. Perception-cognition-action.

The familiar story of the organizations. It is proven to get the job done. However, it would be better for us to explore the flipside. We model information systems and expect collected symbolic data to fit in the models designed. If there is a mismatch, central system rejects the data sent... Very similar to blood-brain barrier. Time passes and you come up with mountains of stored data in your "very well modelled" central data structures. Now it is time to do necessary analytics so that you can build your decisions and organize related actions. What is missing here?

In the center, almost always, you don't know the field. All the interactions with your customers, partners, thousands of non-deterministic and emotional clues, wins and losses. There is a huge amount of information in the dynamics of the field. And for sure, our field units are not able to encode all of the live information and send it to pre-modelled central structures. Tacit knowledge is missed. The gap between tacit knowledge and the symbolic knowledge is like the qualitative difference between the experience of talking to a person face-to-face and reading an e-mail from the same person. Former is always real, latter is always incomplete.

Therefore, in central analytics and information processing model, we only do static analysis. It is reductionism. It is like reading as many facts as you can on two basketball teams and trying to predict the winner in an accurate way. The players, all the statistics, past performance of the coach, anything you can read about the teams. But you never know all the governing dynamics to make correct decision. In the dynamics of the basketball match, coaches and players are managing millions of parameters... Some are tactical, some are intuitive, some are relative to the state of the opponent at a given time, some are highly related to the hormon levels of the moment, so on and on. It is similar in warfare too. With the stored information on the map, you cannot win the battle. 

To make the story short, I can say that being present in the field during the action is crucial for success. Do you remember impulse and momentum from the physics class? This is the equation: 

M . ∆V = F . ∆ t          

Where M is mass, F is force, ∆V is change in velocity and ∆ t is change in time. 

In our organizations, we want to create momentum and/or make an impulse for being in relatively advantageous positions in the market. When we do just static analysis by using symbolic central information, we can just know the amount of mass and the force. On the other hand, in the field, velocity of the mass and timing for applying the force heavily affect the impulse and momentum. In the battlefield, victor is the one who masters the mass, the power, timing and speed at the same time. History is full of supporting anectodes.

As you can see, physics gives a clue for success. Also, cognitive science has another explanation called embodied cognition. According to embodied cognition approach, it is said that we process information by using our whole body, not just our central nervous system. We probe the environment with our body, sense our situation in immersive environments, use our full nervous system to make multiple mental simulations and act as a result. So in contrast to the classical cognitive model, embodied cognition is not that sterile. It considers distributed cognition, action orientedness and situatedness. There are many real life practices supporting embodied cognition. Examples can be found in the fields of robotics, artificial intelligence, cognitive psychology and analytical philosophy. The position of your body affects how you give meaning to the world such that if you put a pencil between your teeth, which gives you a forced smile, and a friend tells a joke to you; you find the joke more fun compared to the case you don't smile. Similarly, positional up is better than down position. We use our body for cognitive offloading as well. Remember the times you use your fingers for counting or how you use your hands and mimics while you are talking. We also translate some mental states into bodily forms during solving problems. Assume that you are given a task to mentally rotate a cube on your computer screen 60 degrees. You may find yourself with your head turned 60 degrees instead of rotating the cube in your mind.   

The question is whether we can use the notion of embodied cognition for enhancing the way we organize our corporations and come up with better designed information systems. 

I think the answer is yes. 

It requires to be present in the field with all the central capabilities of the company. Doing the analytics at the edge. Enriching the symbolic knowledge with muscle memory. Putting human in the center. Being action oriented. You can translate it as being result oriented. It sounds like a usual term in the business jargon. However, how you interpret it can make the difference. 

For example, take the analytics as it is today. By definition, it is reactive and it tries to predict relying on simplified static data accumulated. Trying to predict the future is painful and does not guarantee the success all the time. What if you accept that you are living in a complex world where is (1) unknown, (2) unpredictable and (3) constantly changing? How can you win in such a complex world? What decision making process should you execute? 

Just act in a bodily way! Do not try to predict but build your muscles to define the future. You can define the future by being the first mover in the context so that you take the initiative and create a situation. If your body is agile and alive to optimize mass, force, speed and timing, it is possible for you to define, at least, near future. Winning is relative to your rivals. War is a series of temporary conditions. As you can see, action orientedness might be a viable way forward. The key is being able to act first at low costs compared to your challengers. And this ability is heavily depending on your information system architecture. Rapid application development, easy deployment, high availability, enabling users in the field, capturing dynamic information are the key concepts of being action/result oriented.

While I am coming to the end, I'd like to say that creating concepts and following ruling heuristics in a vigilant manner are necessary qualities for the organizations. If we visit cognitive science again, it is called metacognition. Metacognition is the ability of monitoring and executing your cognitive processes. In other words, self-awareness! 

We need eyes wide open for winning.

My Data, Your Algorithm

 

Vacheron Constantin Calibre 3750, the most complicated watch in the world. 

I was skimming the future of jobs report by WEF which was released in October 2020. Like most of the WEF reports, it is lucid and comprehensive. I strongly recommend you to have a look if you have not done yet. 

My key take aways from the report are: 
  1. Data & AI jobs are increasing
  2. Cloud computing jobs are rising as well
  3. Information technology super cluster is being splitted to more specialized sub clusters such as Data & AI, Cloud Computing, Engineering etc. 
  4. For popular jobs in Data & AI family, there is a very big skill gap
  5. Critical thinking, problem solving and self management are the top desired professional skills 
If your professional activity is around software, cloud technology, data and AI; and if you are a good problem solver, you are going to have good news at least until 2025. Even under pandemic measures... However, notice the huge skill gaps emphasized in the report. Nothing is going to be so easy, you need to learn, develop, adapt new professional skills faster and faster, in a continuous manner.

Being a person who started programming computers by using Commodore 64 in early 90s and living on computers for more than 20 years, I am lucky enough to watch how software related industry has been evolving. So in this post, I am planning to touch a topic which is very important for me in terms of being aware of what data & AI professionals should consider.

In the good old days, when a software engineer was requried to build a system, the steps we all were following could be roughly listed as follows:
  1. Define the required outputs of the system
  2. Design the interaction model and process flow
  3. Design the data flow
  4. Design data structures
  5. Build the algorithms
  6. Integrate
When we were followig such a discipline, the systems developed and all the sub components were authentic entities in most of the times. The main difference in software development and data business is that nowadays, no one is developing authentic algorithms any more. The tendency is using the algorithms of others as much as possible. Software reuse, remote procedure call and fostering frameworks were always popular topics, even in the ancient times but today, through shared libraries and APIs, literally no one is developing algorithms. Therefore, no one is designing decent data structures. Flat data in, flat data out. And I find this strange.

Especially in analytical model development process, companies are only configuring the algorithms of others by using native company data. At the and of the process, the model developed is just another instance of the foreign function which was originated from the algorithms of some other company. It is like you impose your memories into the brain of somebody else.

In the traditional software development process, the meta equation is like below

Equation 1: INPUT + INTERACTION + ALGORITHM = OUTPUT

In analytical model development, more or less, the equation becomes the one below

Equation 2: INPUT + OUTPUT = ALGORITHM

Please remember that, ALGORITHM of equation 2 is just a re-configured form of the algorithm of others.

Let's analyze this a bit more. Chronologically thinking, all the company data we are to use for developing machine learning models were generated by the software systems, which were developed traditionally, for years. That means INPUT + OUTPUT part of equation 2 is coming from equation 1. Therefore, data have been shaped by the authentic algorithms and interaction models for many many years. Today, you are trying to have a look at the company data to extract a version of some one other's algorithmic function. Isn't it strange too? I think it is.

Moreover, the notion of algorithm itself is not sufficient enough to model real world because an algorithm is a closed symbolic system. It takes inputs, processes finite steps and produces outputs. However, life is composed of interactions. Many interactive computer systems, which contain different algorithms, are running simultaneously, generating many events, getting feedbacks, triggering other systems etc. This bigger interactive picture is not reducible to algorithms.

On the other hand, in most of the cases, analytical models are developed by using non-inteactive, low dimensional, batch, historic data. By using that form of historic data, some one other's algorithm is tried to be configured to handle real life situations. Where is the effect of interactions there? Of course, some analytical models are formed to analyze streaming data. There is a proximity in this area but even such models are trained by following the batch data load practices. The scope of the problems to be solved by using analytical models can be narrowed down to fit into the nature of real life situations. This may handle the shortcomings of non-interactive, pure algorithmic approach. But it deserves another discussion...    
  
To sum up, I have 2 questions:
  1. Can we survive unless we create our authectic algorithms?
  2. How can we add the interaction notion better to the analytical model develoment process?
One of my bosses, whom I respect a lot, were saying "build the clock". I think we should follow the advice.