Namun, tidak ada yang tahu apakah suatu mesin dapat menciptakan sesuatu yang baru atau hanya sebatas yang diketahuinya. Namun hingga saat ini, kecerdasan buatan dapat memecahkan masalah rumit dan menganalisis kumpulan data yang tidak terstruktur. Kami di Dodo memutuskan untuk menjalankan eksperimen. Untuk mengatur dan menggambarkan secara struktural sesuatu yang dianggap kacau dan subyektif — rasa. Kami memutuskan untuk menggunakan kecerdasan buatan untuk menemukan kombinasi bahan paling liar yang dianggap lezat oleh sebagian besar orang.
Bekerja sama dengan para ahli dari MIPT dan Skoltech, kami menciptakan kecerdasan buatan yang telah menganalisis lebih dari 300.000 resep dan temuan penelitian tentang kombinasi molekul bahan-bahan yang dilakukan oleh Cambridge dan beberapa universitas Amerika lainnya. Berdasarkan hal ini, AI telah belajar untuk menemukan hubungan yang tidak jelas antara bahan-bahan dan memahami cara memasangkan bahan-bahan tersebut dan bagaimana kehadiran masing-masing bahan memengaruhi kombinasi bahan lainnya.
Untuk model apa pun, Anda memerlukan data. Itu sebabnya untuk melatih AI kami, kami mengumpulkan lebih dari 300.000 resep memasak.
Bagian tersulitnya bukan mengumpulkannya, melainkan menjadikannya bentuk yang sama. Misalnya, cabai dalam resep dicantumkan sebagai “cabai”, “cabai”, “cabai”, atau bahkan “cabai”. Jelas bagi kita bahwa semua ini berarti “cabai” tetapi jaringan saraf menganggap masing-masingnya sebagai entitas individual.
Awalnya, kami memiliki lebih dari 100.000 bahan unik, dan setelah kami membersihkan datanya, hanya tersisa 1.000 posisi unik.
Setelah kami mendapatkan datasetnya, kami melakukan analisis awal. Pertama, kami melakukan penilaian kuantitatif terhadap jumlah masakan yang ada dalam kumpulan data kami.
Untuk setiap masakan, kami telah mengidentifikasi bahan-bahan yang paling populer.
Grafik ini menunjukkan perbedaan preferensi selera masyarakat menurut negara dan perbedaan cara mereka menggabungkan bahan-bahan.
Setelah itu, kami memutuskan untuk menganalisis resep pizza dari seluruh dunia untuk mengetahui polanya. Inilah kesimpulan yang kami ambil.
Menemukan kombinasi rasa sebenarnya tidak sama dengan mencari tahu kombinasi molekuler. Semua keju memiliki komposisi molekul yang sama, namun bukan berarti kombinasi yang baik hanya bisa diperoleh dari bahan yang terdekat.
Namun, kombinasi bahan-bahan yang serupa secara molekulerlah yang perlu kita lihat ketika kita mengubah bahan-bahan tersebut menjadi matematika. Karena benda serupa (keju yang sama) harus tetap serupa, tidak peduli bagaimana kita mendeskripsikannya. Dengan cara ini kita dapat menentukan apakah objek dideskripsikan dengan benar.
Untuk menyajikan resep dalam bentuk yang dapat dimengerti oleh jaringan saraf, kami menggunakan Skip-Gram Negative Sampling (SGNS) — sebuah algoritma word2vec, berdasarkan kemunculan kata dalam konteks.
Kami memutuskan untuk tidak menggunakan model word2vec terlatih karena struktur semantik resepnya berbeda dari teks sederhana. Dan dengan model ini, kita bisa kehilangan informasi penting.
Anda dapat menilai hasil word2vec dengan melihat tetangga semantik terdekat. Misalnya, inilah yang diketahui model kita tentang keju:
Untuk menguji sejauh mana model semantik dapat menangkap keterkaitan resep bahan-bahan, kami menerapkan model topik. Dengan kata lain, kami mencoba memecah kumpulan data resep menjadi beberapa kelompok berdasarkan keteraturan yang ditentukan secara matematis.
Untuk semua resep, kami mengetahui kelompok tertentu yang sesuai dengan resep tersebut. Untuk contoh resep, kami mengetahui hubungannya dengan cluster sebenarnya. Berdasarkan hal ini kami menemukan hubungan antara kedua jenis cluster ini.
Yang paling terlihat adalah kelas makanan penutup yang termasuk dalam topik 0 dan 1 yang dihasilkan oleh model topik. Selain makanan penutup, hampir tidak ada kelas lain yang membahas topik ini, yang menunjukkan bahwa makanan penutup mudah dipisahkan dari kelas hidangan lainnya. Selain itu, setiap topik memiliki kelas yang paling menggambarkannya. Ini berarti bahwa model kami telah berhasil mendefinisikan secara matematis arti “rasa” yang tidak jelas.
Kami menggunakan dua jaringan saraf berulang untuk membuat resep baru. Untuk tujuan ini, kami berasumsi bahwa di seluruh ruang resep terdapat subruang yang sesuai dengan resep pizza. Dan agar jaringan saraf dapat mempelajari cara membuat resep pizza baru, kami harus menemukan subruang ini.
Tugas ini mirip dengan pengkodean otomatis gambar, di mana kami menampilkan gambar sebagai vektor berdimensi rendah. Vektor tersebut dapat berisi banyak informasi spesifik tentang gambar.
Misalnya, vektor ini dapat menyimpan informasi tentang warna rambut seseorang di sel terpisah untuk pengenalan wajah dalam sebuah foto. Kami memilih pendekatan ini justru karena sifat unik dari subruang tersembunyi.
Untuk mengidentifikasi subruang pizza, kami menjalankan resep pizza melalui dua jaringan saraf berulang. Yang pertama menerima resep pizza dan menemukan representasinya sebagai vektor laten. Yang kedua menerima vektor laten dari jaringan saraf pertama dan membuat resep berdasarkan vektor tersebut. Resep pada masukan jaringan saraf pertama dan keluaran jaringan saraf kedua seharusnya cocok.
Dengan cara ini, dua jaringan saraf mempelajari cara mengubah resep vektor laten dengan benar. Dan berdasarkan ini, kami dapat menemukan subruang tersembunyi, yang sesuai dengan seluruh rangkaian resep pizza.
Saat kami memecahkan masalah pembuatan resep pizza, kami harus menambahkan kriteria kombinasi molekuler ke model. Untuk melakukan ini, kami menggunakan hasil studi bersama para ilmuwan dari Cambridge dan beberapa universitas Amerika.
Studi tersebut menemukan bahwa bahan-bahan dengan pasangan molekul paling umum membentuk kombinasi terbaik. Oleh karena itu, saat membuat resep, jaringan saraf lebih memilih bahan-bahan dengan struktur molekul serupa.
Hasilnya, jaringan saraf kami belajar membuat resep pizza. Dengan menyesuaikan koefisien, jaringan saraf dapat menghasilkan resep klasik seperti margarita atau pepperoni, dan resep yang tidak biasa, salah satunya adalah inti dari Opensource Pizza.
TIDAK | Resep |
---|---|
1 | bayam, keju, tomat, black_olive, zaitun, bawang putih, merica, kemangi, jeruk, melon, kecambah, buttermilk, lemon, bass, kacang, rutabaga |
2 | bawang bombay, tomat, zaitun, lada hitam, roti, adonan |
3 | ayam, bawang bombay, black_olive, keju, saus, tomat, minyak_zaitun, keju mozzarella |
4 | tomat, mentega, krim_keju, merica, minyak_zaitun, keju, lada_hitam, keju_mozzarella |
Open Source Pizza dilisensikan di bawah Lisensi MIT.
Golodyayev Arseniy, MIPT, Skoltech, [email protected]
Egor Baryshnikov, Skoltech, [email protected]