Özel | Microsoft Zhou Ming: Doğal dil diyalog motoru, içindeki derin öğrenme uygulamasının ayrıntılı açıklaması

Bu makale var 6633 kelime , Okumanız tavsiye edilir 22 dakika .

Bu içerik şunlardan seçilmiştir: Zhou Ming, Dekan Yardımcısı ve Microsoft Research Asia Baş Araştırmacısı 6 Nisan 2017'de Tsinghua Üniversitesi'nde "Programlamanın Güzelliği Yarışması" nın açılış töreninde paylaşma. Microsoft'un ev sahipliği yaptığı ve Elektrik ve Elektronik Mühendisleri Enstitüsü (IEEE) tarafından ortaklaşa düzenlenen 2017 Programlamanın Güzelliği Yarışması, Tsinghua Üniversitesi'nde başladı. Bu yıl Programlamanın Güzelliği Yarışmasının beş oturumunu başarıyla gerçekleştirdi ve bu yıl tamamen yükseltildi. Öğrencilerin en son teknolojik kavramları anlamasına ve öğrenmesine, yapay zeka çağında popüler teknolojileri ve geliştirme araçlarını uygulamasına ve takım yarışması yoluyla öğrencilerin işbirliğine dayalı iletişim becerilerini geliştirmesine yardımcı olmayı hedefliyor , Ve sonra genç öğrencilerin sıcak sorunları teknik pratikle çözme konusundaki kapsamlı becerilerini geliştirin.

Konuşmanın tam metni aşağıdaki gibidir (metin içeriği biraz basitleştirilmiştir):

Bilim ve mühendislik öğrencileri, saf bilim ve teknolojide çok iyidirler. Aslında, teknoloji ve beşeri bilimlerin birleşimi daha ilginçtir.Umarım, programlamanın güzelliği yarışmasına katılırken, öğrenciler beyinlerini açıp bazı harika fikirler ortaya çıkarabilirler. Kıdemli, daha iyisini yap.

Bugün tanıştırmak istiyorum Doğal dil diyaloğu . Aslında, Microsoft Xiaoice, insan ve bilgisayar arasındaki diyaloğu simüle ediyor. Bilgisayar metin, resim veya sesi alır, içeriği tanır ve ardından uygun bir yanıt verir. Bazı yanıtlar çok ilginç, insanlara bilgisayarın arkasında oturuyormuş gibi hissettiriyor, ancak bazen yanıtlar tatmin edici değil ve bu sefer programlamanın güzelliğinden beklediğimiz şey bu. Umarım herkes insan-makine diyaloğunun yeniliğine katılır. Bu süreçte insan-bilgisayar diyalogu daha iyidir.

Ekibimiz, Microsoft'ta doğal dil insan-bilgisayar diyaloğu üzerine araştırma yapıyor ve Xiaoice'un temel doğal dil işleme teknolojisini sağladı. Aşağıda insan-makine diyalog mekanizmasını tanıtacağım, umarım herkese yardımcı olur.

İnsan-bilgisayar diyaloğunun üç seviyesi vardır, biri sohbet, biri Soru-Cevap, diğeri diyalog , Yani belirli bir görev için bir diyalog. Örneğin, bir şey satın almak istediğimde, içeri girer girmez satış elemanı merhaba, "Merhaba!" Diyecek ve ben "Merhaba" yanıtı vereceğim. Sonra "Ne görmek istiyorsun?" Diye sordu ve "İki paket hazır erişte almak istiyorum" dedim. "Hangi marka? Bu üç yuan bir çanta, bu beş yuan bir çanta" diye sordu, "O zaman bir çantaya üç yuan ihtiyacınız var" dedi. "Peki, ödeme için Alipay veya WeChat mi kullanıyorsunuz? ? "" WeChat "dedim. "Tamam, satın aldığın şey bu" dedi.

Aslında her gün ürettiğimiz bu sohbetler içerisinde en temel üç insan entelektüel faaliyetinin yer aldığı fark edilebilir. İlki, sohbet edin. Sohbet, genellikle insanları birbirine yaklaştırmak için çok fazla önemli içeriğe sahip değildir; ikincisi, "ne satın alırsınız", "bu anlık erişte ne kadar" gibi soru ve cevaptır, bu bir sorudur. Amacı bilgi sağlamaktır; üçüncüsü, belirli niyetleri olan bir diyalogdur. Örneğin, satış görevlisi niyetimin hazır erişte satın almak olduğunu biliyordu ve bu niyet etrafında benimle amaca yönelik bir diyalog kurmaya başladı. Sonunda ödemeyi tamamladım ve satış elemanı hazır erişteleri ellerime koydu. Bu üç beceri, insan-bilgisayar diyaloğu araştırmamızdaki en önemli üç beceridir.

Son yıllarda, derin sinir ağları yavaş yavaş geleneksel istatistiksel makine öğreniminin yerini aldı ve ana akım araştırma yönü haline geldi. Şimdi, doğal dil teknolojisi derin öğrenme ağlarına yöneldi ve diyalog sistemimiz de derin öğrenme ağlarını kullanıyor, bu yüzden önce sizi derin öğrenme ağlarıyla tanıştırayım.

Derin öğrenme ağının genellikle bir giriş katmanı ve bir çıkış katmanı vardır.Ortasında sinir ağları olan N katman vardır.Bağlantı yöntemi ile farklı ağırlıklarda rol oynarlar.Giriş yaparken, sinir ağının ağırlığına göre katman katman İleri itin ve bir çıktı alacaksınız.

Aslında, eğitim sırasında birçok örnek var ve girdi ve çıktı birbirine karşılık geliyor. Sinir ağına giriş yapılırken bazen sonuçların yanlış olduğu tespit edilir, ardından bununla cevap arasındaki boşluğa göre parametreleri geri yayınlayabilir ve düzeltebilirsiniz. Ağ trendi gittikçe daha iyi hale geldiğinde, ağ belirli bir zamanda birleşebilir ve sonra ağ belirli bir akıllı davranışa ulaşır Bu en basit sinir ağı mimarisidir.

Ortak olanlardan bahsedeyim Evrişimli Sinir Ağı Temel ilke için, örnek olarak düşük yoğunluklu, düşük boyutlu bir evrişimli sinir ağını ele alalım. Aslında baştan başlar ve küçük bir pencerede kayar Her pencere belirli bilgileri keser ve evrişim için çıkarır Buna evrişim denir. Ve her kayma bir değer alacak ve sonunda bir evrişim sonucu alacaktır. Genellikle, maksimum değer, evrişimden sonra çıkarılabilir ve tüm bu süreç, bilgi çıkarma sürecini yansıtır.

Daha yaygın olarak kullanılan ikincisi İki boyutlu evrişim , Matriste kayacak küçük bir pencere bulmaktır ve her pencere evrişim yoluyla bir değer elde eder ve ardından son sonucu almak için tüm pencerelerin kayabileceği pozisyonları doldurur.Bu iki boyutlu evrişim sürecidir.

Üçüncü denir Tekrarlayan sinir ağı (RNN, tekrarlayan sinir ağı olarak da adlandırılır) , Bir dizi dizesinin sürecini açıklar. Herhangi bir pozisyonun çıktısı, önceki pozisyonun veya önceki durumun pozisyon bilgisi ile sınırlıdır.Gizli durum bilgisini ht-1 olarak adlandırıyoruz, ki bu mevcut giriş dizgisinin bilgisiyle birlikte mevcut görünmez durumu ht alacak ve sonra buna göre Mevcut gizli durum, her kelimenin girdi olasılığını tahmin eder.

Döngüsel sinir ağı eğitildikten sonra, herhangi bir cümle böyle bir döngüsel sinir ağından geçebilir.Sonuç N gizli durumdan oluşur ve son gizli durum, önceki tüm cümlelerin ve kelimelerin bilgilerini miras aldığını düşünebiliriz. .

Elbette, her konum aynı zamanda cümlenin şimdiye kadarki bilgilerini de temsil eder, bu yüzden onu kullanırken, ya son düğümü kullanın ya da mevcut cümlenin kodlamasını temsil edecek bir vektör oluşturmak için tüm düğümleri kullanın. Bu şekilde, eğitim nispeten basittir.Şimdi bir cümle gelir ve süreçten geçer ve her konum kelimesinin çıktı olasılığını elde edebilirsiniz.Bu olasılıkların çarpımı, bu tekrarlayan sinir ağının kayıp fonksiyonudur ve sonra kayıp fonksiyonuna göre geri yayılımı kullanın Ağın bağlantı gücünü düzeltmek ve nihayet ağın stabilize olmasını beklemek için tekrarlayan sinir ağını alabilirsiniz.

Bu nedenle, büyük ölçekli bir külliyat olduğu sürece, bu eğitim yöntemi mevcut derlemedeki her bir cümleyi tanımlayan tekrarlayan bir sinir ağı oluşturacaktır.

Az önce bahsedilen üç diyalogun işlevlerini tanıtmama izin verin. Birincisi, sohbet nasıl yapılır ve böyle bir insan-makine diyalogu nasıl oluşur? Aslında, genellikle iki yol vardır. Biri çok basit; çevrimiçi forumlarda, mikrobloglarda veya web sitelerinde ortaya çıkan diyalog cümlelerini çıkarmak ve bunları bir eğitim külliyatı olarak kullanmak. Bir cümle geldiğinde, sistem bu cümleye en çok benzeyen cümleyi külliyattan bulacaktır ve bu cümleye karşılık gelen yanıt, bilgisayarın yanıtı olarak doğrudan verilebilir. Bu yöntem basit ve kaba görünse de bazen oldukça etkilidir.

Bununla birlikte, bazen, sistem tarafından bulunan cümle birçok yanıta karşılık gelebilir ve mevcut girdi cümlesine hangi cevabın en uygun olduğunu bilemez. Öyleyse burada bir eşleştirme süreci olmalı, yani, bütünlükteki girdi cümlesinin ve yanıtın anlamsal olarak ilişkili veya tutarlı olup olmadığına nasıl karar verileceği.

Burada birçok ölçüm yöntemi var ve bunlardan ikisini tanıtacağım.

Birincisi, aşağıdaki şekilde gösterildiği gibi, q o anda girilen cümleyi temsil eder, r mevcut cevabı temsil eder. Q ve r'nin ilişkili veya tutarlı olup olmadığını görmek istiyorsanız, ona bir puan vermelisiniz. Birden fazla seçenek varsa, önce her şeyi bir yere koyun ve en iyi puanı verin, yani aslında tüm cümleyi kodlayın ve soruyu ve yanıtı kodlayın. Kodlama yöntemi döngüsel bir sinir ağı veya evrişimli bir sinir ağı olabilir En basit yöntem her boyutun ortalamasını almak ve son olarak iki vektör arasındaki mesafeyi hesaplamaktır.

İkinci yöntem de nispeten basittir; bu, sorunun her kelimesi ile cevabı arasındaki bir mesafeyi hesaplamak, böylece bir benzerlik matrisi oluşturmak, evrişim yoluyla matris dönüşümü bilgisini elde etmek ve ardından maksimum havuz katmanı olan matrisi almaktır. Boyut küçülür ve küçülür ve sonunda bir düğüm olabilir. Bunun birden fazla dönüşümü olabilir, bu nedenle sonunda bir dizi düğüm olacaktır, tüm düğümler aslında iki dizge arasındaki mesafeyi temsil eder ve daha sonra cümle birden fazla algı katmanıyla hesaplanabilir.

Ancak, bu yöntemlerin bir sorunu var, yani Kısa dizeleri eşleştirirken kendi bilgilerinize çok fazla güvenmek . Her gün konuştuğumuzda, genellikle geçmişimiz ve sağduyumuz olur Söylediğimiz her cümlenin bir eşanlamlılar sözlüğü vardır. Örneğin Tsinghua Üç Kantini'ne geldiğimde bunun arkasındaki konu terimleri yemek, kahvaltı, öğle yemeği, akşam yemeği, fiyat, yemek kartı vb. Olabilir. Bu terimler bununla ilgilidir ve bu konu terimleri eşleştiklerinde yansıtılmalıdır. .

Nasıl yansıtılır? Önce giriş cümlesinin N konu kelimesini bulun ve ardından cevaplanabilecek cümlelerin konu kelimelerini bulun ve eşleştirme sürecini geliştirmek için konu kelimelerini kullanın. Bu aynı zamanda iki kelime dizgisini hesaplamak için sinir ağından, artı konu kelime büyütme benzerliğini de kullanır.

Spesifik algoritma aslında Dikkat modeli (dikkat modeli) aracılığıyla her konu kelimesinin mevcut cümle ile eşleşme gücünü hesaplayın , Tüm konu kelimeleri, mevcut arka plan konu kelimelerinin gücünü yansıtacak şekilde farklı güçlerine göre ağırlıklandırılır ve ardından benzerliği hesaplamak için orijinal cümle ile eşleştirilir.

Ayrıca şunları da yapabiliriz: Konu terimlerini Bilgi tabanı olarak adlandırın (bilgi grafiği) , Hangi bilgilerin mevcut girdiden çıkarılması gerektiğini, hangi bilgilerin çıkmaması gerektiğini, hangi bilgilerin destekleneceğini, hangi bilgilerin doğrudan kullanılabileceğini vb. Tanımlamak için konu terimlerini kullanın. Aslında, belirli uygulamada, bir cümleyi temsil etmenin üç yolu olduğunu ve her cümleyi iki cümle arasında temsil etmenin üç yolu olduğunu görebilirsiniz. Mesafeyi hesaplamak için ikili temsil yöntemini kullanın ve son olarak bir vektör elde edin ve ardından çok katmanlı algı yoluyla İki giriş dizisi arasındaki mesafeyi karakterize etmek için bir değer alın. Bu nedenle, bu iki giriş dizisi çıplak değildir ve doğrudan eşleşmez, ancak çevredeki bilginin temsil ettiği konu terimleriyle zenginleştirilir.

Yukarıdakiler aramaya dayalı bir yanıt yöntemidir.Ayrıca üretken bir model de kullanabiliriz.Aslında üretken model aynı zamanda bir sinir ağının yolunu da alır. Bir cümle girin, ardından tekrarlayan sinir ağı yoluyla kodlayın ve ardından her kelimeyi kod çözme işlemi aracılığıyla çıkarın. Makine çevirisi diller arası bir çıktı olduğunda, orijinal metin çeviriyi çıkarır. Eski şiirlerde, ilk cümle ikinci cümleyi oluşturur. Burada sistematik bir yanıt almak için bir kullanıcının sorusu girilir.

Bu bir üretme sürecidir.Şekilin alt kısmının bir cümlenin kodlaması olduğunu görebilirsiniz.Bu kodlama her kelimenin çıktısına rehberlik etmek için kullanılır.Çıktı alınırken hem orijinal cümlenin kodlaması hem de önceki kelimelerin çıktısı dikkate alınır. Ve öndeki gizli durum nedir ve nihayet çıktıyı çıktının sonuna kadar geçirir.

Aslında, Çıktı alma tutarlı olmadığında, tüm kelimeler eşit olarak ele alınır . Bazı kelimelerin görece yüksek ağırlıkları vardır ve bu, belirli bir kelime türü çıktılanırken Dikkat modeli tarafından yansıtılır, hangi kaynak kelimenin en fazla etkiye sahip olduğu, bu da çıktı olasılığına yansıtılmalıdır.

Geleneksel RNN ve dikkat modelini kullanmak, soru girişi ve sistem yanıtı sağlayabilir. Ama cevaplarının çok sıkıcı ve zengin olmaması gibi birçok sorunu da var, ne yapılmalı?

Cevabı zenginleştirmek için dış bilgiyi kullanmalıyız . Konu kelimeleri ile anlamı artırabiliriz. Orijinal cümle, her konumdaki kelimelerin çıktısını almak için Dikkat modelini kullanabilir ve ardından cümle ile ilgili konu kelimelerini geliştirebilir, konu kelimelerini kodlayabilir ve ayrıca çıktıyı tahmin etmek için bir Dikkat modeli kullanabilir. Kaynaktan gelen bilgiye ek olarak, bir sözcüğün çıktısı da konu sözcüğü tarafından sınırlandırılır Nihai çıktı olasılığı, iki çıktı tahmin sonucunun olasılıklarının toplamıdır ve optimum çıktı seçilir.

Az önce söylediklerim tek bir turdu, ama şimdi birden çok turda nasıl cevap verileceğini, çünkü insanlar konuşurken sadece mevcut cümleye bakmakla kalmayıp bağlamı da dikkate aldıkları için, birden fazla tur bilgi dikkate alınmalıdır. Bu nedenle, tüm konuşmayı (oturum) dikkate alın, oturumu kodlayın ve çıktı yanıtını tahmin etmek için oturumu kullanın.

Hesaplarken, bu tür birkaç modelimiz var. Şu anda aramaya dayanıyor, Ayrıca, çoklu algı katmanları ile çoklu diyalog turlarını simüle edebilirsiniz. . Daha önce ortaya çıkan her bir cümleyi kodlayan her kodlama, bir cümlenin kodlanmasıyla tüm cümlenin bilgisini yansıtabilir ve ardından Dikkat modeli üzerinden hedefle bağlantı kurabilir ve son olarak cümleye dayalı Dikkat modeli ile bunu tahmin edebilir. Olarak anlayabilirsin Cevap verdiğimizde, sadece hangi cümlenin önemli olduğunu değil, aynı zamanda o cümledeki hangi kelimenin önemli olduğunu da görmeliyiz, bu yüzden bu bir çift katmandır. Dikkat modeli .

Yukarıdakiler, sohbetin yanı sıra Soru-Cevap ve diyalog için bir giriş niteliğindedir.

Soru-Cevap, kullanıcının bir sorusu olduğu anlamına gelir. Sistem soruyu anlamalı ve ardından soruyu cevaplamak için sistemin tüm kaynaklarını kullanmalıdır. Kaynaklar, SSS'ler, belgeler, tablolar, bilgi grafikleri vb. Olabilir, hangisinin yanıtlandığı, hangisinin yanıt olduğunu gösterir. Soruyu cevaplayabilecek birden fazla kaynak varsa, çıktı için en olası olanı seçeriz.

Basitçe söylemek gerekirse, Bilgi tabanının (bilgi haritası) iki yolu vardır, biri Kullanıcıların sorunlarının anlamsal olarak anlaşılması , Genellikle Anlamsal Ayrıştırmayı (anlamsal analiz) kullanın, CCG, DCS ve makine çevirisi gibi birçok anlamsal analiz türü vardır. Bir cümlenin mantıksal temsilini elde eder ve daha sonra mantıksal temsile dayalı olarak onu bilgi tabanında arar ve düğümün ne olduğunu, ilişkinin ne olduğunu vb. Bulur Bu şekilde doğal olarak bulunabilir.

Son yıllarda popüler olan başka bir yol Bilgi erişim yöntemi . Örneğin, "Barack Obama nerede doğdu?" - Obama cümlesinde bir varlık belirir Bilgi tabanının tamamlandığını varsayarsak, sistem cevabın Obama ile ilişkili bir düğüm olması gerektiğini belirleyecektir. Böylelikle, yarıçap olarak Obama ile bilgi tabanına gidebilir, onunla ilgili tüm kelimeleri kazıp sonra sistem benzerliği hesaplamalıdır.Benzerliği hesaplarken, bilgi grafiğinin belirli bir bilgi birimini kullanmanın bir yolu vardır. Dil temsili, kelime gömülü çok boyutlu bir vektör olarak da ifade edilebilir. Şu anda, Ranker olmak şu anki sorudan biraz uzaktır ve en yakın olanı cevabıdır. Bu teknolojileri ayrıca XiaoIce'in soruları yanıtlaması, sizinle sohbet etmesi vb. Gibi Microsoft XiaoIce'e uyguladık. Ayrıca Jingdong Mall'da bir alışveriş rehberi yaptık.

Jingdong Mall'da bir diyalog süreci aracılığıyla alışveriş rehberi nasıl uygulanır? Aslında, kullanıcı girdisinin amacını tespit etmektir.Eğer tespit edilmezse, sistem bunun bir sohbet olabileceğine karar verir ve ardından sohbet motoru aracılığıyla iletişim kurar. Bir niyet tespit edilirse, örneğin, kullanıcının bir otel rezervasyonu yapmak istediği biliniyorsa, o zaman mevcut durumu ve hangi bilgilerin doldurulacağını kaydetmek için karşılık gelen bir otel-rezervasyon diyalog durum tablosu vardır.

Sistem hangi bilgileri dolduracağını bildiğinde, kullanıcının cevaplaması için karşılık gelen bir soru oluşturacaktır.Kullanıcı cevapladıktan sonra, sistem bilgileri çıkaracak ve tüm bilgiler doldurulana kadar bu tabloya dolduracak ve bu görev için diyalog tamamlanacaktır. süreç.

Bu, sorunu anlamayı, sorunda hangi bilgilerin yakalanması gerektiğini ve durum aktarımı, boşluk doldurma veya değiştirme gibi diyalog yönetimini, diyaloğu başlatmak için yeni bir alan seçmeyi ve hangi boşluğu dolduracağınıza karar vermeyi içerir. O zaman diyaloğun nasıl oluşturulacağı, kullanıcının bu soruyu doğal olarak yanıtlamasına ve böylelikle sistemin ihtiyaç duyduğu bilgileri elde etmesine olanak tanır.

Bugün sizi kısaca üç anahtar teknolojiyle tanıştırdım.Bu üç teknolojinin her biri kolay değil.Belirli sonuçlar elde etmemize rağmen, çözülmesi gereken birçok sorun var.Ayrıca bu alanı ilerletmek için kendi bilgeliğinizi kullanmayı dört gözle bekliyoruz. Dahası, sorunu daha iyi çözün.

içinde Gelecekte üç önemli şey var Önemli, ilki nasıl değiştirileceğidir Bağlamı veya çoklu diyalog turlarını modellemek için iyidir Şu anda, hala nispeten kaba bilgi temsil yöntemlerini kullanıyoruz. Önceki makalede hangi spesifik bilgilerin göründüğünü belirlemenin kesin bir yolu yoktur.Gelecekte, gelecekteki konuşmaları yönlendirmek için bu bilgileri kaydetmek için bilgi çıkarma yöntemlerini kullanabiliriz.

ikinci, Kişiselleştirilmiş bilgiler, kişiselleştirilmiş yanıtların oluşturulmasına nasıl rehberlik edebilir? . Son olarak, yanıtlar şimdi aynı: Yetişkinler, çocuklar, erkekler ve kızlar hepsi aynı olabilir, ancak insanlar gerçek konuşmalarda farklı insan gruplarıyla karşılaşır. Sohbeti daha renkli hale getirmek için yanıt stili otomatik olarak nasıl ayarlanır? , Bu aynı zamanda güncel bir sorundur.

ULA roket özelleştirme hizmetini başlattı, deneyimli havacılık devi yeni girişimler başlattı
önceki
11'inde 14:00 itibariyle Jingdong tarafından verilen sipariş miktarı 135.4 milyarı aştı. Sichuan'ın "Chop Hand Party" ülkede dördüncü sırada yer aldı.
Sonraki
Ayrıcalıklı | Zhao Linlin: Deneyim noktaları ile hikaye çizgilerinin mükemmel birleşimi - VR ve filmin birleşimi
Özel | Lu Yun: Sanal Gerçeklik - Devam eden eğitim devrimi hakkında bilmeniz gerekenler!
Gerçekten 43 yaşında olabilir mi? Bir UEFA Şampiyonlar Ligi onu sunaktan çıkardı ve Paris başkanı tamamen kızdı
Avusturya'daki Ulusal Masa Tenisi Şampiyonasında "Evde Tek Başına" Ding Ning ve Fan Zhendong'u kazandı
Özel | Luo Hong: Tıp endüstrisindeki sanal gerçeklik (VR) teknolojisi bunu gelecekte yapabilir
Birinci lig! Dört Premier Lig takımının tümü Şampiyonlar Ligi çeyrek finallerine katılarak 10 yıl önceki refahı yeniden yaratabilir.
Yuwen Chengdu 331 "çılgın çift" günü: sadece bulmak ve tanışmak için Asya ve Avrupa'da kendi kendine sürüş (Bölüm 2)
Microsoft Build 20171. Gün | Windows 10 sistemi 500 milyondan fazla cihazı kapsar, uç bilgi işlem ve yapay zeka öne çıkan özelliklerdir
Neymar, Şampiyonlar Ligi düdüğü çaldı! Süper Lig'de bu tür davalar oldu ve Li Xuepeng de faulden mahkum edildi.
Özel | LinkedIn Genel Merkezi Veri Bilimi Ekibinin Sırrını Açıklıyor
Kız kardeşler ve karı koca ortakları "Tai Chi Rongcheng" Chengdu'nun ilk çift karışık çift Tai Chi Şampiyonası başladı
Boş gol + 8 gol sıkıntısı yok! Mourinho bir zamanlar soğuk saraya attı, şimdi 3 maçta 6 golle karşılık verdi.
To Top