Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add trends UI with admin and user settings #11502

Merged
merged 1 commit into from
Aug 6, 2019
Merged

Conversation

Gargron
Copy link
Member

@Gargron Gargron commented Aug 6, 2019

The trends API exposes trending hashtags that have been reviewed by the server's staff. A new admin setting can disable the feature (and stop e-mail notifications about hashtags needing review from being sent to the staff). A new appearance preference can hide the trends on the user's side.

Single-column UI:

grafik

Multi-column UI:

grafik

@Gargron Gargron added the ui Front-end, design label Aug 6, 2019
@Gargron Gargron force-pushed the feature-trend-components branch from 7b2cc1c to 26c229e Compare August 6, 2019 14:16
@Gargron Gargron force-pushed the feature-trend-components branch from 26c229e to 579d362 Compare August 6, 2019 15:47
@Gargron Gargron merged commit 9072fe5 into master Aug 6, 2019
@Gargron Gargron deleted the feature-trend-components branch August 6, 2019 15:57
@Cassolotl
Copy link

Does this resolve any of the issues folks raised in #271 and #7702?

@Gargron
Copy link
Member Author

Gargron commented Aug 6, 2019

Yes

@Cassolotl
Copy link

Cassolotl commented Aug 7, 2019

Could you be more specific in your reassurance? :D As @maloki said in #7702: "If you really want to make good on this anti-abuse promise, that you just made now right here in this thread, it would be nice if you acted like it when people are putting up MASSIVE warning signs about this being prime for abuse against individual people." People who are vulnerable to abuse need to know exactly how you will minimise and prevent this system being used to abuse them.

This is a feature that was previously removed due to significant community opposition on the grounds that it can be used to abuse vulnerable and marginalised groups, so I think more transparency is important. We need to know that you've considered all the concerns and have done things to deal with all the potential issues people raised. Could you please respond to these points that were raised in other issues/PRs, to explain what you've done differently this time? Just so that it's clear that you haven't, for example, closed the previous PR due to a whirlwind of anti-feature discourse and then waited a few months and just reintroduced the same feature when all the vulnerable people have been discouraged enough to leave the platform and therefore no longer have input?

  • My fear is that it will lead to bots trending (#bbc). (@kensanata)
  • i think people failed to realize what an exploitable vehicle for harassment this is. ... Admin control over tags is not enough as then you leave it up to each instance admin to moderate out things that incite targeted harassment , and if they are willing by the time its sorted it might be too late (@Laurelai)
  • [admins] can also abuse those tools to pick and choose things that arent harassment/evil content just to manipulate the userbase. (@Laurelai)
  • Its also a feature factions of various kinds love to see because they can game it to give their pet cause attention. Its all fun and games until some psychopath forces your dox into the trending tags. (@Laurelai) Additionally, American participants in the Occupy movement were targeted and subsequently doxxed by people scraping trending hashtag data. (@emsenn)
  • Trending topics are abused on every platform they have been implemented (@jh4c)
  • As an admin I don't want to babysit federated trends for abuse, propaganda, or other unwanted content, which is among the reasons I asked for an off switch in issue Admin Option to Disable Trending Feature #7702. - There is an admin setting to disable this feature according to the original post here so I'm not too worried about this one.
  • it should be ... opt-in on the instance-level to whatever degree that is feasible. (@lawremipsum)
  • Sock puppet accounts are already easy to make on mastodon and this is going to amplify their power and create a mostly unblock able harassment vector. (@inmysocks) if you allow #pokemon Nothing can prevent 100 or 1000 accounts to be created and write "white supremacist are great #pokemon" (@erinarbleizez)
  • You will also incentiveize tag wars where competing ideological factions will battle for supremacy over a tag. (@Laurelai)
  • In my experience trending hashtags are only mentioned when they are used as advertising (@inmysocks)
  • Also people on mastodon don't see exactly how the trending tags are determined which hurts the transparency about how mastodon works which is one of the best features. (@inmysocks)
  • I'm imagining a scenario ...: sockpuppet accounts creating astroturf trends and influencing conversations, only this time it's distributed across federated instances and no one admin can plausibly ferret out that the manipulation is in fact coming from a single source. (@lawremipsum)
  • it creates new incentives and rewards for unwanted behavior (@lawremipsum) A lot of admins do not want this feature as it contributes to the gamification of social media, something we left twitter to avoid. (@Laurelai)
  • A distributed group of white nationalists decide to make "#ItsOKToBeWhite" trend. Acccounts across a dozen or more instances, large and small. Then, when the "Trend" has peaked, they shift to "ItsOkayToBeWhite". Then "ItIsOKToBeWhite". Etc. ... Admins wind up in an endless battle trying to mute a shifting series of trending tags, and reports and other anti-abuse tools are ineffective because people start using the tag to denounce it, some of them genuine and others disingenuous. (@lawremipsum) bots and/or humans scatter out and make #ReyIsAFox a trending topic. Clearly a lie, intended to slander my character. What is the plan for dealing with that? (@rtucker)
  • uniquely popular conversations [would] get a visibility boost over and above the boost inherent in being uniquely popular. (@lawremipsum)
  • A local, whitelist-only trend approach would be great ... (it would need to be reversible for when a whitelisted hashtag is appropriated for malicious use). (@lawremipsum)
  • I prefer no trending tags than dictatorship where 1 or 2 people has the power to say what is good or not to say in a Community… Mastodon had enough scandal with instance censorship to not had a new one... (@erinarbleizez)
  • ideally a tag would need to be approved again if stops trending, or over a period of time (so that a new trend of the tag should be approved once again) (@renatolond)
  • If you turn it off on your instance you should also be able to opt out of your instance being indexed for trending tags elsewhere. (@Laurelai)
  • Another method of abuse ... that happened in the real world is government enforcement surveilling trending hashtags to locate dissidents. This is best evidenced happening on Twitter in 2009 during the Iranian "Green Revolution", and there is evidence suggesting it also occurred in several states during the Arab Spring. ... Relevant tags were discovered by looking at what was trending; i.e. the Iranian state looked at what was trending on Twitter to learn what hashtags were being used to discuss the Green Revolution, and then began working through those tagged posts to find identities. (@emsenn) There is a HUGE difference between the (public, hashtag'd) data being available for third-party clients to analyze, and the output of an algorithm being blessed with a front-and-center view in the official web UI. (@rtucker)
  • terfs and other abusive people will lurk tags created by vulnerable people and use it to find targets. This has happened on twitter repeatedly any time trans women make a tag that becomes trending, ... A lot of malicious people are stopped by such a simple effort barrier. (@Laurelai)

These two are broader issues, that I think a lot of people would also like some reassurance on:

  • This needs to be done with care and with listening to those who have experience with how this is weaponized on other platforms. Dismissing their concerns because "this time it will be different" is all-too-often an ill-fitting prophecy when we fall back into the same patterns. (@craigmaloney)
  • Successfully being an anti-abuse platform can't just mean "some tools," it must also mean a commitment to robust consideration of the abusive potential of new features—which doesn't mean waiting to see if people concerned about abuse manage to find where new features are being considered and tested and do that work on an ad hoc basis in a github issue thread. (@lawremipsum)

@Gargron
Copy link
Member Author

Gargron commented Aug 7, 2019

We need to know that you've considered all the concerns and have done things to deal with all the potential issues people raised. Could you please respond to these points that were raised in other issues/PRs, to explain what you've done differently this time?

Here is a top-level summary of what's different this time: By choosing a whitelist-based approach to trends it is possible to prevent, rather than react-to, harmful information from being broadcast. By adding an option to disable the feature from both the admin's side and the user's side, those who do not want it can opt out of it.

Here are the point by point responses:

My fear is that it will lead to bots trending (#bbc)

i think people failed to realize what an exploitable vehicle for harassment this is. ... Admin control over tags is not enough as then you leave it up to each instance admin to moderate out things that incite targeted harassment , and if they are willing by the time its sorted it might be too late

Trending topics are abused on every platform they have been implemented

it should be ... opt-in on the instance-level to whatever degree that is feasible.

A distributed group of white nationalists decide to make "#ItsOKToBeWhite" trend. Acccounts across a dozen or more instances, large and small. Then, when the "Trend" has peaked, they shift to "ItsOkayToBeWhite". Then "ItIsOKToBeWhite". Etc. ... Admins wind up in an endless battle trying to mute a shifting series of trending tags, and reports and other anti-abuse tools are ineffective because people start using the tag to denounce it, some of them genuine and others disingenuous.

bots and/or humans scatter out and make #ReyIsAFox a trending topic. Clearly a lie, intended to slander my character. What is the plan for dealing with that?

A local, whitelist-only trend approach would be great ... (it would need to be reversible for when a whitelisted hashtag is appropriated for malicious use)

A hashtag won't trend unless it is allowed to, not the other way around. It can be disallowed again at any time.

[admins] can also abuse those tools to pick and choose things that arent harassment/evil content just to manipulate the userbase

Mind that there is a feature request for announcement banners in the interface to which this point would apply (#1209, #11006). Admins can do this right now with announcement posts and adding custom text to their UI.

Its also a feature factions of various kinds love to see because they can game it to give their pet cause attention. Its all fun and games until some psychopath forces your dox into the trending tags.

Additionally, American participants in the Occupy movement were targeted and subsequently doxxed by people scraping trending hashtag data

A hashtag won't trend unless it is allowed to. A hashtag (or public timeline) could be scraped without any trending involved. In fact, it is harder to believe that the Occupy participants were targeted only through a trending hashtag, rather than the hashtag itself.

As an admin I don't want to babysit federated trends for abuse, propaganda, or other unwanted content, which is among the reasons I asked for an off switch in issue #7702.

The feature can be entirely disabled for servers that don't want it. Admins can also individually opt out of getting notifications about unreviewed hashtags.

Sock puppet accounts are already easy to make on mastodon and this is going to amplify their power and create a mostly unblock able harassment vector.

if you allow #pokemon Nothing can prevent 100 or 1000 accounts to be created and write "white supremacist are great #pokemon"

This fails to acknowledge why the described scenario is uniquely bad with a #pokemon hashtag vs without. Mastodon has a public timeline which is a far more powerful vector for this type of attack due to lack of fragmentation compared to hashtags. This vector of attack is addressed by other, pre-existing moderation tools, such as silencing, suspending, domain blocking, approval-only registration and others.

You will also incentiveize tag wars where competing ideological factions will battle for supremacy over a tag.

People have been shitposting under the #mastodev hashtag for a year without any trends involved. I suppose that's technically a competing ideological faction battling for supremacy over a tag. Would the incentive be bigger with trends? Yes, but it does not outweigh the benefits of having people know that the hashtag exists and finding the good content under it.

In my experience trending hashtags are only mentioned when they are used as advertising

You can report spam. There is also a body of posts using a hashtag prior to it trending that are the reason it starts trending, which are then presumably definitely not advertising as the hashtag at that point is not yet trending. It is not a reason to bury #mastoart, #introductions, #finefemmefriday, #ff and others.

Also people on mastodon don't see exactly how the trending tags are determined which hurts the transparency about how mastodon works which is one of the best features.

The way they are determined is not different to how a layperson would define a trend: "It is being used more than usual". It does not work in unexpected ways. Mastodon is "transparent" because it is open-source and displays chronological timelines. Neither of the two things is changed.

I'm imagining a scenario ...: sockpuppet accounts creating astroturf trends and influencing conversations, only this time it's distributed across federated instances and no one admin can plausibly ferret out that the manipulation is in fact coming from a single source.

This could already be happening. It is probably happening.

it creates new incentives and rewards for unwanted behavior

An incentive to use hashtags on public posts to categorize them better is the intention. It is hard for users to find content unless they have many friends, and it is hard for users to even know which hashtags exist unless they spend a long time observing the public timeline.

There are people who complain about follower counts, the "boost" feature, the "favourite" feature, and the idea of "clout", which could all be considered to be incentives and rewards for unwanted behaviour. However, you should not throw out the baby with the bathwater.

A lot of admins do not want this feature as it contributes to the gamification of social media, something we left twitter to avoid.

The feature can be entirely disabled for servers that don't want it. Every user can hide it. Everyone left Twitter (or didn't) for their own, different reasons.

uniquely popular conversations [would] get a visibility boost over and above the boost inherent in being uniquely popular.

By the definition of a trend being "used more than usual", consistently popular hashtags will not receive a visibility boost. It is also perhaps the only visibility of those "popular conversations" for users who are not well-connected and new.

I prefer no trending tags than dictatorship where 1 or 2 people has the power to say what is good or not to say in a Community… Mastodon had enough scandal with instance censorship to not had a new one...

By the definition of a server owner being physically in charge of the server and responsible for what is published there, it is already in the power of "1 or 2 people" to say what is good or not to say in a community, and this is usually outlined in a "code of conduct" that people agree to when signing up.

ideally a tag would need to be approved again if stops trending, or over a period of time (so that a new trend of the tag should be approved once again)

The utility of this suggestion is questionable as it would increase the workload for admins on already vetted hashtags. If the vetting must be undone, it can be done manually.

If you turn it off on your instance you should also be able to opt out of your instance being indexed for trending tags elsewhere.

Right now this is in the hands of users in the form of choosing whether or not to use hashtags or use a different privacy setting. Since non-Mastodon software already has trends (e.g. Misskey, @gled-rs's "mastodo" fork, as well as 3rd party trend bots), it is difficult to guarantee any additional constraints on what the remote server does with the data you send it.

Another method of abuse ... that happened in the real world is government enforcement surveilling trending hashtags to locate dissidents. This is best evidenced happening on Twitter in 2009 during the Iranian "Green Revolution", and there is evidence suggesting it also occurred in several states during the Arab Spring. ... Relevant tags were discovered by looking at what was trending; i.e. the Iranian state looked at what was trending on Twitter to learn what hashtags were being used to discuss the Green Revolution, and then began working through those tagged posts to find identities.

Non-Mastodon software implementing trends and 3rd party Mastodon bots that post trends based on scraping public timelines show that the cat is out of the bag for this kind of use case. A government can use automation to continuously watch public timelines to determine trending tags on their own. An average user who wants to find out what's up on Mastodon can't. Not having trending tags would not stop governments, but would disadvantage normal users.

The "authorized fetch" mode of Mastodon that was introduced recently disallows public access to Mastodon's REST APIs, which would make scraping of public timelines harder by requiring the scraper to have a local account on the server. However, in practice, it would be hard for someone to distinguish a government agent from a normal user.

There is a HUGE difference between the (public, hashtag'd) data being available for third-party clients to analyze, and the output of an algorithm being blessed with a front-and-center view in the official web UI.

Yes, which makes it more useful for Mastodon than a bunch of trend bots that inexperienced users don't know about. Due to the whitelist-based nature of the feature, a human is still in the loop for the output of this algorithm.

terfs and other abusive people will lurk tags created by vulnerable people and use it to find targets. This has happened on twitter repeatedly any time trans women make a tag that becomes trending, ... A lot of malicious people are stopped by such a simple effort barrier.

TERFs and abusive people should be banned from the given Mastodon server, or domain blocked if they have their own. Any features involving communication would be considered harmful if we operated on the assumption that bad actors are left to roam free. The trends in your scenario would potentially help newly arrived vulnerable people find a community on Mastodon.


Hope this answers everything.

@Cassolotl
Copy link

Hope this answers everything.

Me too!

@lawremipsum
Copy link

The responses to my concerns don't address them.

The major improvement, whitelisting, is welcome. However, my other concerns are not adequately addressed and so I continue to oppose this feature.

"An incentive to use hashtags on public posts to categorize them better is the intention."

Okay but the concerns about gamification and incentivizing unwanted behavior are not addressed, except "don't throw out the baby [trending tags] with the bathwater [creating a new incentive for unwanted behavior]." What's intended isn't worth the side effect of creating of a new incentive to game the content of posts, because it decreases the quality of the everybody's feed. The discoverability of hashtags isn't worth that price.

"By the definition of a trend being 'used more than usual', consistently popular hashtags will not receive a visibility boost."

That's fine, but not a response to my criticism, which wasn't about "consistently popular" hashtags. The criticism was that things that are popular, even uniquely, don't need the feedback loop of having their popularity reinforced by the UI. I don't need MORE people posting about #bingocards or #feralhogs, when they trend, it already happens plenty on its own.

Besides my concerns not being adequately addressed, and though the whitelist approach is an improvement, this still doesn't address the major abuse-related concerns.

We have to assume, for example, that malicious admins will use this code, and use its gamifying nature to drive harassment and spread of hate. My being able to turn this off on my instance doesn't turn THAT off. And blocking that instance doesn't contain the damage, because everyone they federate with that has trending turned on will be contaminated by the gamified malice. So I'll have way more instances that need to be blocked.

In effect this code will exacerbate the division of the network—instances that allow gamification and instances that renounce it. Not exactly in keeping with the goal to have a unified network.

Finally,
"The utility of this suggestion is questionable as it would increase the workload for admins on already vetted hashtags. If the vetting must be undone, it can be done manually."

This would just create a vector of abandoned whitelisted tags for people to abuse. The utility of the suggestion is to avoid exactly that. Why would one assume that a previously whitelisted tag to be free of abuse? It's this sort of casual dismissal of abuse concerns that run through this proposal in order to create a feature, the need for which is dubious in the first place, that makes people skeptical that these things have been well thought through before they make it into the main branch.

@Cassolotl
Copy link

If you turn it off on your instance you should also be able to opt out of your instance being indexed for trending tags elsewhere.

Right now this is in the hands of users in the form of choosing whether or not to use hashtags or use a different privacy setting. Since non-Mastodon software already has trends (e.g. Misskey, @gled-rs's "mastodo" fork, as well as 3rd party trend bots), it is difficult to guarantee any additional constraints on what the remote server does with the data you send it.

This is bothering me. Yes, other instances may be malicious, but this is the argument that comes up a lot here: "malicious instances will find a way to do the thing anyway, so there's no point us making a feature." It was used against deleting toots, even! "A malicious instance could hold on to toots you've deleted," as an argument against letting people delete their toots and that delete signal being sent out to other instances.

  1. Some instances being malicious isn't a reason to refrain from making something that lets people control which rule-abiding instances can use their toots in the trending hashtags feature.
  2. Making it easy for people and instances to prevent other instances from including their toots in a trending hashtags feature means that someone malicious somewhere has to put in more effort to get around it, which does help.

hiyuki2578 pushed a commit to ProjectMyosotis/mastodon that referenced this pull request Oct 2, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ui Front-end, design
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants