Dnes, v dobe A.I. jazykových modelov okrem návštevnosti, konverzií alebo výkonnosti kampaní čoraz častejšie pracujeme aj s textom.

Recenzie, odpovede zo zákazníckych formulárov, správy zo zákazníckej podpory alebo vyhľadávacie dopyty z Google Search Console vedia veľmi dobre ukázať, čo ľudia hľadajú, čo ich trápi a v akej fáze rozhodovania sa nachádzajú.

Textová analýza však bola zvyčajne manuálna, alebo znamenala krok navyše.

Dáta bolo potrebné z dátového skladu načítať do Python skriptu, notebooku alebo samostatného machine learning prostredia. 

BigQuery ML tento problém výrazne zjednodušilo. AI a machine learning môžete používať priamo nad dátami pomocou SQL bez toho, aby ste ich museli presúvať mimo dátového skladu.

V tomto článku si to ukážeme na príklade funkcie AI.CLASSIFY v BigQuery, ktorú využijeme na kategorizáciu Google Search Console queries.

Čo prináša BigQuery ML

BigQuery ML rozširuje BigQuery o možnosti machine learningu a generatívnej AI. V praxi to znamená, že niektoré úlohy už nemusia začínať exportom dát do samostatného nástroja, alebo data science projektu. 

BigQuery dokáže nad existujúcimi tabuľkami pracovať napríklad s textovou klasifikáciou, generovaním štruktúrovaných výstupov, embeddingmi, prediktívnymi modelmi, importovanými modelmi alebo remote modelmi pripojenými z Vertex AI či Agent Platform.

Môžete napríklad používať tieto generatívne AI funkcie:

  • AI.GENERATE – univerzálna funkcia na generovanie textových alebo štruktúrovaných výstupov nad textovými aj neštruktúrovanými dátami.
  • AI.GENERATE_TEXT – funkcia na generovanie textu, klasifikáciu, sentiment analýzu, popis obrázkov alebo prácu s multimodálnymi vstupmi.
  • AI.GENERATE_TABLE – funkcia na generovanie výstupov vo forme tabuľky podľa vopred definovanej schémy.
  • AI.GENERATE_BOOL – funkcia vhodná na otázky s odpoveďou áno/nie, napríklad jednoduchú klasifikáciu alebo sentiment analýzu.
  • AI.CLASSIFY – funkcia na zaradenie vstupov do kategórií, ktoré si sami definujete.

Začíname s textová klasifikáciou 

Použitie AI funkcií v BigQuery si ukážeme na konkrétnom príklade.

AI.CLASSIFY je funkcia BigQuery ML, ktorá klasifikuje vstupy do kategórií, ktoré sami definujete. Pri marketingových dátach ju môžete využiť napríklad na triedenie vyhľadávacích dopytov, hodnotení, či odpovedí z formulárov.

Výhodou je, že nemusíte pripravovať označený tréningový dataset ako pri klasickom strojovom učení. Namiesto toho funkcii zadáte vstupné dáta a zoznam kategórií, podľa ktorých má model dáta klasifikovať.

Kategórie môžete definovať dvoma spôsobmi:

  • ako jednoduchý zoznam názvov kategórií,
  • alebo ako zoznam kategórií s popisom, čo jednotlivé kategórie znamenajú.

Ak je kategorizovanie nejednoznačné, môžete doplniť aj niekoľko príkladov cez argument examples. Tie pomôžu modelu lepšie pochopiť, ako má kategórie aplikovať v praxi.

Príklad: Google Search Console queries

Dáta z Google Search Console (GSC) sú hodnotné, ale často neprehľadné. Obsahujú rôzne tvary vyhľadávacích výrazov, preklepy, synonymá aj dopyty s odlišným zámerom používateľa (pri ktorých si poviete WTF?).

Niektoré sú brandové, niektoré komerčné, niektoré informačné a niektoré pre biznis nerelevantné.

Ak si dáta z GCS exportujete do Bigquery, v reporte uvidíte query, impressions, clicks alebo priemernú pozíciu. Tieto dáta však môžete obohatiť o ďalšiu vrstvu. Informáciu o tom, aký typ dopytu používateľ zadal.

A tu prichádza na rad kategorizácia.

Vezmite si naše fiktívne online kníhkupectvo DaseBook, ktoré je silným konkurentom online kníhkupectva Marekus.

Jeho kategórie môžu vyzerať napríklad takto:

  • own_brand – dopyty súvisiace s vlastnou značkou kníhkupectva, webom, prihlásením, objednávkami, doručením, vrátením tovaru, zákazníckou podporou, loyalty programom, aplikáciou alebo darčekovými kartami.
  • other_bookstore_brand – dopyty súvisiace s konkurenčnými kníhkupectvami, marketplaces, vydavateľmi alebo inými značkami, ktoré predávajú knihy.
  • commercial – dopyty s nákupným zámerom, napríklad cena, zľava, dostupnosť, porovnanie, predobjednávka, odporúčania, konkrétne názvy kníh, autori, žánre, e-booky, audioknihy alebo učebnice.
  • informational – dopyty zamerané na informácie, napríklad zhrnutia, recenzie, poradie čítania, informácie o autoroch, význam žánrov, definície, školské témy alebo otázky.
  • non_relevant – dopyty, ktoré nesúvisia s knihami, autormi, čítaním, vydavateľstvom alebo kníhkupectvom.

Takto sa z neštruktúrovaného zoznamu queries stane dataset, ktorý môžete analyzovať podľa nákupného zámeru alebo značky.

Ako to vyzerá v BigQuery

Nižšie je zjednodušený príklad použitia funkcie AI.CLASSIFY v BigQuery. Kompletný kód nájdete tu:
https://gist.github.com/dase-analytics/9a38872429009678d75942b7f24392a9 

AI.CLASSIFY(
  input => STRUCT(
    '''
    Classify the search query for a online bookstore DaseBook into one category.

    Categories:
    own_brand: bookstore brand queries, including website, login, orders, delivery, returns, support, loyalty, app, or gift cards.
    other_bookstore_brand: competing bookstores, marketplaces, publishers, or book selling brands.
    commercial: buy, price, discount, availability, comparison, preorder, best books, recommendations, titles, authors, genres, ebooks, audiobooks, or textbooks.
    informational: summaries, reviews, reading order, author info, genre meanings, definitions, school topics, or how to questions.
    non_relevant: anything unrelated to books, authors, reading, publishing, or the bookstore.

    Rules:
    Own store brand => own_brand.
    Competitor brand => other_bookstore_brand.
    Purchase intent or bare book, title, author, or genre query => commercial.
    Learning or question intent => informational.
    Unrelated query => non_relevant.
    ''' AS classification_policy,

    normalized_query AS search_query
  )
)

Dôležité je, že modelu neposielate iba názvy kategórií. Pri klasifikácii pridáte ku kategóriám aj ich popis. Ten pomáha modelu lepšie pochopiť, čo má jednotlivá kategória (label) znamenať.

Pri klasifikácii je to často rozdiel medzi použiteľným výstupom a náhodným zoznamom priradených kategórií. Ak sú kategórie príliš všeobecné, výsledky môžu byť menej konzistentné.

Ak sú popisy jasné, analytik má väčšiu šancu dostať výstup, ktorý sa dá použiť v reportingu aj ďalšej analýze.

Ak je rozhodovanie medzi kategóriami neurčitejšie, môžete doplniť aj examples. Tie ukážu modelu konkrétne vstupy a očakávané kategórie, čo je užitočné najmä pri subjektívnejších, alebo menej jednoznačných klasifikáciách.

Čo dostanete ako výstup

Výstup AI.CLASSIFY závisí od toho, ako funkciu nastavíte.

Ak nepoužijete argument output_mode, funkcia vráti jednu kategóriu ako STRING. V našom príklade by teda každá query dostala jeden label, napríklad commercial. Toto je defaultné správanie.

Ak nastavíte output_mode, funkcia vráti pole kategórií. Pri output_mode => ‚single‘ bude pole obsahovať jednu kategóriu. Pri output_mode => ‚multi‘ môže obsahovať viac kategórií, ak vstup patrí do viacerých typov naraz.

V ďalšom kroku môžete tento výstup spracovať v SQL a pripojiť ho späť k pôvodným dátam z Google Search Console. Namiesto tabuľky, v ktorej máte iba query a výkonové metriky, získate dataset obohatený o typ dopytu.

ai v bigquery DASE BLOG

Reálny príklad z BigQuery. Vyhľadávacie dopyty sú pre istotu zatreté 🙂  

Koľko to stojí

Používanie AI funkcií v BigQuery nie je zadarmo. Pri väčšom množstve dát môže mať klasifikácia citeľný vplyv na mesačnú faktúru.

Pri optimalizovanom nastavení to však môže byť pár eur mesačne. 

Náklady ovplyvňuje najmä zvolený model, počet spracovaných riadkov a počet tokenov vo vstupe. Pri AI.CLASSIFY je tento bod dôležitý najmä preto, že funkcia pri štandardnom použití volá LLM model pre každý riadok v datasete. Ak teda klasifikujete veľa Search Console queries, nerastie vám len objem dát v tabuľke, ale aj počet inferencií (volaní) a tokenov, ktoré posielate modelu.

Preto je rozumné nezačínať kompletnou históriou dát. Vyberte si menšiu vzorku, otestujte kategórie a ich popisy, skontrolujte kvalitu výstupu a až potom sa rozhodnite, aký objem má zmysel klasifikovať pravidelne.

Pri väčších objemoch dát môžete zvážiť aj optimization_mode => ‚MINIMIZE_COST‘.

Tento režim je dostupný pre AI.CLASSIFY a AI.IF a je určený na zníženie spotreby tokenov a latencie pri veľkých datasetoch. BigQuery vtedy využíva embeddingy a lokálny distilled model, ktorý spracuje väčšinu riadkov, namiesto toho, aby každý riadok posielal priamo do vzdialeného LLM.

Táto možnosť je zatiaľ v režime Preview a má svoje obmedzenia, napríklad potrebu aspoň 3 000 riadkov a nepodporuje output_mode => ‚multi‘.

Ako to použiť pre SEO

Pre SEO je najväčšia hodnota v tom, že výkon prestanete pozerať iba cez jednotlivé queries.

Ak máte dopyty rozdelené napríklad na own_brand, commercial, informational alebo non_relevant, môžete podľa nich analyzovať napr. zobrazenia a kliknutia.

Takýto pohľad pomáha oddeliť brandový dopyt od nebrandového, komerčné výrazy od informačných a relevantné dopyty od tých, ktoré s webom nesúvisia.

Pri veľkých exportoch z Google Search Console je to praktickejšie než manuálne prechádzať tisíce riadkov. Ľahšie uvidíte napríklad to, či rast impressions ťahajú relevantné komerčné dopyty, informačný obsah alebo len brandové vyhľadávania.

Príklad otázok:

  • Aká časť organickej návštevnosti pochádza z dopytov súvisiacich s vlastnou značkou?
  • Aká časť prichádza z komerčných nebrandových dopytov?
  • Rastú informačné dopyty v čase?
  • Aký veľký podiel tvoria nerelevantné queries?
  • Ktoré komerčné dopyty majú vysoký počet impressions, ale nízke clicks alebo CTR?

Ako to použiť pre Google Ads

Rovnaká kategorizácia môže pomôcť aj pri analýze plateného vyhľadávania.

Vyexportujete si komerčné dopyty s vysokou viditeľnosťou a pozrieť sa, ktoré z nich ešte nemáte pokryté v kampaniach.

Takéto výrazy môžete následne použiť ako:

  • nové exact alebo phrase match keywords,
  • základ pre nové reklamné skupiny podľa produktovej alebo tematickej oblasti,
  • vstup pri testovaní landing pages, najmä ak má query slabé organické pokrytie,
  • search themes pre Performance Max kampane, ak to dáva zmysel pre daný účet.

Užitočná je aj opačná stratégia. Queries označené ako non_relevant môžu slúžiť ako kandidáti na negatívne kľúčové slová.

Pomáhajú odhaliť opakujúce sa nerelevantné výrazy, cudzie značky, sociálne siete, banky, retailové značky, entertainment témy alebo iné dopyty, ktoré nesúvisia s vašou ponukou.

To môže byť praktické najmä pri čistení broad match, Dynamic Search Ads alebo Performance Max trafficu.

Záver

BigQuery dnes nemusí slúžiť iba na uloženie a jednoduchú analýzu marketingových dát. Vďaka BigQuery ML a AI funkciám môžete priamo v dátovom sklade klasifikovať text, generovať štruktúrované výstupy, vytvárať embeddingy alebo pracovať s LLM modelmi.

Tak čo, skúsite to?