Entdecke beliebte Gespräche in deiner Community mit Hot-Topic-Sortierung

Mit den Inhalten in aktiven Communities Schritt zu halten, kann schwierig sein. Wie können Sie sicher sein, dass Sie das lesen, was bei Ihren Mitgliedern am besten ankommt, abgesehen davon, alles zu lesen, was in Ihrer Community erstellt wurde?

Wir stellen vor: Hot, die neueste Option zum Sortieren von Themen, mit der Sie entdecken können, was in Ihrer Community basierend auf aktuellen Likes und lebhaften Diskussionen angesagt ist. Stellen Sie es sich wie den bewährten Filter Latest vor, aber etwas intelligenter – Hot hilft Ihnen, Inhalte zu entdecken, die aktuell und bei Ihren Community-Mitgliedern beliebt sind.

Wie funktioniert die Hot-Sortierung?

Der Hot-Sortieralgorithmus kombiniert die Gesamtpopularität (basierend auf Likes, Reaktionen oder Kommentaren) eines Themas seit seiner Erstellung mit seiner aktuellen Popularität, basierend darauf, wie Mitglieder mit dem Thema interagieren. Das bedeutet, dass Hot neuere, aktiv diskutierte Themen neben älteren, beliebten Themen hervorhebt. Die Hot-Sortierung ist ideal für Mitglieder in großen, aktiven Communities, die Gespräche finden möchten, die gerade im Trend liegen und an denen sie sich beteiligen möchten.

Wie unterscheidet sie sich von Top?

Im Gegensatz zur Hot-Sortierung, die eine Kombination aus Gesamtpopularität und aktueller Popularität betrachtet, berücksichtigt die Top-Sortierung nur die Gesamtpopularität für den ausgewählten Zeitraum (z. B. Woche, Monat usw.). Top ist am nützlichsten, wenn Sie längere Zeit nicht in der Community waren und nachlesen möchten, was passiert ist.

Wie aktiviere ich die Hot-Sortierung in meiner Community?

Wenn Sie die Hot-Sortierung in Ihrer Community nutzen möchten, gehen Sie zu Admin > Einstellungen und filtern Sie nach „Top-Menü“. Sie können dann hot aus dem Dropdown-Menü auswählen, um es zu den Optionen für die Navigation im Top-Menü hinzuzufügen.

Kann ich Hot zur Standard-Startseite machen?

Ja! Als Administrator können Sie Hot als Standard-Sortieroption in Ihrer Community festlegen, wie wir es hier auf Meta getan haben. Um dies einzurichten, gehen Sie zu den Einstellungen für das Top-Menü (Admin > Einstellungen > Grundlegende Einrichtung, wie im obigen Abschnitt gezeigt) und verschieben Sie mit den Pfeilen hot an den Anfang der Liste der Sortieroptionen.

Als Endbenutzer können Sie Ihre bevorzugte Standard-Startseite ändern, indem Sie zu Einstellungen > Oberfläche gehen und die Einstellung Standard-Startseite auf Ihre bevorzugte Option aktualisieren.

28 „Gefällt mir“

Würde ein plötzlicher, signifikanter und kürzlicher Anstieg der Aufrufe eines älteren Themas dazu führen, dass es auch über diese neue Sortieroption priorisiert wird? :slight_smile:

8 „Gefällt mir“

Ich würde Ansichten auf jeden Fall bevorzugen, wenn möglich. In meinem Forum erhalten wir nur etwa 100 Likes pro Woche, aber 2000 Seitenaufrufe von angemeldeten Benutzern und 7000 Seitenaufrufe von anonymen Benutzern. (Illustrativ für ein eher kleines Forum.)

8 „Gefällt mir“

Danke für das Update, @lindsey und Kollegen.

Wir haben es aktiviert und werden damit experimentieren.

Interessanterweise, dauert es eine Weile, bis es “greift”? Im Moment gibt es “keine heißen Themen”.

Bei allem Respekt, unsere aktive Community hat im Moment viele heiße Themen am Laufen. :slight_smile:

5 „Gefällt mir“

+1 „Es gibt keine heißen Themen“ in meinem Forum, das sicherlich heiße Themen hat.

6 „Gefällt mir“

Discourse auf die neueste Version aktualisieren

2 „Gefällt mir“

@simon_tomes @dfabulich Sie sollten jetzt die Top-Themen auf Ihren jeweiligen Websites sehen. Wir hatten die Funktion ursprünglich hinter einem versteckten Flag, das letzte Woche entfernt wurde, und daher musste Ihre Instanz aktualisiert werden.

10 „Gefällt mir“

Es funktioniert jetzt, danke.

4 „Gefällt mir“

Ich sehe angesagte Themen. Danke, @pmusaraj.

3 „Gefällt mir“

Hmm, darf ich empfehlen, diese Ansicht nicht als Standard auszuwählen, zumindest nicht bis zu einer Ankündigung oder Vorbereitung? In einigen Foren möchten die Leute sehen, was es Neues gibt. Sie möchten zum Beispiel neue Abfragen oder neue Ankünfte sehen. Die neue „Hot“-Ansicht ist nützlich zur Unterhaltung oder um die Popularität zu verfolgen, verursacht aber sofort das Problem, neue Inhalte aufzudecken.

6 „Gefällt mir“

Es ist nur hier auf Meta standardmäßig eingestellt, wir sammeln Feedback, wie es sich anfühlt, wenn es standardmäßig eingestellt ist. Wir sind uns nicht sicher, ob dies ein langfristiger Standard für Meta sein wird oder nicht.

Wir haben keine konkreten Pläne, wann und ob wir das Produkt so ändern werden, dass es standardmäßig auf “hot” eingestellt ist.

12 „Gefällt mir“

Menschen können ziemlich blind sein und nicht auf vertraute Dinge achten, bei denen keine Änderungen erwartet werden. Ich bin es jedenfalls.

Das heißt, ich habe mich gefragt, was hier falsch ist, weil ich mir absolut sicher war, dass /latest irgendwie kaputt ist und ich nicht das bekommen habe, was ich sollte.

Es hat mich gestört, aber im Moment nicht genug.

Nein, ich habe nicht gesehen und erkannt, dass mein Startpunkt/meine Homepage auf /hot geändert wurde. Jetzt habe ich es für mich behoben, keine große Sache, aber meine Schwäche ist, dass in Diskussionsforen sogar Ankündigungen wichtig sind, wenn sich etwas ändert :smirking_face: Und das Ändern meiner persönlichen Einstellungen, auch wenn es sich um Foreneinstellungen handelt, ist eine solche Sache.

Wieder im Geschäft.

Ich bin mir bei /hot nicht ganz sicher, wer und warum es verwendet werden sollte. Sicher, es ist eine weitere Option und bricht nichts, aber wie ich es hier sehe, ist es ziemlich nah an /latest, aber ohne… das Neueste.

Lass es uns ausprobieren. Und… selbst wenn ich es nicht nützlich finde, sieht es jemand anders anders und die beiden stehen nicht im Widerspruch zueinander.

Aber ich frage mich… wäre oder könnte /hot eine funktionierende Lösung sein, um zufälligen Besuchern zu zeigen? Aber würde es dann Google stören oder ist es mit der Sitemap völlig zufrieden?

1 „Gefällt mir“

Nur ein Gedanke dazu: Die Abdeckung eines Discourse-Forums im Wayback Machine des Internet Archive ist bereits etwas lückenhaft. Ich vermute, dass die Einstellung von hot zum Standard für diesen Agenten oder Anwendungsfall die Dinge schlimmer machen könnte. Oder möglicherweise besser, natürlich – darüber müsste man nachdenken.

1 „Gefällt mir“

Stimme zu – das ist mir in den letzten 24 Stunden bereits dreimal passiert.

Um einen „Ich auch“-Beitrag zu vermeiden, nutze ich die Gelegenheit, darauf hinzuweisen, dass die Standard-Startseite in Ihren persönlichen Einstellungen überschrieben werden kann, was ich gerade getan habe, um nicht zum vierten Mal gebissen zu werden. https://meta.discourse.org/my/preferences/interface

8 „Gefällt mir“

Ich sehe, dass jemand ein Problem mit übermäßigen Sidekiq-Jobs gemeldet und erneut gemeldet hat, ohne weitere Antwort als meine, und dass dieser Thread auf etwa der 100. Position in der aktuellen Standard-Hot-Sortierung steht. Nicht gerade ideal für ein Support-Forum, würde ich sagen.

2 „Gefällt mir“

Es könnte sich lohnen zu prüfen, wie die Bewertung für diesen Thread funktioniert, der 3 Tage alt ist, aber zwei aktuelle Antworten und einige Likes hat. Sollte er immer noch an einer so niedrigen Position stehen?

Ich denke, „hot“ kann als ausgezeichnete Standardeinstellung dienen und einen Überblick über wichtige Themen geben, was für Erstbesucher oder Gelegenheitsnutzer von Vorteil ist. Dies kann auch für Support-Foren nützlich sein, da für diese Nutzer eine Ankündigung wichtiger sein kann als die Support-Frage eines einzelnen Nutzers.

Für diejenigen, die vollständig informiert bleiben und keine Themen verpassen möchten, steht die Option „latest“ weiterhin zur Verfügung. Sie können ihre persönliche Homepage sogar auf „latest“ umstellen. Darüber hinaus können die Einstellungen „new“, „unread“ und „tracking“ dazu beitragen, dass Nutzer über interessante Themen auf dem Laufenden bleiben.

.

3 „Gefällt mir“

Das ist meiner Meinung nach eine etwas unfaire Kritik, es ist ein schwieriges Thema. Viele #support-Themen erhalten aus welchen Gründen auch immer nicht „genug“ Aufmerksamkeit.

Dies ist ein Experiment, Ihre Abneigung gegen „hot“ als Standard für Meta ist ein Datenpunkt. Wir werden weitere sammeln.

Zum Algorithmus:

Wir können die Schwerkraft anpassen, damit wir Themen nicht so schnell „nach unten ziehen“, wie wir es jetzt tun. Ich kann auch versuchen, eine Möglichkeit zu finden, Dingen basierend auf der „letzten Antwort“ einen kleinen Schub zu geben.

Im Moment ist der Algorithmus hier:

KI-Bot erklärt „hot“ KI

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)

Erklären Sie den „hot“-Scoring-Algorithmus sorgfältig, genau und klar.

gpt4_bot:
Der „hot“-Scoring-Algorithmus, der im bereitgestellten SQL-Skript implementiert ist, dient dazu, Themen anhand ihrer „Hotness“ zu bewerten, einer Metrik, die angibt, wie ansprechend oder beliebt ein Thema zu einem bestimmten Zeitpunkt ist. Dies geschieht unter Berücksichtigung von Faktoren wie der Anzahl der letzten Likes und der Anzahl der eindeutigen letzten Poster sowie dem Zeitpunkt der Erstellung und Aktualisierung des Themas. Hier ist eine Aufschlüsselung des Prozesses:

Erste Einfügung

  • Erster Teil: Es beginnt mit dem Einfügen neuer Datensätze in die Tabelle topic_hot_scores für Themen, die noch keinen Datensatz haben. Dies geschieht durch die Auswahl von Themen, die nicht gelöscht wurden, keine privaten Nachrichten sind und bis zum aktuellen Zeitstempel (:now) erstellt wurden. Die anfänglichen Punktzahlen werden auf Null gesetzt, ohne aktuelle Likes oder Poster.
  • Filterbedingung: Es konzentriert sich auf Themen, die entweder nicht angeheftet sind (oder weniger hervorgehoben werden als angeheftete Themen) und ordnet sie nach ihrer neuesten Aktivität (bumped_at in absteigender Reihenfolge).

Aktualisierung der aktuellen Zählungen

  • Zweiter Teil: Anschließend werden die topic_hot_scores mit aktuellen Aktivitätsdaten aktualisiert. Dies beinhaltet:
    • Anzahl der eindeutigen Teilnehmer am Thema seit einem Stichtag (:recent_cutoff).
    • Anzahl der Likes für Beiträge im Thema seit dem :recent_cutoff.
    • Der Zeitstempel des frühesten Beitrags, der als „aktuell“ für jedes Thema gilt.
  • Dieser Teil des Prozesses zielt darauf ab, die aktuellsten Engagement-Metriken für jedes Thema widerzuspiegeln, indem alle neuen Likes, Poster oder Aktivitäten erfasst werden, die nach dem :recent_cutoff-Punkt stattgefunden haben.

Neubewertung basierend auf „Hotness“

  • Dritter Teil: Schließlich werden die Themen anhand ihrer aktualisierten Metriken neu bewertet. Themen werden zuerst gefiltert, um eine Reihe zu erhalten, die Folgendes umfasst:
    • Ein Stapel von Themen, die zuletzt verschoben wurden (um sicherzustellen, dass neue Inhalte berücksichtigt werden).
    • Ein weiterer Stapel basierend auf den höchsten vorhandenen Punktzahlen (um hochgradig ansprechende Themen im Blick zu behalten).
  • Berechnung der „Hotness“-Punktzahl: Die „Hotness“-Punktzahl wird mit der folgenden Formel neu berechnet:
    1. Für Themen, die nach dem :recent_cutoff erstellt wurden, basiert die Punktzahl auf recent_likes.
    2. Andernfalls basiert sie auf der gesamten like_count seit Beginn des Themas.
    • Dieser Wert wird durch die Zeit seit der Erstellung (in Stunden) plus zwei geteilt und mit dem :gravity-Wert potenziert – einem Parameter, der steuert, wie schnell Themen im Laufe der Zeit verblassen.

Zusätzlich wird, wenn eine aktuelle Aktivität aufgezeichnet wurde (recent_first_bumped_at ist nicht null), eine sekundäre Komponente zur Punktzahl hinzugefügt. Diese Komponente ist die Summe der aktuellen Likes und Poster (minus eins, um Doppelzählungen zu vermeiden), geteilt durch die Zeit seit dem recent_first_bumped_at (wieder in Stunden) plus zwei, ebenfalls mit dem :gravity-Wert potenziert.

  • Die aktualisierte Punktzahl wird mit dem aktuellen Zeitstempel als updated_at gespeichert.

Schlussfolgerung: Das Wesen dieses Algorithmus besteht darin, Themen zu priorisieren, die nicht nur aktiv genutzt werden (mit Likes und Postern), sondern auch relativ neu sind. Die Verwendung eines Verfallsfaktors (:gravity) stellt sicher, dass die Bedeutung dieser Interaktionen im Laufe der Zeit abnimmt, wodurch neuere oder kürzlich aktivere Themen in den Vordergrund treten können. Die Mischung aus der Berücksichtigung von Gesamt- und aktuellen Aktivitäten ermöglicht es dem Algorithmus, zwischen langfristig beliebten Themen und frischen, ansprechenden Diskussionen zu balancieren.

9 „Gefällt mir“

(Ich mag es, wie gut die KI hier für die SQL-Beschreibung eingesetzt wird. Es ist ein großartiger Anwendungsfall. :smile:)

8 „Gefällt mir“

Entschuldigung – ich hatte nicht vor, jemandes Gefühle zu verletzen. Ich bin sicher, die Führung freut sich über die Fertigstellung eines neuen Features, und die Implementierer freuen sich über dessen Veröffentlichung.

Ich hoffe, es gibt Raum für konstruktive Kritik.

Soweit ich weiß, ist das motivierende Beispiel ein Social-Media-Feed. Nicht ganz unähnlich könnte man sich vielleicht die Titelseite von Hacker News ansehen. Das Ideal dort ist, dass neue Themen etwas Sichtbarkeit haben und aktive und beliebte Themen etwas Sichtbarkeit haben. Beides sollte verblassen. HN scheint das gut zu machen.

Aber meine Beobachtung ist, dass ein Support-Forum etwas anderes ist als eine Show oder ein Social-Media-Feed.

Weiter oben sehen Sie eine Idee, dass Hot vielleicht gut für neue, unentschlossene Besucher oder für Suchergebnisse ist. Ich kann den Sinn dieser Idee erkennen.

Aber ich behaupte, dass Meta hauptsächlich ein Support-Forum ist.

Natürlich.

Dem stimme ich natürlich zu, aber ich glaube nicht, dass Hot das löst. Angepinnte Themen machen das ziemlich gut.

3 „Gefällt mir“