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, platformunda 40'tan fazla dijital ürün ve 14 milyondan fazla kayıtlı satıcı barındıran en büyük e-ticaret pazarlarından birine sahip Endonezyalı bir teknoloji şirketidir.

Tokopedia'nın iş sektörlerinin bir parçası olan Mitra Tokopedia, küçük işletme sahiplerinin kredi ve oyun kuponları, veri paketleri, elektrik jetonları ve ulusal sağlık faturaları gibi dijital ürünler satmalarına yardımcı olan bir web uygulamasıdır. Web sitesi, 700'den fazla şehirde Mitra Tokopedia satıcıları için ana kanallardan biridir. Bu nedenle, sorunsuz bir kullanıcı deneyimi sağlamak son derece önemlidir.

İlk katılım sürecinin önemli bir adımı, bu satıcıların kimliklerini doğrulamasını gerektirir. Satıcının, satıcı doğrulamasını tamamlamak için ulusal kimliğinin yanı sıra kimlik de içeren bir selfie yüklemesi gerekir. Buna Müşterinizi Tanıyın (MT) süreci denir.

Web uygulamasındaki bu kritik KYC sürecine makine öğrenimi özelliklerini ekleyen Mitra Tokopedia, doğrulama hatalarını% 20'nin üzerinde azaltarak daha iyi bir kullanıcı deneyimi sağlamayı başardı. Ayrıca manuel onayları yaklaşık %70 azaltarak operasyonel maliyetten de tasarruf ettiler.

Zorluk

MT verilerinin büyük bir kısmı reddediliyordu ve manuel doğrulama için operasyon ekibine her hafta binlerce bilet gönderiliyordu. Bu durum, hem yüksek operasyon maliyetlerine hem de doğrulama süreci geciken satıcılar için kötü bir kullanıcı deneyimine yol açmıştı. Reddedilmenin en büyük nedeni, satıcıların kimlik kartı içeren selfie'leri 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, yani kullanıcı görüntüleri yüklediğinde, bu sorunu çözmek için makine öğrenimini TensorFlow.js ile kullanmaya karar verdi. Satıcı, kimlik kartını ve selfie resimlerini yüklediğinde altı önemli noktayla satıcının yüzünü tespit etmek için MediaPipe ve TensorFlow'un Yüz Algılama kitaplığını kullandı. Modelin çıkışı, daha sonra kabul kriterlerini kontrol etmek için kullanılır. Başarılı doğrulama sonrasında bilgiler arka uca gönderilir. Doğrulama başarısız olursa satıcıya bir hata mesajı ve yeniden deneme seçeneği sunulur. Modelin, telefonun özelliklerine bağlı olarak cihaz üzerinde veya sunucu tarafında çıkarımı yaptığı karma bir yaklaşım kullanıldı. Sunucuda, daha alt uç bir cihaz bu çıkarımı gerçekleştirir.

ML modelini MT sürecinin başlarında kullanarak şunları yapabilirler:

  • MT sürecinde ret oranını iyileştirin.
  • Modelin değerlendirdiği kaliteye bağlı olarak, kullanıcıları resimlerinin reddedilme olasılığına karşı uyarın.

Diğer çözümler yerine neden makine öğrenimini tercih etmelisiniz?

Makine öğrenimi, başka şekilde zaman alan veya manuel olarak yapılması imkansız olan tekrarlanan görevleri otomatikleştirebilir. Tokopedia'nın örneğinde, mevcut makine öğrenimi harici çözümü optimize etmek önemli sonuçlar sağlayamazken ML çözümü, her hafta binlerce onayı manuel olarak işlemesi gereken operasyon ekibinin yükünü önemli ölçüde azaltabilir. ML çözümünde görüntü kontrolleri neredeyse anında yapılarak daha iyi bir kullanıcı deneyimi sağlanır ve operasyonel verimliliğin artması sağlanır. Makine öğreniminin sorununuza uygun bir çözüm olup olmadığını belirlemek için sorun çerçeveleme hakkında daha fazla bilgi edinin.

Model seçerken dikkat edilmesi gereken noktalar

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

Maliyet

Modeli kullanmanın toplam maliyetini değerlendirdiler. TensorFlow.js, Google tarafından iyi yönetilen bir açık kaynak paketi olduğundan lisanslama ve bakım maliyetlerinden tasarruf ederiz. Çıkarım maliyeti de hesaba katılmalıdır. İstemci tarafında çıkarım yapabilme özelliği, pahalı GPU'larla sunucu tarafında işlemeye kıyasla çok para tasarrufu sağlar. Bu durum, özellikle de verilerin geçersiz ve kullanılamaz olduğu durumlarda ortaya çıkar.

Ölçeklenebilirlik

Modelin ve teknolojinin ölçeklenebilirliğini değerlendirdiler. Verilerdeki büyümeyi idare edebiliyor ve projemiz geliştikçe karmaşıklığı anlayabiliyor mu? Başka projelere veya kullanım alanlarına uygun olacak şekilde genişletilebilir mi? Model, CDN'de barındırılıp istemci tarafında sunulabildiğinden cihaz üzerinde işleme yardımcı olur. Bu da son derece ölçeklenebilir.

Performans

Kitaplığın boyutunu (KB cinsinden) ve çalışma zamanı sürecinin gecikmesini dikkate aldılar. Mitra Tokopedia'nın kullanıcı tabanının çoğunda, orta düzeyde internet hızına ve bağlantıya sahip orta ve düşük seviyeli cihazlar yer alır. Bu nedenle, indirme ve çalışma zamanı açısından performans (yani modelin ne kadar hızlı çıkış üretebildiği), müşterinin özel ihtiyaçlarını karşılamak ve mükemmel kullanıcı deneyimi sağlamak için en önemli önceliktir.

Dikkat edilmesi gereken diğer noktalar

Yönetmeliklere uygunluk: Seçilen kitaplığın ilgili veri koruma ve gizlilik düzenlemelerine uygunluğunu sağlamaları gerekiyordu.

Beceri kümesi: Ekibinin uzmanlığını ve becerilerini değerlendirdi. Bazı makine öğrenimi ç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 aldılar.

Seçilen teknoloji

TensorFlow.js bu faktörleri değerlendirdikten sonra ihtiyaçlarını karşıladı. Cihazın GPU'sunu kullanmak için WebGL arka ucunu kullanarak cihaz üzerinde tamamen çalışabiliyor. Modelin cihaz üzerinde çalıştırılması, sunucu gecikmesinin azalması nedeniyle kullanıcıya daha hızlı geri bildirim verilmesini sağlar ve sunucu işlem maliyetini azaltır. Cihaz üzerinde makine öğrenimi hakkında daha fazla bilgiyi Cihaz üzerinde makine öğreniminin avantajları ve sınırlamaları başlıklı makalede bulabilirsiniz.

"TensorFlow.js, Google tarafından tasarlanan ve tarayıcıda istemci tarafını çalıştırabilen JavaScript geliştiricilerinin hedeflendiği açık kaynak bir makine öğrenimi kitaplığıdır. Tarayıcı içinde hızlı performansla kullanılabilen kapsamlı WebGL, WebAssembly ve WebGPU arka uç operatör desteğine sahip Web AI için en gelişmiş seçenektir."Adobe, Photoshop'u web için geliştirmek üzere TensorFlow.js ile Web ML'yi nasıl kullandı?

Teknik uygulama

Mitra Tokopedia, MediaPipe ve TensorFlow'un gerçek zamanlı yüz algılamayı çalıştırmak için modeller sunan bir paket olan Yüz Algılama kitaplığını kullandı. Özellikle, bu çözüm için tfjs çalışma zamanını uygulayan, bu kitaplıkta sağlanan MediaPipeFaceDetector-TFJS modeli kullanılmıştır.

Uygulamaya başlamadan önce MediaPipe'in ne olduğunu kısaca özetleyin. MediaPipe mobil (Android, iOS), web, masaüstü, uç cihazlar ve IoT genelinde cihaz üzerinde makine öğrenimi çözümleri derleyip dağıtmanızı sağlar.

Bu yayını yazarken MediaPipe tarafından sunulan 14 farklı çözüm bulunmaktadır. mediapipe veya tfjs çalışma zamanı kullanabilirsiniz. tfjs çalışma zamanı, JavaScript ile geliştirilmiştir 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ıklama 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ığı olmadığı için azaltılır) ve farklı bir Wasm hata ayıklama iş akışı gerektirir. Bununla birlikte, teknik ve performans gereksinimlerinin karşılanmasına yardımcı olmak için daha hızlı yürütülür.

Örneğin FaceDetection'ın kullanıldığı, MediaPipe ve TensorFlow modellerinin farklı çalışma zamanları için nasıl çalıştığını gösteren şema.
MediaPipe ve TensorFlow modellerinin farklı çalışma zamanlarında nasıl işlediğiyle ilgili genel bir görsel. Örnek olarak FaceDetection kullanılmış.

Tokopedia'nın uygulamasına dönerken atılacak ilk adım, modeli aşağıdaki gibi başlatmaktır. Kullanıcı bir fotoğraf yüklediğinde, algılayıcıya giriş olarak 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 bir 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 için bir sınırlayıcı kutu ve algılanan yüz için altı önemli noktadan oluşan bir dizi içerir. Göz, burun ve ağız gibi özellikler de buna dahildir. Her bir keypoint x ve y ile birlikte 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ında yüzün sınırlayıcı kutusunu temsil eder; xMin, xMax x sınırlarını, yMin, yMax y sınırlarını ve width, height da sınırlama kutusunun boyutlarıdır. keypoints için x ve y, resim pikseli alanındaki gerçek önemli nokta konumunu temsil eder. name, keypoint için sırasıyla 'rightEye', 'leftEye', 'noseTip', 'mouthCenter', 'rightEarTragion' ve 'leftEarTragion' olan bir etiket sağlar. Bu yayının başında belirtildiği gibi, satıcının doğrulama işlemini tamamlamak için ulusal kimliğini ve ilgili kimliği içeren bir selfie yüklemesi gerekir. Modelin çıkışı, daha sonra kabul kriterlerini, yani daha önce bahsedilen altı önemli noktanın eşleşmesini, geçerli bir Kimlik Kartı ve selfie resmi olarak kabul etmek için kullanılır.

Doğrulama başarılı olduktan sonra, 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 verilir. Arka uca herhangi bir bilgi gönderilmeyecek.

Mitra KYC sayfası, TensorFlow.js modeli ve birbirleriyle etkileşim kuran sunucunun şeması.
Mita KYC sayfası, TensorFlow.js modeli ve sunucusu birbiriyle nasıl etkileşime girer?

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

Bu paket yalnızca 24,8 KB boyutunda (küçültülmüş ve gzip biçimindedir), indirme süresini önemli ölçüde etkilemez. Ancak çok düşük teknolojili cihazlarda çalışma zamanının işlenmesi uzun sürer. İki görüntüyü makine öğrenimi yüz algılama modeline iletmeden önce cihazın RAM ve CPU'sunu kontrol etmek için ek mantık eklenmiştir.

Cihaz 4 GB'tan fazla RAM'e, 4G'den yüksek bir ağ bağlantısına ve 6'dan fazla çekirdekli CPU'ya sahipse görüntüler, yüz doğrulama için cihaz üzerindeki modele aktarılır. Bu gereksinimler karşılanmazsa cihaz üzerindeki model atlanır ve resimler, doğrulama için bu eski cihazların ihtiyaçlarını karşılamak üzere karma bir yaklaşım kullanılarak doğrudan sunucuya gönderilir. Zamanla, donanım gelişmeye devam ettikçe daha fazla cihaz işlem yükünü sunucudan boşaltabilecektir.

Etki

Tokopedia, makine öğrenimi entegrasyonu sayesinde yüksek reddetme oranını başarıyla çözdü ve aşağıdaki sonuçları gördü:

  • Reddetme oranı %20'den fazla azaldı.
  • Manuel onayların sayısı neredeyse %70 azaldı.

Bu sayede satıcılar için daha sorunsuz bir kullanıcı deneyimi sunmakla kalmadı, Tokopedia ekibinin operasyonel maliyetini de düşürdü.

Sonuç

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

MediaPipe Studio'yu ve web için MediaPipe Yüz Dedektörü kod örneğini kullanarak MediaPipe Yüz Algılama özelliğini kendiniz deneyin.

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