Di Habré, lebih dari satu atau dua kali mereka menulis tentang robot suara, prinsip-prinsip pekerjaan mereka, dan tugas-tugas yang dapat mereka selesaikan. Karenanya, prinsip umum pembuatan robot semacam itu (kami lebih suka menyebutnya "agen digital) jelas bagi banyak orang. Dan ini bagus, karena pada artikel ini kami ingin membahas tentang pembelajaran robot yang cepat.
Kami berhasil melatih agen dengan basis panggilan yang sangat terbatas. Jumlah minimum catatan yang menjadi dasar pengembangan agen digital lengkap hanya 500. (Peringatan spoiler - kita berbicara lebih banyak tentang spesialisasi asisten, dan tidak belajar dari awal). Bagaimana pelatihan berlangsung, dan apa saja jebakan, fitur, apa yang ada di jantung teknologi? Kami akan membicarakannya hari ini.
Apa yang seharusnya bisa dilakukan oleh agen digital?
Saat ini, agen digital yang kami rancang, yang bekerja dengan penggunaan pengklasifikasi maksud di segmen b2c, dapat mempertahankan dialog lengkap. Ini menjadi mungkin karena fakta bahwa kami mengajari mereka:
- Tentukan dalam pidato seseorang dan klasifikasikan berbagai jawaban, pertanyaan, keberatan.
- Pilih respon atau reaksi yang sesuai artinya.
- Identifikasi kasus ketika pelanggan tidak mendengarkan dialog dan menyatakan negatif. Tentukan kapan pelanggannya adalah anak-anak dan / atau orang tua, dan akhiri panggilan dengan benar dalam kasus seperti itu.
- Tentukan dalam pidato seseorang dan catat, jika perlu, berbagai entitas yang dipanggil oleh pelanggan: nama, alamat, tanggal, nomor telepon, dll.
- . , , , . .
- «» («», «») , .
- , (, ) . , .
- «background sound» (« »). , , « », , - , .. . — .
Untuk apa fitur ini? Sehingga agen digital dapat mengambil tugas mengerjakan saluran pusat panggilan masuk dan menjawab pertanyaan pelanggan standar. Berdasarkan pengalaman kami, agen digital dapat memproses hingga 90% permintaan secara mandiri. Pada saat yang sama, operator manusia dapat melakukan tugas yang lebih kreatif dan membantu dengan masalah non-standar. AI dapat diinstruksikan untuk melakukan dialog dengan pelanggan call center, dukungan perusahaan, dll.
Nah, dan yang paling penting dalam segmen ini adalah bahwa agen digital tidak dapat menjual lebih buruk (dan dalam banyak kasus bahkan lebih baik) daripada operator langsung. Kami membuat agen digital canggih seperti itu, misalnya, untuk operator telekomunikasi besar.
Bagaimana melatih robot untuk melakukan dialog
Ini tantangan yang sangat menarik. Sekarang kami menyelesaikannya dengan cara yang sama sekali berbeda dari beberapa tahun yang lalu. Dan sekarang, kami membutuhkan beberapa ratus catatan untuk melatih seorang agen. Tapi, tentu saja, kami tidak langsung melakukannya - kami harus bekerja keras.
Seperti sebelumnya?
Beberapa tahun yang lalu, ekstraksi maksud dan entitas dari ucapan manusia dan klasifikasinya dilakukan menggunakan ekspresi reguler ( regex ). Sederhananya, ini adalah bahasa pencarian teks. Untuk pencarian, string sampel (alias pola) digunakan, yang menetapkan aturan pencarian. Regex menggunakan sintaks khusus untuk menyetel aturan pencarian. Tetapi metode ini memiliki beberapa kelemahan:
- Kebutuhan akan sumber daya manusia yang besar dan terampil untuk membuat ekspresi reguler.
- – , , .
- , — .
- , .
- - (NLU).
- ( , , , , ) 3-7 ; .
?
Kami telah mengembangkan database dasar, kumpulan data jutaan panggilan yang dibuat menggunakan ekspresi reguler: kami memverifikasi dan menandai data dan membuat model yang, sebenarnya, meniru hasil kerja pengklasifikasi pada ekspresi reguler, tetapi dengan lebih baik kualitas.
Dalam proses penggunaan model lebih lanjut pada proyek nyata, kami melakukan pelatihan tambahan melalui antarmuka markup khusus di platform kami. Jadi, pengelola konten mengidentifikasi isyarat yang tidak diklasifikasikan secara akurat, menandainya, dan "memberi makan" model sehingga dapat ditingkatkan pada kasus mereka.
Sekarang pelatihan terdiri dari dua tahap: secara langsung melatih model pada set data dan pelatihan lebih lanjut selama operasi komersial. Saat ini, menghubungkan ke mesin NLU dan tes pengenalan cepat hanya membutuhkan waktu beberapa jam.
Kualitas yang dulunya dicapai dengan berminggu-minggu kerja yang teliti sekarang tersedia dengan segera berkat basis utama. Misalnya, di segmen b2c,% kesalahan awal dalam mengenali persetujuan / penolakan untuk mengambil tindakan target berkurang 3 kali lipat (dari 10% menjadi 2-3% dari jumlah total kasus).
Pelatihan dimulai dengan penyediaan rekaman percakapan antara operator dan pelanggan perusahaan klien. Idealnya, kumpulan data harus berisi setidaknya 500 catatan. Selain itu, informasi tambahan diminta, termasuk tanggal jatuh tempo, prioritas, instruksi dan skrip yang ada untuk karyawan pusat panggilan (opsional, tetapi diinginkan).
Untuk mengatasinya, kami menggunakan Mesin NLU khusus . Ini didasarkan pada penguraian teks semantik yang berasal dari sistem ASR. Dalam proses pengenalan, objek utama pengenalan terdiri dari dua jenis:
Entitas .
Intent (niat).
Poin penting: kami tidak memiliki sistem dialog klasik dalam pengertian tradisionalnya, sistem pembelajaran mesin tidak membuat jawaban secara dinamis, jawabannya ditentukan oleh perancang skrip. Frase bot telah ditentukan sebelumnya secara ketat, tidak ada keinginan bebas untuk kecerdasan buatan, untungnya atau sayangnya ...
Logika percakapan juga ditentukan sebelumnya - pada kenyataannya, pengklasifikasi Intent digunakan untuk menentukan apa yang pelanggan katakan kepada kami dan untuk tujuan apa. Setelah menentukan Intent, kami akan dapat memilih frase bot yang sesuai, yang diperlukan untuk menanggapi pelanggan - sebenarnya, untuk melakukan dialog lengkap.
Contoh dialog
Di bawah ini adalah skrip SDM yang kompleks dengan maksud dan entitas penunjukan; entitas dan maksud yang dikenali ditunjukkan di bawah replika setiap pelanggan dan dicetak miring.
Bot: Halo! Nama saya Elena, saya menelepon tentang resume Anda. Katakan padaku, apakah tawaran lowongan itu relevan untuk Anda?
Pelanggan: Ya, halo
Maksud: hello_confirm = true
Bot:Lihat, sekarang kami memiliki lowongan untuk spesialis kantor penjualan. Tanggung jawabnya termasuk berkonsultasi dengan pelanggan, menjual peralatan, dan bekerja dengan mesin kasir. Pendaftarannya benar-benar resmi, gajinya putih, pendapatan rata-rata adalah N rubel, level maksimum praktis tidak terbatas, ada peluang untuk pertumbuhan karier. Jadwalkan 5 hari kerja dengan dua hari libur mengambang. Kami juga memberikan semua jaminan sosial, VMS, bonus dan diskon dari perusahaan.
Pertimbangkan kondisi ini untuk diri Anda sendiri?
Pelanggan: Dan lagi, dari mana Anda menelepon?
Intent: question = what_company
Bot: Ini adalah jaringan retail.
Pelanggan NNN : Apa jadwal Anda?
Intent: question = schedule
Bot:Jadwal kerja dibentuk oleh program secara otomatis, dengan memperhatikan arus klien dan beban kerja di kantor dengan dua hari libur mengambang, yaitu shift pekerja 6 8 10 12 jam sehari tidak boleh lebih dari 40 jam seminggu. Dalam hal ini, jadwal dibuat terlebih dahulu selama 2 minggu, yaitu Anda tahu sebelumnya jadwal Anda, akhir pekan Anda, dan Anda sudah bisa merencanakan.
Pelanggan: Baiklah,
Maksud: confirm = true
Bot: Mari kita periksa data pribadi Anda dengan Anda ...
Tolong beritahu saya Nama belakang Anda Nama lengkap Patronim
Pelanggan : Elena Gudkova
Entitas: name = true
Bot: Mohon sebutkan tanggal lahir Anda
Pelanggan:ketiga belas nol kedua delapan puluh tujuh
Entitas:
hari = [13]
bulan == [Februari]
tahun == [1987]
Bot: Katakan, bolehkah saya menuliskan nomor yang saya hubungi sebagai kontak?
Pelanggan: Tidak, mungkin
Maksud: konfirmasi = salah
Bot: Beritahu saya nomor yang dapat saya hubungi?
Pelanggan: sembilan ratus sepuluh delapan ratus delapan puluh lima puluh lima
Entity: telephone = true
Bot: Katakan padaku, apa pendidikanmu?
Pelanggan:
Entitas Tinggi : pendidikan = Tinggi
Bot:Perjelas, apakah Anda saat ini belajar penuh waktu?
Subscriber: No
Intent: confirmation = false
Bot: Katakan, apakah Anda berkewarganegaraan Rusia?
Pelanggan: Kewarganegaraan Rusia
Entitas: kewarganegaraan = rusia
Bot: Oke, itu pertanyaan terakhir. Terima kasih telah menjawab pertanyaan saya, sekarang saya akan mengirimkan kuesioner tersebut kepada manajer untuk dipertimbangkan. Kuesioner akan dipertimbangkan dalam 3 hari, dan, jika ada keputusan positif, karyawan kami akan menghubungi Anda. Selamat tinggal.
Ok, script sudah dikembangkan, lalu apa?
Setelah semua ini, skrip yang dikembangkan disepakati dengan pelanggan. Dalam beberapa kasus, klien ingin menambah atau mengubah sesuatu, yang kami lakukan. Terkadang perlu untuk mengklarifikasi parameter teknis:
- Metode integrasi.
- Parameter masukan / keluaran.
- Sambungan trunk SIP (jika direncanakan menggunakan telepon pelanggan).
- Koneksi SMS atau koneksi ke sistem pelanggan pihak ketiga (CRM, Manajemen kampanye).
Apa sajakah parameter input dan output? Ini adalah berbagai variabel yang dibutuhkan agen digital kami untuk memulai panggilan. Pertama-tama, ini, tentu saja, adalah nomor telepon atau id pelanggan yang kita panggil. Secara opsional, bergantung pada pelanggan dan proyek tertentu, ini bisa berupa data lain, misalnya:
- berbagai komponen dan biaya layanan dan layanan yang harus diumumkan oleh asisten kepada pelanggan yang berbeda, tergantung pada kondisi spesifik;
- nama paket layanan atau layanan yang dipanggil asisten ke pelanggan yang berbeda;
- nama berbeda yang digunakan asisten untuk menyapa penelepon saat menyapa;
- Informasi tambahan.
Artinya, agar asisten, bergantung pada kondisi tertentu, untuk melakukan tindakan ini atau itu selama panggilan atau setelahnya, Anda perlu menyampaikan kepadanya kondisi ini, yang disebut "parameter masukan".
Nah, parameter keluaran adalah sekumpulan data yang harus dikembalikan oleh asisten kepada kita setelah melakukan panggilan.
Misalnya: nomor telepon pelanggan, durasi panggilan, nama proyek saat panggilan dilakukan, hasil panggilan, dll. Output juga berisi hasil utama dari panggilan, yang bergantung pada hasil dialog pada proyek tertentu (contoh paling sederhana adalah hasil "Persetujuan" jika pelanggan setuju untuk melakukan tindakan target atau hasil "Penolakan" jika pelanggan menolak). Dan yang terakhir adalah data teknis tentang status panggilan dan berbagai kode kemungkinan kesalahan (panggilan dilakukan, panggilan tidak terjadi karena masalah telepon, panggilan tidak terjadi karena data input yang salah, dll. ).
Data ini dapat dengan mudah masuk ke dalam keluaran dari data masukan (misalnya, dalam data masukan kami meneruskan nomor pelanggan ke asisten, dan dalam data keluaran setelah panggilan, asisten memberi kami nomor telepon yang sama).
Selain itu, robot dapat “mengumpulkan” data ini dari pelanggan berdasarkan hasil panggilan: misalnya, menuliskan nama, alamat, nomor telepon, dll. Yang dinamai oleh pelanggan dan mencatatnya dalam data keluaran. Berdasarkan mereka, pelaporan dan analitik dihasilkan.
Nah, kemudian ada pergantian tahapan seperti penilaian skrip, pengembangan logika, pengembangan pola, verifikasi perangkat lunak dan, akhirnya, mentransfer proyek ke klien.
Faktanya, itu saja. Tentu saja, proses pembuatan agen digital itu sendiri sedikit lebih rumit daripada yang dijelaskan di atas - hanya dalam kerangka artikel, tidak mungkin untuk menunjukkan secara mutlak semua nuansa. Sekarang kami berencana untuk melanjutkan artikel ini dengan membuat bagian kedua tentang aspek teknis pelatihan dan “dapur” internal perusahaan. Jika Anda ingin tahu sesuatu yang tidak ada dalam artikel sekarang - tanyakan dan kami pasti akan menjawab.