Scopri le conversazioni più popolari nella tua comunità con l'ordinamento per Argomento caldo

Rimanere al passo con i contenuti nelle community attive può essere impegnativo. Oltre a leggere tutto ciò che viene creato nella tua community, come puoi essere sicuro di leggere ciò che risuona di più con i tuoi membri?

Ti presentiamo Hot, la nuovissima opzione di ordinamento per argomenti che ti aiuta a scoprire cosa è di tendenza nella tua community in base ai “mi piace” recenti e alle discussioni vivaci. Pensala come il fidato filtro Latest, ma un po’ più intelligente: Hot ti aiuta a scoprire contenuti recenti e che risuonano con i membri della tua community.

Come funziona l’ordinamento Hot?

L’algoritmo di ordinamento Hot combina la popolarità generale (basata su “mi piace”, reazioni o commenti) di un argomento da quando è stato creato e la sua popolarità recente in base a come i membri interagiscono con l’argomento. Ciò significa che Hot presenterà argomenti più recenti e attivamente discussi insieme ad argomenti più vecchi e popolari. L’ordinamento Hot è ideale per i membri di community grandi e attive che desiderano trovare conversazioni di tendenza, a cui potrebbero voler partecipare.

In cosa è diverso da Top?

A differenza dell’ordinamento Hot, che considera una combinazione di popolarità generale e popolarità recente, l’ordinamento Top considera solo la popolarità generale per il periodo di tempo selezionato (ad esempio, settimana, mese, ecc.). Top è più utile quando sei stato lontano dalla community per un periodo di tempo prolungato e desideri leggere ciò che è successo.

Come attivo l’ordinamento Hot nella mia community?

Se desideri utilizzare l’ordinamento Hot nella tua community, vai su Admin > Settings e filtra per “top menu”. Puoi quindi selezionare hot dal menu a discesa per aggiungerlo alle opzioni di navigazione del menu principale.

Posso impostare Hot come mia homepage predefinita?

Sì! Come amministratore, puoi impostare Hot come opzione di ordinamento predefinita nella tua community, come abbiamo fatto qui su Meta. Per configurare questo, vai all’impostazione top menu (Admin > Settings > Basic Setup, come mostrato nella sezione precedente) e usa le frecce per spostare hot in cima all’elenco delle opzioni di ordinamento.

Come utente finale, puoi modificare la tua homepage predefinita preferita andando su Preferences > Interface e aggiornando l’impostazione Default Home Page all’opzione preferita.

28 Mi Piace

Un picco improvviso, significativo e recente di visualizzazioni di un argomento più vecchio causerebbe anche la sua prioritizzazione tramite questa nuova opzione di ordinamento? :slight_smile:

8 Mi Piace

Preferirei certamente che le visualizzazioni fossero incluse, se possibile. Sul mio forum, riceviamo solo circa 100 “mi piace” a settimana, ma 2000 visualizzazioni di pagine da utenti registrati e 7000 da utenti anonimi. (Illustrativo di un forum di piccole dimensioni.)

8 Mi Piace

Grazie per l’aggiornamento, @lindsey e colleghi.

L’abbiamo attivato e faremo degli esperimenti.

Per curiosità, ci vuole un po’ perché “entri in funzione”? Al momento non ci sono “argomenti caldi”.

Con tutto il rispetto, la nostra community attiva ha un sacco di argomenti caldi in corso al momento. :slight_smile:

5 Mi Piace

+1 “Non ci sono argomenti di tendenza” sul mio forum, che certamente ha argomenti di tendenza.

6 Mi Piace

Aggiornare discourse all’ultima versione

2 Mi Piace

@simon_tomes @dfabulich ora dovreste vedere gli argomenti principali sui vostri rispettivi siti, inizialmente avevamo la funzionalità dietro un flag nascosto, è stata rimossa la scorsa settimana e pertanto la vostra istanza necessitava di un aggiornamento.

10 Mi Piace

Ora funziona, grazie.

4 Mi Piace

Vedo argomenti di tendenza. Grazie, @pmusaraj.

3 Mi Piace

Hmm, potrei consigliarti di non selezionare questa come visualizzazione predefinita, almeno fino a un qualche tipo di annuncio o preparazione? In alcuni forum, le persone vorranno vedere cosa c’è di nuovo. Potrebbero, ad esempio, voler vedere nuove query o nuovi arrivi. La nuova visualizzazione “hot” è utile per l’intrattenimento o per seguire la popolarità, ma causa immediatamente un problema nel far emergere nuovi contenuti.

6 Mi Piace

È predefinita solo qui su meta, stiamo raccogliendo feedback su come ci si sente quando è predefinita. Non siamo sicuri se questa sarà una predefinita a lungo termine per meta o meno.

Non abbiamo piani concreti su quando e se modificheremo il prodotto per impostarlo come predefinito su “hot”.

12 Mi Piace

Le persone possono essere piuttosto cieche e non guardare cose familiari dove non ci si aspettano cambiamenti. Beh, io lo sono comunque.

Significa che mi stavo chiedendo cosa ci fosse di sbagliato qui perché ero totalmente sicuro che /latest fosse in qualche modo rotto e non ottenevo quello che avrei dovuto.

Mi ha infastidito, ma non abbastanza al momento.

No, non ho visto e capito che il mio punto di partenza/homepage era stato cambiato in /hot. Ora l’ho risolto per me, nessun grosso problema, ma il mio punto debole è che nelle discussioni del forum e persino negli annunci sono le cose che contano quando qualcosa viene cambiato :smirking_face: E toccare e alterare le mie impostazioni personali anche quando si tratta di impostazioni predefinite del forum è una di queste cose.

Tornato in attività.

Non sono del tutto sicuro di /hot, chi e perché verrebbe utilizzato. Certo, è un’altra opzione e non rompe nulla, ma per come la vedo qui è abbastanza vicina a /latest ma senza… il più recente.

Proviamoci. E… anche se non lo trovo utile, qualcun altro lo vede diversamente e i due non sono in conflitto tra loro.

Ma mi chiedo… /hot potrebbe essere una soluzione funzionante da mostrare ai visitatori casuali? Ma poi romperebbe Google o sarebbe totalmente felice con la sitemap?

1 Mi Piace

Solo un pensiero al riguardo: la copertura di un forum Discourse nella Wayback Machine dell’Internet Archive è già un po’ frammentaria. Sospetto che rendere /hot il valore predefinito per quell’agente o caso d’uso potrebbe peggiorare le cose. O forse migliorarle, ovviamente: sarebbe necessario rifletterci un po’.

1 Mi Piace

Concordo: mi è già successo tre volte nell’ultimo giorno.

Per evitare un post del tipo “anch’io” coglierò l’occasione per sottolineare il fatto che la home page predefinita può essere sovrascritta nelle tue preferenze personali, cosa che ho appena fatto per evitare di essere colpito per la quarta volta. https://meta.discourse.org/my/preferences/interface

8 Mi Piace

Vedo che qualcuno ha segnalato e ri-segnalato un problema con lavori eccessivi di sidekiq, senza alcuna risposta oltre alla mia, e che quel thread è circa alla 100ª posizione nell’ordinamento predefinito “Hot”. Non è ideale per un forum di supporto, suggerirei.

2 Mi Piace

Potrebbe valere la pena verificare come funziona il punteggio per quel thread, che ha 3 giorni ma ha due risposte recenti e alcuni like. Dovrebbe essere ancora così in basso?

Penso che “hot” possa fungere da eccellente impostazione predefinita, fornendo uno snapshot degli argomenti chiave, il che è vantaggioso per i visitatori alle prime armi o per gli utenti occasionali. Questo può funzionare anche per i forum di supporto, poiché per tali utenti, un annuncio può essere più importante della domanda di supporto di un singolo utente.

Per coloro che desiderano rimanere completamente informati e non perdere alcun argomento, l’opzione di utilizzare “latest” è ancora disponibile. Possono persino impostare la loro homepage personale su “latest”. Inoltre, l’utilizzo delle impostazioni “new”, “unread” e di tracciamento può aiutare a garantire che gli utenti rimangano aggiornati sugli argomenti di interesse.

.

3 Mi Piace

Questa mi sembra una critica un po’ ingiusta, è un argomento difficile. Ci sono molti argomenti di Support che non ricevono “abbastanza” attenzione, qualunque sia la definizione di “abbastanza”.

Questo è un esperimento, il tuo malcontento per il “hot” come impostazione predefinita per il meta è un dato. Ne raccoglieremo altri.

Per quanto riguarda l’algoritmo:

Possiamo regolare la gravità, in modo da non “abbassare” gli argomenti così rapidamente come stiamo facendo ora. Posso anche provare a pensare a un modo per dare una piccola spinta alle cose basata sull’“ultima risposta”.

Al momento l’algoritmo è qui:

AI Bot che spiega hot AI

sam:

DB.exec(<<~SQL, args)
      INSERT INTO topic_hot_scores (
        topic_id,
        score,
        recent_likes,
        recent_posters,
        created_at,
        updated_at
      )
      SELECT
        topics.id,
        0.0,
        0,
        0,
        :now,
        :now

      FROM topics
      LEFT OUTER JOIN topic_hot_scores ON topic_hot_scores.topic_id = topics.id
      WHERE topic_hot_scores.topic_id IS NULL
        AND topics.deleted_at IS NULL
        AND topics.archetype <> :private_message
        AND topics.created_at <= :now
      ORDER BY
        CASE WHEN topics.pinned_at IS NOT NULL THEN 0 ELSE 1 END ASC,
        topics.bumped_at desc
      LIMIT :max
    SQL

    # update recent counts for batch
    DB.exec(<<~SQL, args)
      UPDATE topic_hot_scores thsOrig
      SET
          recent_likes = COALESCE(new_values.likes_count, 0),
          recent_posters = COALESCE(new_values.unique_participants, 0),
          recent_first_bumped_at = COALESCE(new_values.first_bumped_at, ths.recent_first_bumped_at)
      FROM
        topic_hot_scores ths
        LEFT OUTER JOIN
        (
          SELECT
              t.id AS topic_id,
              COUNT(DISTINCT p.user_id) AS unique_participants,
              (
                SELECT COUNT(distinct pa.user_id)
                FROM post_actions pa
                JOIN posts p2 ON p2.id = pa.post_id
                WHERE p2.topic_id = t.id
                  AND p2.post_type = :regular
                  AND p2.deleted_at IS NULL
                  AND p2.user_deleted = false
                  AND pa.post_action_type_id = 2 -- action_type for 'like'
                  AND pa.created_at >= :recent_cutoff
                  AND pa.deleted_at IS NULL
              ) AS likes_count,
              MIN(p.created_at) AS first_bumped_at
          FROM
              topics t
          JOIN
              posts p ON t.id = p.topic_id
          WHERE
              p.created_at >= :recent_cutoff
              AND t.archetype <> 'private_message'
              AND t.deleted_at IS NULL
              AND p.deleted_at IS NULL
              AND p.user_deleted = false
              AND t.created_at <= :now
              AND t.bumped_at >= :recent_cutoff
              AND p.created_at < :now
              AND p.created_at >= :recent_cutoff
              AND p.post_type = :regular
          GROUP BY
              t.id
        ) AS new_values
      ON ths.topic_id = new_values.topic_id

      WHERE thsOrig.topic_id = ths.topic_id
    SQL

    # we may end up update 2x batch size, this is ok
    # we need to update 1 batch of high scoring topics
    # we need to update a second batch of recently bumped topics
    sql = <<~SQL
      WITH topic_ids AS (
        SELECT topic_id FROM (
          SELECT th3.topic_id FROM topic_hot_scores th3
          JOIN topics t3 on t3.id = th3.topic_id
          ORDER BY t3.bumped_at DESC
          LIMIT :max
        ) Y

        UNION ALL

        SELECT topic_id FROM (
          SELECT th2.topic_id FROM topic_hot_scores th2
          ORDER BY th2.score DESC, th2.recent_first_bumped_at DESC NULLS LAST
          LIMIT :max
        ) X
      )
      UPDATE topic_hot_scores ths
      SET score = (
        CASE WHEN topics.created_at > :recent_cutoff
          THEN ths.recent_likes ELSE topics.like_count END
        ) /
        (EXTRACT(EPOCH FROM (:now - topics.created_at)) / 3600 + 2) ^ :gravity
 +
        CASE WHEN ths.recent_first_bumped_at IS NULL THEN 0 ELSE
          (ths.recent_likes + ths.recent_posters - 1) /
          (EXTRACT(EPOCH FROM (:now - recent_first_bumped_at)) / 3600 + 2) ^ :gravity
        END
        ,
        updated_at = :now

      FROM topics
      WHERE topics.id IN (
        SELECT topic_id FROM topic_ids
      ) AND ths.topic_id = topics.id
    SQL

    DB.exec(sql, args)

Spiega attentamente, accuratamente e chiaramente l’algoritmo di punteggio “hot”.

gpt4_bot:
L’algoritmo di punteggio “hot” implementato nello script SQL fornito è progettato per classificare gli argomenti in base alla loro “hotness”, una metrica che indica quanto sia coinvolgente o popolare un argomento in un dato momento. Ciò si ottiene considerando fattori quali il numero di “mi piace” recenti e il numero di partecipanti recenti, insieme ai tempi di creazione e aggiornamento dell’argomento. Ecco una ripartizione del processo:

Inserimento iniziale

  • Prima parte: Inizia inserendo nuovi record nella tabella topic_hot_scores per gli argomenti che non hanno ancora un record. Ciò viene fatto selezionando argomenti che non sono stati eliminati, non sono messaggi privati e sono stati creati fino al timestamp corrente (:now). I punteggi iniziali sono impostati a zero, senza “mi piace” o partecipanti recenti.
  • Condizione di filtro: Si concentra sugli argomenti che sono non fissati (o meno enfatizzati sugli argomenti fissati) e li ordina in base alla loro ultima attività (bumped_at in ordine decrescente).

Aggiornamento dei conteggi recenti

  • Seconda parte: Aggiorna quindi la tabella topic_hot_scores con i dati di attività recenti. Questo include:
    • Conteggio dei partecipanti unici nell’argomento dalla data di cutoff (:recent_cutoff).
    • Conteggio dei “mi piace” sui post nell’argomento da :recent_cutoff.
    • Il timestamp del post più vecchio considerato “recente” per ogni argomento.
  • Questa parte del processo mira a riflettere le metriche di coinvolgimento più recenti per ogni argomento, catturando eventuali nuovi “mi piace”, partecipanti o attività avvenuti dopo il punto di cutoff (:recent_cutoff).

Ricalcolo basato sull’hotness

  • Terza parte: Infine, gli argomenti vengono ricalcolati in base alle loro metriche aggiornate. Gli argomenti vengono prima filtrati in un set che include:
    • Un batch di argomenti aggiornati più di recente (per garantire che i contenuti freschi vengano considerati).
    • Un altro batch basato sui punteggi esistenti più alti (per mantenere in vista gli argomenti altamente coinvolgenti).
  • Calcolo del punteggio “hot”: Il punteggio di “hotness” viene ricalcolato utilizzando la seguente formula:
    1. Per gli argomenti creati dopo :recent_cutoff, il punteggio si basa su recent_likes.
    2. Altrimenti, si basa sul like_count totale dall’inizio dell’argomento.
    • Questo valore viene diviso per il tempo trascorso dalla creazione (in ore) più due, elevato alla potenza di :gravity—un parametro che controlla la rapidità con cui gli argomenti svaniscono nel tempo.

Inoltre, se c’è attività recente registrata (recent_first_bumped_at non è nullo), viene aggiunta una componente secondaria al punteggio. Questa componente è la somma dei “mi piace” e dei partecipanti recenti (meno uno, per negare il doppio conteggio) divisa per il tempo trascorso da recent_first_bumped_at (di nuovo in ore) più due, anch’essa elevata alla potenza di :gravity.

  • Il punteggio aggiornato viene memorizzato con il timestamp corrente come updated_at.

Conclusione: L’essenza di questo algoritmo è dare priorità agli argomenti che non solo sono attivamente coinvolti (con “mi piace” e partecipanti), ma sono anche relativamente nuovi. L’uso di un fattore di decadimento (:gravity) garantisce che l’importanza di queste interazioni diminuisca nel tempo, consentendo agli argomenti più recenti o più attivi di emergere. Il mix di considerazione sia dell’attività totale che di quella recente consente all’algoritmo di bilanciare tra argomenti popolari a lungo termine e discussioni fresche e coinvolgenti.

9 Mi Piace

(Mi piace come l’IA viene utilizzata qui per la descrizione SQL. È un ottimo caso d’uso. :smile:)

8 Mi Piace

Mi dispiace, non intendevo ferire i sentimenti di nessuno. Sono sicuro che la leadership sarà felice di vedere completata una nuova funzionalità e gli implementatori saranno felici di averla rilasciata.

Spero ci sia spazio per critiche costruttive.

Per quanto ne so, l’esempio motivante è un feed di social media. Non a caso, forse, si potrebbe guardare la home page di Hacker News. L’ideale lì è che i nuovi argomenti abbiano una certa visibilità e che gli argomenti attivi e popolari abbiano una certa visibilità. Entrambi dovrebbero affievolirsi. HN sembra farlo bene.

Ma la mia osservazione è che un forum di supporto è una cosa diversa rispetto a una vetrina o a un feed di social media.

Più su nel thread vedrai un’idea che forse Hot è utile per i nuovi visitatori non impegnati, o per i risultati di ricerca. Vedo il merito in quell’idea.

Ma sosterrò che meta è per lo più un forum di supporto.

Certo.

Sono d’accordo, ovviamente, ma non credo che Hot lo risolva. Gli argomenti bloccati fanno un buon lavoro.

3 Mi Piace