Tokopedia, makine öğreniminden yararlanarak satıcı web uygulamasını iyileştirerek operasyonel maliyetleri nasıl azalttı?

Dendi Sunardi
Dendi Sunardi
Geoffrey Prasetyo
Geoffrey Prasetyo
Swetha Gopalakrishnan
Swetha Gopalakrishnan

Tokopedia, en büyük e-ticaret pazar yerlerinden birine sahip olan, platformunda 40'tan fazla dijital ürün ve 14 milyondan fazla kayıtlı satıcı barındıran bir Endonezya teknoloji şirketidir.

Tokopedia'nın iş kollarından biri olan Mitra Tokopedia, küçük işletme sahiplerinin kredi ve oyun kuponları, veri paketleri, elektrik jetonları, ulusal sağlık hizmetleri faturaları gibi dijital ürünleri satmasına yardımcı olan bir web uygulamasıdır. Web sitesi, 700'den fazla şehirdeki Mitra Tokopedia satıcıları için birincil kanallardan biri olduğundan sorunsuz bir kullanıcı deneyimi sunmak çok önemlidir.

Oryantasyon sürecinin önemli bir adımında bu satıcıların kimliklerini doğrulaması gerekir. Satıcı, satıcı doğrulama işlemini tamamlamak için ulusal kimliğini ve kimliğiyle birlikte bir selfie'sini yüklemelidir. Bu süreç, Müşterinizi Tanıyın (KYC) süreci olarak adlandırılır.

Mitra Tokopedia, web uygulamasındaki bu kritik KYC sürecine makine öğrenimi özellikleri ekleyerek doğrulama hatalarında %20'den fazla azalma sağladı ve daha iyi bir kullanıcı deneyimi sundu. Ayrıca manuel onayları yaklaşık %70 oranında azaltarak işletme maliyetlerinden tasarruf ettiler.

Zorluk

KYC verilerinin çoğu reddediliyor ve operasyon ekibine manuel doğrulama için haftada binlerce destek kaydı gönderiliyordu. Bu durum, yüksek işletme maliyetine neden olmanın yanı sıra doğrulama süreci geciken satıcılar için kötü bir kullanıcı deneyimine yol açıyordu. Reddedilmenin en büyük nedeni, satıcıların kimlik kartlarıyla selfie'lerini doğru şekilde yüklememesiydi. Mitra Tokopedia, modern web özelliklerini kullanarak bu sorunu ölçeklenebilir bir şekilde çözmek istiyordu.

Çözüm

Tokopedia ekibi, MT sürecinin ilk adımında (kullanıcı resimleri yüklerken) bu sorunu çözmek için TensorFlow.js ile ML kullanmaya karar verdi. Satıcı, kimlik kartı ve selfie resimlerini yüklediğinde satıcının yüzünü altı önemli noktayla algılamak için MediaPipe ve TensorFlow'un Yüz Algılama kitaplığını kullandılar. Modelin çıkışı daha sonra kabul ölçütlerine göre kontrol edilir. Doğrulama işlemi başarıyla tamamlandığında bilgiler arka uca gönderilir. Doğrulama başarısız olursa satıcıya bir hata mesajı ve tekrar deneme seçeneği gösterilir. Modelin, telefonun özelliklerine bağlı olarak çıkarımı cihaz üzerinde veya sunucu tarafında gerçekleştirdiği karma bir yaklaşım kullanıldı. Daha düşük özelliklere sahip bir cihaz, çıkarımı sunucuda gerçekleştirir.

MT sürecinin başlarında makine öğrenimi modeli kullanmak, şirketin şunları yapmasına olanak tanır:

  • Müşterinizi Tanıyın sürecindeki ret oranını iyileştirme
  • Model tarafından değerlendirilen kaliteye göre, resimlerinin reddedilme olasılığı konusunda kullanıcıları uyarın.

Diğer çözümler yerine neden makine öğrenimini seçmelisiniz?

ML, manuel olarak yapılması zaman alan veya pratik olmayan tekrarlanan görevleri otomatikleştirebilir. Tokopedia örneğinde, mevcut ML dışı çözümün optimize edilmesi önemli sonuçlar vermedi. Ancak ML çözümü, haftada binlerce onayı manuel olarak işlemek zorunda kalan operasyon ekibinin yükünü önemli ölçüde azaltabildi. ML çözümüyle resim kontrolleri neredeyse anında yapılabilir. Bu sayede daha iyi bir kullanıcı deneyimi sunulur ve operasyonel verimlilik artar. ML'nin sorununuz için uygun bir çözüm olup olmadığını belirlemek üzere sorun çerçeveleme hakkında daha fazla bilgi edinin.

Model seçerken dikkat edilmesi gerekenler

ML modeli seçilirken aşağıdaki faktörler dikkate alınmıştır.

Maliyet

Modeli kullanmanın toplam maliyetini değerlendirdiler. TensorFlow.js, Google tarafından iyi bir şekilde bakımı yapılan açık kaynaklı bir paket olduğundan lisans ve bakım maliyetlerinden tasarruf ediyoruz. Dikkate alınması gereken bir diğer nokta da çıkarım maliyetidir. Çıkarımı istemci tarafında çalıştırabilmek, özellikle verilerin geçersiz ve kullanılamaz olduğu durumlarda, pahalı GPU'larla sunucu tarafında işlemeye kıyasla çok fazla tasarruf sağlar.

Ölçeklenebilirlik

Modelin ve teknolojinin ölçeklenebilirliğini göz önünde bulundurdular. Projemiz geliştikçe veri ve model karmaşıklığındaki artışı yönetebilecek mi? Diğer projeleri veya kullanım alanlarını kapsayacak şekilde genişletilebilir mi? Cihaz üzerinde işleme, modelin bir CDN'de barındırılıp istemci tarafına sunulabilmesi sayesinde ölçeklenebilirliği artırır.

Performans

Kitaplığın boyutunu (KB cinsinden) ve çalışma zamanı işleminin gecikmesini göz önünde bulundurdular. Mitra Tokopedia'nın kullanıcı tabanının çoğunluğu, orta ila düşük seviye cihazlara sahip ve internet hızı ile bağlantısı orta düzeyde. Bu nedenle, indirme ve çalışma süresi (ör. modelin ne kadar hızlı çıkış üretebildiği) açısından performans, özel ihtiyaçlarını karşılamak ve mükemmel bir kullanıcı deneyimi sunmak için en önemli önceliktir.

Dikkat edilmesi gereken diğer noktalar

Düzenleyici kurumun belirlediği kurallara uygunluk: Seçilen kitaplığın ilgili veri koruma ve gizlilikle ilgili yönetmeliklere uygun olması gerekiyordu.

Beceri seti: Ekibin uzmanlığını ve beceri setini değerlendirdiler. Bazı ML çerçeveleri ve kitaplıkları, belirli programlama dilleri veya belirli bir alanda uzmanlık gerektirebilir. Bu faktörleri göz önünde bulundurarak makine öğrenimi projeleri için doğru modeli seçerken bilinçli bir karar verdiler.

Teknoloji seçildi

Tüm bu faktörleri göz önünde bulundurduktan sonra TensorFlow.js'in ihtiyaçlarını karşıladığına karar verdiler. Cihazın GPU'sunu kullanmak için WebGL arka ucunu kullanarak tamamen cihaz üzerinde çalışabilir. Modeli cihaz üzerinde çalıştırmak, sunucu gecikmesini azalttığı için kullanıcıya daha hızlı geri bildirim sağlar ve sunucu işlem maliyetini düşürür. Cihaz üzerinde ML hakkında daha fazla bilgi edinmek için Cihaz üzerinde ML'nin avantajları ve sınırlamaları başlıklı makaleyi okuyun.

"TensorFlow.js, Google'ın JavaScript geliştiricileri için sunduğu ve tarayıcıda istemci tarafında çalışabilen açık kaynaklı bir makine öğrenimi kitaplığıdır. Tarayıcıda hızlı performansla kullanılabilen kapsamlı WebGL, WebAssembly ve WebGPU arka uç operatör desteğiyle Web AI için en gelişmiş seçenektir."—Adobe, web için Photoshop'u geliştirmek amacıyla TensorFlow.js ile Web ML'yi nasıl kullandı?

Teknik uygulama

Mitra Tokopedia, MediaPipe ve TensorFlow'un Yüz Algılama kitaplığını kullandı. Bu kitaplık, gerçek zamanlı yüz algılama için modeller sağlayan bir pakettir. Bu çözüm için özellikle bu kitaplıkta sağlanan ve tfjs çalışma zamanını uygulayan MediaPipeFaceDetector-TFJS modeli kullanıldı.

Uygulamaya geçmeden önce MediaPipe'ın ne olduğunu kısaca hatırlayalım. MediaPipe, mobil (Android, iOS), web, masaüstü, sınır cihazlar ve IoT'de cihaz üzerinde ML çözümleri oluşturup dağıtmanıza olanak tanır.

Bu yazının yazıldığı sırada MediaPipe tarafından sunulan 14 farklı çözüm vardır. mediapipe veya tfjs çalışma zamanı kullanabilirsiniz. tfjs çalışma zamanı, JavaScript ile oluşturulmuştur ve web uygulaması tarafından harici olarak indirilebilen bir JavaScript paketi sağlar. Bu, C++ ile oluşturulan ve WebAssembly modülünde derlenen mediapipe çalışma zamanından farklıdır. Temel farklar performans, hata ayıklanabilirlik ve paketlemedir. JavaScript paketi, webpack gibi klasik paketleyicilerle paketlenebilir. Buna karşılık, Wasm modülü daha büyük ve ayrı bir ikili kaynaktır (yükleme süresi bağımlılığı olmaması sayesinde bu durum hafifletilir) ve farklı bir Wasm hata ayıklama iş akışı gerektirir. Ancak teknik ve performans gereksinimlerini karşılamaya yardımcı olmak için daha hızlı yürütülür.

MediaPipe ve TensorFlow modellerinin farklı çalışma zamanlarında nasıl çalıştığını gösteren diyagram (örnek olarak FaceDetection kullanılmıştır).
MediaPipe ve TensorFlow modellerinin farklı çalışma zamanlarında nasıl çalıştığını gösteren genel bir örnek (FaceDetection örneği kullanılmıştır)

Tokopedia'nın uygulamasına dönersek ilk adım, modeli aşağıdaki gibi ilk kullanıma hazırlamaktır. Kullanıcı bir fotoğraf yüklediğinde, algılayıcıya giriş olarak bir HTMLImageElement iletilir.

// Create the detector.
const model = faceDetection.SupportedModels.MediaPipeFaceDetector;
const detectorConfig = {
  runtime: 'tfjs'
};

const detector = await faceDetection.createDetector(model, detectorConfig);

// Run inference to start detecting faces.
const estimationConfig = {flipHorizontal: false};
const faces = await detector.estimateFaces(image, estimationConfig);

Yüz listesinin sonucu, resimdeki her yüz için algılanan yüzleri içerir. Model herhangi bir yüz algılayamazsa liste boş olur. Her yüz için, algılanan yüzün sınırlayıcı kutusunu ve algılanan yüz için altı önemli noktadan oluşan bir diziyi içerir. Göz, burun ve ağız gibi özellikler buna dahildir. Her önemli nokta, x ve y'nin yanı sıra bir ad içerir.

[
  {
    box: {
      xMin: 304.6476503248806,
      xMax: 502.5079975897382,
      yMin: 102.16298762367356,
      yMax: 349.035215984403,
      width: 197.86034726485758,
      height: 246.87222836072945
    },
    keypoints: [
      {x: 446.544237446397, y: 256.8054528661723, name: "rightEye"},
      {x: 406.53152857172876, y: 255.8, "leftEye },
      ...
    ],
  }
]

box, resim piksel alanındaki yüzün sınırlayıcı kutusunu temsil eder. xMin, xMax x sınırlarını, yMin, yMax y sınırlarını, width, height ise sınırlayıcı kutunun boyutlarını gösterir. keypoints için x ve y, resim piksel alanındaki gerçek önemli nokta konumunu temsil eder. name, önemli nokta için bir etiket sağlar. Bu etiketler sırasıyla 'rightEye', 'leftEye', 'noseTip', 'mouthCenter', 'rightEarTragion' ve 'leftEarTragion' şeklindedir. Bu yayının başında belirtildiği gibi, satıcı doğrulamasını tamamlamak için satıcının resmi kimliğini ve kimlikle birlikte bir selfie'sini yüklemesi gerekir. Modelin çıkışı, kabul ölçütlerine göre kontrol edilir. Yani geçerli bir kimlik kartı ve selfie resmi olarak kabul edilmesi için daha önce bahsedilen altı temel noktanın eşleşmesi gerekir.

Doğrulama başarılı olduğunda ilgili satıcı bilgileri arka uca iletilir. Doğrulama başarısız olursa satıcıya bir hata mesajı ve yeniden deneme seçeneği gösterilir. Arka uca bilgi gönderilmez.

Mitra KYC sayfası, TensorFlow.js modeli ve sunucunun birbiriyle etkileşimini gösteren diyagram.
Mitra KYC sayfası, TensorFlow.js modeli ve sunucunun birbiriyle etkileşimi

Düşük özellikli cihazlar için performansla ilgili dikkat edilmesi gereken noktalar

Bu paket yalnızca 24,8 KB (sadeleştirilmiş ve gzip ile sıkıştırılmış) olduğundan indirme süresini önemli ölçüde etkilemez. Ancak çok düşük özellikli cihazlarda çalışma zamanı işleme uzun sürer. İki resim makine öğrenimi yüz algılama modeline aktarılmadan önce cihazın RAM'ini ve CPU'sunu kontrol etmek için ek mantık eklendi.

Cihazda 4 GB'tan fazla RAM, 4G'den daha yüksek bir ağ bağlantısı ve 6'dan fazla çekirdeğe sahip bir CPU varsa görüntüler, yüz doğrulama için cihaz üzerinde çalışan modele aktarılır. Bu şartlar karşılanmazsa cihaz üzerinde model atlanır ve resimler, bu eski cihazlara uygun karma bir yaklaşım kullanılarak doğrulama için doğrudan sunucuya gönderilir. Donanım gelişmeye devam ettikçe zamanla daha fazla cihaz, sunucudan bilgi işlem yükünü devralabilecek.

Etki

Tokopedia, ML entegrasyonu sayesinde yüksek ret oranını başarıyla çözdü ve aşağıdaki sonuçları elde etti:

  • Reddedilme oranı %20'den fazla azaldı.
  • Manuel onayların sayısı yaklaşık %70 azaldı.

Bu sayede satıcılar için daha sorunsuz bir kullanıcı deneyimi oluşturulurken Tokopedia ekibinin işletme maliyeti de azaldı.

Sonuç

Genel olarak bu örnek olay incelemesinin sonuçları, doğru kullanım alanları için web'deki cihaz üzerinde ML çözümlerinin, kullanıcı deneyimini ve özelliklerin etkinliğini iyileştirmenin yanı sıra maliyet tasarrufu ve diğer işletme avantajları sağlamada değerli olabileceğini gösterdi.

MediaPipe Studio'yu ve web için MediaPipe Face Detector kod örneğini kullanarak MediaPipe yüz algılama özelliğini kendiniz deneyebilirsiniz.

Kendi web uygulamanızın özelliklerini cihaz üzerinde ML ile genişletmek istiyorsanız aşağıdaki kaynaklara göz atın: