Skip to content

Conversation

danielhaim1
Copy link

@danielhaim1 danielhaim1 commented Apr 3, 2023

Summary

This content provides an overview of the Visibility Filtering algorithm and its types, which represent different characteristics of content that may pose a risk or harm to users to support legal compliance, improve product quality, and increase user trust through different remediations.

The algorithm utilizes three primary concepts: SafetyLevel SafetyLabel and SafetyLabelType It also defines several safety label types that can be grouped into three categories: Content Classification, Content Moderation, and Status.

This article further explains the UkraineCrisisTopic safety label type, and its removal from the list of defined categories, the language used in the code which is not politically correct, and addresses recent staff cuts in Twitter's Trust and Safety and Global Content Moderation team which may hinder the review and action of flagged tweets.

Update (April 6th, 2023)

As of April 5th, 2023, the changes discussed in this article have been merged into the Visibility Filtering algorithm. The safety label type UkraineCrisisTopic has been removed from the code, and the categorization of safety label types has been updated to ensure consistency and accuracy.

I would like to thank everyone for their contributions and effort in getting this pull request merged, and I hope these changes will help improve the safety and trust of Twitter's platform for all users. Your effort and dedication have been instrumental in making these changes possible, and I am honored to be a part of such a supportive and collaborative community.

Visibility Filtering

Visibility Filtering is a rule engine that centrally instructs the client on adjusting the display of specific content at read time. This library is responsible for "filtering content to support legal compliance, improve product quality, increase user trust, protect revenue through hard-filtering, visible product treatments, and coarse-grained downranking".

Types

The library utilizes three primary concepts to support this:

  • SafetyLevel: represents the context in which content is viewed
  • SafetyLabel: identifies content as potentially harmful
  • SafetyLabelType specifies the type of policy violation
  • SpaceSafetyLabelType groups safety labels based on content characteristics

Categories

It is possible to logically categorize them into three groups:

  1. Content Classification
    • CoordinatedHarmfulActivityHighRecall
    • HatefulHighRecall
    • ViolenceHighRecall
    • CivicIntegrityMisinfo
    • MedicalMisinfo
    • GenericMisinfo
    • MisleadingHighRecall
    • NsfwHighPrecision
    • NsfwHighRecall
    • UntrustedUrl
  2. Content Moderation
    • DoNotAmplify
    • DoNotPublicPublish
    • DmcaWithheld
    • HighToxicityModelScore
  3. Status
    • Deprecated
    • Unknown

The safety label UkraineCrisisTopic on line 39 is an outlier to the categorization because it does not fit into any defined category.

Moreover, the term "crisis" is not similar to the other safety label types defined in the code. While the other safety label types refer to specific characteristics of content that may pose a risk or harm to users, "crisis" is a broader term that refers to a situation or event that poses a significant challenge or threat to individuals, organizations, or communities.

Conclusion

As a result, I propose to remove UkraineCrisisTopic from the code. This change helps maintain consistency in categorizing safety label types and ensures that all labels have specific characteristics that may pose a risk or harm to users.

Content Moderation

The safety label type UkraineCrisisTopic represents a specific safety label designed to flag content related to the ongoing war in Ukraine.

When a tweet is flagged with this safety label, it indicates that the tweet's content is related to the topic, and tweets with this label may undergo additional review or may be excluded from specific features, such as trending topics.

Moreover, the language used in the code is not politically correct, which may offend some users. Additionally, with recent staff cuts in Twitter's Trust and Safety and Global Content Moderation team, it is unclear whether these flagged tweets are being reviewed and actioned.

Reference in Code

s.SpaceSafetyLabelType.UkraineCrisisTopic -> UkraineCrisisTopic

s.SpaceSafetyLabelType.DoNotAmplify -> DoNotAmplify,
s.SpaceSafetyLabelType.CoordinatedHarmfulActivityHighRecall -> CoordinatedHarmfulActivityHighRecall,
s.SpaceSafetyLabelType.UntrustedUrl -> UntrustedUrl,
s.SpaceSafetyLabelType.MisleadingHighRecall -> MisleadingHighRecall,
s.SpaceSafetyLabelType.NsfwHighPrecision -> NsfwHighPrecision,
s.SpaceSafetyLabelType.NsfwHighRecall -> NsfwHighRecall,
s.SpaceSafetyLabelType.CivicIntegrityMisinfo -> CivicIntegrityMisinfo,
s.SpaceSafetyLabelType.MedicalMisinfo -> MedicalMisinfo,
s.SpaceSafetyLabelType.GenericMisinfo -> GenericMisinfo,
s.SpaceSafetyLabelType.DmcaWithheld -> DmcaWithheld,
s.SpaceSafetyLabelType.HatefulHighRecall -> HatefulHighRecall,
s.SpaceSafetyLabelType.ViolenceHighRecall -> ViolenceHighRecall,
s.SpaceSafetyLabelType.HighToxicityModelScore -> HighToxicityModelScore,
// s.SpaceSafetyLabelType.UkraineCrisisTopic -> UkraineCrisisTopic,
s.SpaceSafetyLabelType.DoNotPublicPublish -> DoNotPublicPublish,

case object UkraineCrisisTopic extends SpaceSafetyLabelType

case object DoNotAmplify extends SpaceSafetyLabelType
case object CoordinatedHarmfulActivityHighRecall extends SpaceSafetyLabelType
case object UntrustedUrl extends SpaceSafetyLabelType
case object MisleadingHighRecall extends SpaceSafetyLabelType
case object NsfwHighPrecision extends SpaceSafetyLabelType
case object NsfwHighRecall extends SpaceSafetyLabelType
case object CivicIntegrityMisinfo extends SpaceSafetyLabelType
case object MedicalMisinfo extends SpaceSafetyLabelType
case object GenericMisinfo extends SpaceSafetyLabelType
case object DmcaWithheld extends SpaceSafetyLabelType
case object HatefulHighRecall extends SpaceSafetyLabelType
case object ViolenceHighRecall extends SpaceSafetyLabelType
case object HighToxicityModelScore extends SpaceSafetyLabelType
// case object UkraineCrisisTopic extends SpaceSafetyLabelType
case object DoNotPublicPublish extends SpaceSafetyLabelType

The updated code has removed the UkraineCrisisTopic case object from the list of safety label types. Other than that, there are no significant changes to the code structure, organization, or functionality.

This update relates to twitter#1489
@CLAassistant
Copy link

CLAassistant commented Apr 3, 2023

CLA assistant check
All committers have signed the CLA.

1. The update proposes improvements to a Bash script that runs a Rust application with multiple command line arguments. The suggested changes include adding comments, using variables for each argument, using double quotes for variables, using descriptive variable names, and adding a shebang for the Bash shell specifically. An updated script is provided as an example.

2. The protocol buffer file with version information for serialized data used in TensorFlow now defines a VersionDef message with fields for the producer version, minimum consumer version, and a list of disallowed consumer versions.
@martianoff martianoff closed this Apr 3, 2023
@danielhaim1
Copy link
Author

Why was this closed @maksimru ?

@danielhaim1
Copy link
Author

danielhaim1 commented Apr 3, 2023

According to this article, most of the Global Content Moderation team has been let go. It is unclear whether these flagged tweets are being reviewed and actioned.

Regardless, the analysis above suggested that the SafetyLabelType UkraineCrisisTopic is an outlier for this categorization because it does not fit into any of the categories of Safety.

What am I missing?

@martianoff martianoff reopened this Apr 3, 2023
@martianoff
Copy link

There are a lot of speculations around this, so let's keep it opened and use for technical discussions. SpaceSafetyLabelType is safety label designed for "Spaces". It is not related to tweets. More over, there are no rules in the VF library as you see that are based on this label: https://github.com/twitter/the-algorithm/search?q=UkraineCrisisTopic. See more examples in https://github.com/twitter/the-algorithm/blob/7f90d0ca342b928b479b512ec51ac2c3821f5922/visibilitylib/src/main/scala/com/twitter/visibility/rules/SpaceRules.scala

@martianoff
Copy link

Summarizing above point, there is no impact from this label on nor spaces, nor tweets. However, I see your point that it might be good to remove it, just to avoid any future speculations, and confusion

@danielhaim1
Copy link
Author

I understand. Thank you for your response and clarification about the UkraineCrisisTopic safety label. If I understand correctly it is not currently being used in the Visibility Filtering library and is not related to tweets.

Regarding the moderation team and the potential downsizing, it would be worth investigating further to determine if there is a correlation between the downsizing and any possible impact on the moderation of flagged tweets. It is important to ensure that Twitter is able to effectively moderate content and maintain a safe and trustworthy platform for users.

@danielhaim1
Copy link
Author

Summarizing above point, there is no impact from this label on nor spaces, nor tweets. However, I see your point that it might be good to remove it, just to avoid any future speculations, and confusion

I wholeheartedly agree.

@webknjaz
Copy link

webknjaz commented Apr 3, 2023

Why was this closed

I'd assume that the answer is in their profile. The person is russian 🤷‍♂️

@danielhaim1
Copy link
Author

Why was this closed

I'd assume that the answer is in their profile. The person is russian 🤷‍♂️

I strongly suggest conducting additional research prior to making such statements. It's simple to pass a hasty judgment, but he has consistently advocated for Ukraine. Moreover, this may not be the appropriate platform to delve into this topic in any detail.

@webknjaz
Copy link

webknjaz commented Apr 4, 2023

I strongly suggest conducting additional research prior to making such statements. It's simple to pass a hasty judgment, but he has consistently advocated for Ukraine.

@danielhaim1 agreed. Though, in my experience, they don't hesitate having contradictory ideas. Having seen this specific action and a few typical markers I jumped to conclusions.

So, I took your advice and looked deeper. Unfortunately, I wasn't surprised much by what I've witnessed: the individual's support statements peacefully co-exist with the rhetoric of the so-called "russian opposition". Said "opposition" is well known to exhibit the same imperialist ambitions and colonialist apologism as the rest of the population, sadly. This bit specifically, is the opposite of supporting Ukraine, even though it might seem different to an unprepared reader.
While some of the actions seem to advocating for Ukraine, the general impression is not as optimistic.

That said, I we can't conclude that the person's views didn't influence this specific instance of behavior.

Moreover, this may not be the appropriate platform to delve into this topic in any detail.

I think the place is wherever the behavior happens. If nobody advocated against the use of the racist language in code, we'd keep having whitelisted masters and blacklisted slaves in many more software projects. But somebody did point out that this is bad and kept explaining what's bad about it until the change started to be accepted.
So why can't I be questioning the motivation of actions related to using toxic misleading language that directly affects the people of Ukraine? Can I at least ask not to minimize the experiences of my compatriots in code?

P.S. It's interesting how the previous comment got likes from well-known imperialists 🤔

@danielhaim1
Copy link
Author

Thank you for sharing your perspective on this issue @webknjaz. I appreciate your input, and I believe that we can work together to find a solution that eliminates harmful language from the codebase and maintains an inclusive and respectful environment for everyone involved.

Let's stay focused on the technical aspects of this problem and collaborate to find the best solution to get this merged as soon as possible.

@5HT
Copy link

5HT commented Apr 4, 2023

There is no technical aspect of the problem. Labeling this as Ukrainian Crisis is a russian PsyOps against the future of all Ukrainians by imprinting this into such a discussion. Disgusting.

@mptorz
Copy link

mptorz commented Apr 4, 2023

Summarizing above point, there is no impact from this label on nor spaces, nor tweets. However, I see your point that it might be good to remove it, just to avoid any future speculations, and confusion

@maksimru Is there any reason not to remove it? If there is then at least it should be renamed, because it is misleading and inappropriate. The label refers to the Russian invasion of Ukraine. I will make PR so we can fix it ASAP.

@mptorz
Copy link

mptorz commented Apr 4, 2023

@maksimru Let's rename it to RussianInvasionOfUkraineTopic for the time being. I created a pull request here I created a pull request here #1659

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants