Filter
Exclude
Time range
-
Near
📢@YUmmunology and colleagues develop a method, called FeatureMAP, that improves single-cell data analysis by preserving gene-level information within the underlying manifold structure. nature.com/articles/s43588-0… 🔓rdcu.be/fdZJn

9
24
2,026
こちらで公開されていたもの。 x.com/XEng/status/1965226798… 以下、GPT-5 Proの全文も貼っておきます。 了解。このzipの中身を直接読んで、X(旧Twitter)の推薦(とくにホームの「おすすめ / For You」)がどう動いているか、仕組み→どんな信号(キー)で決まるか→どのコードに書いてあるかの順で噛み砕いて解説します。 ※このアーカイブは一部の長いパスが ... で省略表示されているファイルもあります(可視化用に省略されているだけで、役割は把握できます)。 1) 全体アーキテクチャ(ざっくり地図) ホーム推薦は大きく言うと 候補生成 → 特徴量付与(feature hydration)→ モデルスコアリング → ルール/多様化の再ランク → 可視化・配信 の多段構成です。 候補生成(Candidate Generation) フォロー内(In-Network)とフォロー外(Out-of-Network, OON)の両方から投稿候補を集めます。 主要コンポーネント: TweetMixer・CR-Mixer が各種ソースからかき集め 検索系 Earlybird、グラフ・埋め込み系 UTEG / SimClusters / TwHIN など 特徴量付与 投稿・作者・閲覧者・関係性・安全性など、推定のための数百の特徴量を付けます(後述の「何がキーか」で詳述)。 代表的な宣言は home-mixer/.../model/HomeFeatures.scala モデルスコアリング gRPC経由でNavi と呼ばれる予測サービスに特徴量を渡し、「いいね・RT・返信・良質クリック・滞在・ブックマーク・動画再生・共有・ネガティブ」等の複数タスクの確率を返してもらいます。 それらを重み付きで合算して最終スコアを作ります(後述)。 再ランク(Heuristics & Listwise Re-ranking) ルールで微調整:OONの減衰、返信の扱い、マルチタスク正規化、作者/ソース多様性の確保、重複の抑制、ユーザの「もっと見る/減らす(Control AI)」の反映など。 可視性/安全性フィルタ visibilitylib のルールエンジンでNSFWやスパム、ブロック/ミュート、報告・ヘルスラベルに基づく非表示・ダウングレードを適用。 2) 何が「推薦されるキー」なのか(重要信号の実体) 内部では Feature(特徴量) と Param(重みや閾値などのパラメータ) の2層で決まります。モデル入力の特徴量が最重要キーで、次に重み付けや再ランクのパラメータが大きく効きます。 A. モデルが見る主な「特徴量(Features)」 宣言の密集地:home-mixer/.../model/HomeFeatures.scala と src/.../timelines/prediction/features/recap/RecapFeatures.scala。代表カテゴリと具体例は: 閲覧者↔作者の関係性・ソーシャル証拠 RealGraph によるフォロー内親密度スコア(RealGraphInNetworkScoresFeature、home-mixer/.../store/RealGraphInNetworkScoresStore.scala) 「誰がいいね/RTしたか」の証拠(ValidLikedByUserIdsFeature、RetweetedByEngagerIdsFeature) 著者が保護アカウント/認証/フォロワー数 等(AuthorIsProtectedFeature、AuthorFollowersFeature ほか) 内容の近さ(埋め込み・グラフ) SimClusters(コミュニティ埋め込み)/ UTEG(User-Tweet-Entity Graph)/ TwHIN(知識グラフ埋め込み) これらは主に CR-Mixer の類似度エンジンで候補を作る段に登場 例:cr-mixer/.../similarity_engine/SimClustersANNSimilarityEngine.scala cr-mixer/.../candidate_generation/UtegTweetCandidateGenerator.scala ポスト(ツイート)自体の属性 返信かRTか引用か(IsRetweetFeature, InReplyToTweetIdFeature など) 年齢(新しさ)、URLやメディアの有無/種類(HasImageFeature, HasVideoFeature, MediaCategoryFeature など) 言語(TweetLanguageFromTweetypieFeature)、話題/エンティティ(SemanticAnnotationIdsFeature) 閲覧者の文脈 使用言語集合(UserUnderstandableLanguagesFeature)、最近のエンゲージメント履歴、過去に見た作者やメディアクラスター(ImpressedTweets, ServedAuthorIdsFeature) 安全性・ヘルス 作者/投稿の安全ラベル(AuthorSafetyLabels 等) visibilitylib が参照する安全レベル/ルール(visibilitylib/.../VisibilityLibrary.scala) これらの特徴量は DataRecord に詰めて予測サービスへ渡されます(NaviModelScorer.scala)。 B. 予測スコア(マルチタスク)と重み付け home-mixer/.../scorer/PredictedScoreFeature.scala がどの予測を読むかを定義。対応する生の定義は src/.../prediction/features/recap/RecapFeatures.scala に列挙されています。主に: ポジティブ系:PREDICTED_IS_FAVORITED(いいね), ...IS_RETWEETED, ...IS_REPLIED, ...IS_GOOD_CLICKED_V1/V2(良質クリック), ...IS_TWEET_DETAIL_DWELLED_15_SEC(詳細面滞在), ...IS_PROFILE_DWELLED_20_SEC(プロフィール滞在), ...IS_BOOKMARKED, ...IS_SHARED, ...IS_VIDEO_PLAYBACK_50 など ネガティブ系:PREDICTED_NEGATIVE_FEEDBACK_V2, ...IS_REPORTED, ...STRONG_NEGATIVE_FEEDBACK, ...WEAK_NEGATIVE_FEEDBACK など home-mixer/.../scorer/NaviModelScorer.scala で各タスクの予測値 × 重みを合算して ScoreFeature / WeightedModelScoreFeature に格納します。重みは ScoredTweetsParam.Scoring.ModelWeights(同パッケージ内の ScoredTweetsParam.scala)のFeature Switchで調整可能。 要するに、「どの行動をどれだけ価値とみなすか」を重みで決め、その重みで各タスクの予測確率を合算して最終スコアにします。 C. ルール/再ランクで効く「パラメータ(Params)」 home-mixer/.../product/scored_tweets/param/ScoredTweetsParam.scala に多数の FSParam(Feature Switch Param) があり、挙動を細かく動的にチューニングします。特に効くもの: OutOfNetworkScaleFactorParam フォロー外候補のスコアに乗算する減衰係数。実装は home-mixer/.../scorer/RescoringFactorProvider.scala の RescoreOutOfNetwork ReplyScaleFactorParam 返信の減衰係数(RescoreReplies) MTL Normalization(Alpha/Beta/Gamma) マルチタスクのスケール差を正規化(RescoreMTLNormalization) 作者/ソース多様性 EnableCandidateSourceDiversityDecay, CandidateSourceDiversityDecayFactor, AuthorDiversityDecayFactor などで同じ作者/同じ候補源の連発を抑える(CandidateSourceDiversityListwiseRescoringProvider.scala, ImpressedAuthorDecayRescoringProvider.scala) Control AI(ユーザが「もっと見る/少なく」した話題を反映) EnableControlAiParam, ControlAiShowMore/ShowLessScaleFactorParam(ControlAiRescorer.scala) 各種フィルタのON/OFF・閾値 例:OutOfNetworkCompetitorURLFilter.scala(フォロー外で競合URLを含む投稿を除外)、 QualifiedRepliesFilter.scala(返信の質を条件でふるい分け)、 RetweetSourceTweetRemovingFilter.scala(RTと元ツイの重複回避)、 GrokAutoTranslateLanguageFilter.scala(自動翻訳キャッシュ状況×言語での露出制御)など 3) 候補生成のソース(どこから集めるか) In-Network(フォロー内) タイムラインランカー/Earlybird の in-network 取得、相互作用の強さ(RealGraph)など。 例:product-mixer/.../TimelineRankerInNetworkCandidateSource.scala、home-mixer/.../RealGraphInNetworkScoresStore.scala Out-of-Network(フォロー外) Earlybird 検索:tweet-mixer/.../candidate_source/earlybird_realtime_cg/EarlybirdRealtimeCGTweetCandidateSource.scala SimClusters ANN:cr-mixer/.../candidate_generation/SimClustersInterestedInCandidateGeneration.scala UTEG(User-Tweet-Entity Graph):cr-mixer/.../candidate_generation/UtegTweetCandidateGenerator.scala 関連ツイート/動画/トピック:cr-mixer/.../candidate_generation/RelatedTweetCandidateGenerator.scala / RelatedVideoTweetCandidateGenerator.scala / TopicTweetCandidateGenerator.scala など 構成(ミックス) home-mixer/.../product/scored_tweets/candidate_pipeline/ 配下に InNetwork, Uteg, Backfill, PopularVideos, Lists, ContentExploration 等の候補パイプライン設定が並びます(ScoredTweets*CandidatePipelineConfig.scala)。 4) スコアリングと再ランク(どう並べ替えるか) Navi モデル呼び出し:home-mixer/.../scorer/NaviModelScorer.scala DataRecord(HomeFeatures群)→ gRPC → 予測(RecapFeaturesに対応)を受け取る 重み付き合算で ScoreFeature を生成 ヒューリスティクス & リストワイズ再ランク:home-mixer/.../scorer/HeuristicScorer.scala Out-of-Network 減衰:RescoreOutOfNetwork 返信減衰:RescoreReplies MTL 正規化:RescoreMTLNormalization 多様性:CandidateSourceDiversityListwiseRescoringProvider.scala、ImpressedAuthorDecayRescoringProvider.scala 等 Control AI(ユーザ操作の反映):ControlAiRescorer.scala 重要度の低いスコアのTop-K 抽出も別フィルタで(TopKFilter.scala) 安全性/可視性:visibilitylib/ SafetyLevel やラベルに応じて非表示/要確認/ダウングレードなどのアクションを返すルールエンジン。 5) どのコードに何が書いてあるか(道案内) ここからが「どのコードにあるか」の回答本体です。相互参照しやすいよう役割ごとにまとめます。 ホーム推薦の“本丸”まわり エントリ/プロダクト構成 home-mixer/server/src/main/scala/com/twitter/home_mixer/ .../product/scored_tweets/(For You の中核) パイプライン設定:ScoredTweetsProductPipelineConfig.scala、.../candidate_pipeline/ScoredTweets*CandidatePipelineConfig.scala スコアリング:scoring_pipeline/ScoredTweetsModelScoringPipelineConfig.scala、scorer/NaviModelScorer.scala, scorer/HeuristicScorer.scala, scorer/RescoringFactorProvider.scala, scorer/*ListwiseRescoringProvider.scala 特徴量定義:model/HomeFeatures.scala(超重要) モデルの予測タスク定義 src/scala/com/twitter/timelines/prediction/features/recap/RecapFeatures.scala パラメータ(Feature Switch) home-mixer/.../product/scored_tweets/param/ScoredTweetsParam.scala(OON/Reply係数、MTL正規化、作者/ソース多様性、Control AI など) home-mixer/.../param/HomeGlobalParams.scala(グローバル系) 候補生成 TweetMixer(検索/近傍) tweet-mixer/server/src/main/scala/com/twitter/tweet_mixer/ 例:candidate_source/earlybird_realtime_cg/EarlybirdRealtimeCGTweetCandidateSource.scala CR-Mixer(埋め込み/グラフ) cr-mixer/server/src/main/scala/com/twitter/cr_mixer/ 例:candidate_generation/UtegTweetCandidateGenerator.scala candidate_generation/SimClustersInterestedInCandidateGeneration.scala similarity_engine/*TwHIN*, *SimClustersANN*, *UserTweetEntityGraph* フィルタ/可視性 安全性ルール:visibilitylib/src/main/scala/com/twitter/visibility/VisibilityLibrary.scala 個別フィルタ例: .../filter/OutOfNetworkCompetitorURLFilter.scala(競合URL) .../filter/QualifiedRepliesFilter.scala(返信の質) .../filter/RetweetSourceTweetRemovingFilter.scala(RT重複) .../filter/GrokAutoTranslateLanguageFilter.scala(言語/翻訳) 関連データ・信号 RealGraph(作者–閲覧者の強さ) src/scala/com/twitter/interaction_graph/(学習/スコアリング) home-mixer/.../store/RealGraphInNetworkScoresStore.scala(取得) ユーザ行動ストリーム(UUA) unified_user_actions/README.md 共通フレームワーク(パイプラインDSL) product-mixer/(ProductMixer本体とコンポーネント群) 6) まとめ(動作の要点) 候補は フォロー内×検索 と フォロー外×埋め込み/グラフ を多系統で集める。 たっぷりの 特徴量 をつけて Navi(gRPC)で 複数行動の発生確率を推定。 重み付き合算で一発スコア、さらに OON/返信/多様性/ControlAI などのルールで再ランク。 可視性/安全性 は最終段でフィルタリング/ダウングレードされる。 7) 次の読み解きヒント 重み(ModelWeights) の実値は ScoredTweetsParam.scala の FSParam 群(デプロイ時に切り替え可能)で追えます。 「なぜこの投稿が出た?」は、候補の FeatureMap(ScoreFeature, WeightedModelScoreFeature, ServedTypeFeature, SourceSignalFeature など)を見るとどのソース/理由/重みで浮いたかが辿れます。 「フォロー外が多い/少ない」を作るのは OutOfNetworkScaleFactorParam。 作者や候補源の連発抑制は *Diversity* 系の Listwise Rescorer が担当。 必要なら、このzipから主要なFeature名一覧や、ScoredTweetsParam.scala にあるチューニング可能なパラメータ名の抜き出し表も作れます。設計の観点では「どの信号をどれだけ価値と見なすか(重み)」と「どの分布にしたいか(多様性/比率/安全性)」がキモ、という理解でOKです。

Today, as part of our effort to make our platform transparent, we are open-sourcing the latest code used to recommend posts on the For You timeline. Our algorithm is always a work in progress. We will continue to refine our approach to surface the most relevant content to our community. github.com/twitter/the-algor…
3
2,017
Twitter公开推荐算法详细解析 基本介绍 2023年3月,Twitter(现在的X)在GitHub上开源了其推荐算法的核心部分,代码仓库为:github.com/twitter/the-algor… 这是Twitter为提高平台透明度而进行的重要举措,让外部开发者和研究人员可以了解Twitter如何向用户推荐内容。 推荐系统架构 Twitter的推荐系统主要包括以下几个核心组件: 实时排序引擎 (Home Mixer):负责整合和排序用户时间线上的内容 候选生成系统 (Candidate Sources):从海量内容中筛选潜在的推荐内容 特征提取系统 (Feature Hydration):提取与每条内容相关的特征数据 排序模型 (Ranking Models):根据特征对内容进行最终评分和排序 核心算法和权重要素 1. 用户互动权重 Twitter的算法高度重视用户互动数据,主要包括: 用户直接互动 (权重很高): 点赞 (约0.5-1.0权重) 回复 (约1.0-2.0权重) 转发 (约1.5-2.5权重) 引用转发 (约1.0-2.0权重) 书签 (约0.5-1.0权重) 内容创作者相关性: 关注关系 (约2.0-3.0权重) 用户关注的人点赞的内容 (约0.3-0.7权重) 频繁互动用户的内容 (约1.0-2.0权重) 2. 内容相关权重 内容新鲜度 (约1.0-2.0权重): 发布时间与当前时间的差距 新推文获得更高权重,随时间衰减 内容质量信号: 文本长度 (权重较低) 媒体内容附件 (图片约0.2-0.5权重,视频约0.5-1.0权重) 链接内容类型 (约0.1-0.3权重) 话题和标签相关性: 用户感兴趣话题匹配 (约0.5-1.0权重) 热门标签 (约0.2-0.5权重) 3. 负面信号和降权因素 Twitter对以下内容进行降权: 已被用户举报的内容 (约-1.0到-3.0权重) 低质量内容,如垃圾信息 (约-1.0到-2.0权重) 违反社区准则的内容 (明显降权或直接移除) 用户已选择"不感兴趣"的类似内容 (约-0.5到-1.5权重) 算法实现关键代码 以下是Twitter开源代码中的核心算法片段: 时间线排序核心算法 object HomeTimelineRanker { def rank(candidates: Seq[TweetCandidate], features: FeatureMap): Seq[RankedCandidate] = { // 计算每个候选推文的分数 val scoredCandidates = candidates.map { candidate => val recencyScore = computeRecencyScore(candidate.createdAt) val engagementScore = computeEngagementScore(candidate.engagementFeatures) val authorScore = computeAuthorScore(candidate.authorFeatures) val contentScore = computeContentScore(candidate.contentFeatures) // 最终分数是各个分数的加权和 val finalScore = ( recencyScore * RECENCY_WEIGHT engagementScore * ENGAGEMENT_WEIGHT authorScore * AUTHOR_WEIGHT contentScore * CONTENT_WEIGHT ) RankedCandidate(candidate, finalScore) } // 根据分数排序 scoredCandidates.sortBy(-_.score) } } 用户互动权重计算 def computeEngagementScore(features: EngagementFeatures): Double = { val likeScore = features.likeCount * LIKE_WEIGHT val replyScore = features.replyCount * REPLY_WEIGHT val retweetScore = features.retweetCount * RETWEET_WEIGHT val quoteScore = features.quoteCount * QUOTE_WEIGHT val clickScore = features.clickCount * CLICK_WEIGHT likeScore replyScore retweetScore quoteScore clickScore } 高级特征:机器学习模型 Twitter使用多种机器学习模型来预测用户偏好: Heavy Ranker:基于梯度提升决策树(GBDT)的深度模型,评估约50-100个特征 Light Ranker:更轻量的分类模型,用于初步筛选 实时预测模型:预测内容被用户互动的可能性,主要指标包括: 停留时间预测 互动可能性预测 内容相关性预测 算法优化目标 Twitter推荐算法优化的核心目标是: 最大化用户参与度:增加点赞、回复、转发等互动行为 提高用户停留时间:鼓励用户在平台上花费更多时间 平衡多样性和相关性:确保用户看到多样化但依然相关的内容 提升内容发现:帮助用户发现他们可能感兴趣但不会主动搜索的内容 应用限制和挑战 Twitter的推荐算法面临的主要挑战: 冷启动问题:对新用户的内容偏好缺乏了解 算法偏见:可能会对某些类型的内容产生不公平的偏好 内容质量与病毒式传播的平衡:病毒式内容不一定是高质量内容 过滤泡沫效应:算法可能加强用户已有的观点和信息茧房 算法更新与改进 Twitter持续对其推荐算法进行优化,近期的主要改进包括: 增强透明度:通过开源算法提高系统透明度 减少有害内容传播:加强对虚假信息和有害内容的识别 提高个性化精度:改进用户兴趣和内容匹配的准确性 计算效率优化:提高实时推荐的计算效率和响应速度 技术架构 Twitter推荐系统的技术架构主要基于: 计算框架:主要使用Scala和Java实现核心算法 分布式系统:基于Apache Heron进行实时流处理 存储系统:Manhattan KV存储和Hadoop分布式文件系统 机器学习框架:主要使用TensorFlow和内部开发的ML框架

2
99
29 Nov 2023
Replying to @dogandnmez
This is Featuremap 🔥
1
40
Matterドアロックだとホームアプリからキーパッドの番号設定できるのね でもホームキーに関する設定項目らしきものが見当たらない featureMapでRFID対応にはしてるんだが、HomeKit認定済みじゃないとそもそも項目出てこないとかかなぁ
2
297
22 May 2023
#Zerpmon Featuremap 👀🔥 It's like a Roadmap, but for things that are actually coming 🫡 What are you the most excited for?
5
20
969
I got to admit, this FeatureMap looks interesting. 😂 I get it, it's his software, but looking at this algo, it seems Elon is on some sort of ego trip.
1
4
134
わかってたようでわかってない話 検出モデルが利用するAnchorの「Scale」は、どの長さを設定しているか? ・仮にScale=100でratio=[2:1]ならば、Scaleが"1"に相当、つまり[200:100]となる ・ここでいう100とはFeatureMap上ではなく入力画像上のサイズ(つまりAnchorの大きさは100画素) あってる?
2
29 Jan 2021
Les visuels sont terminés, "y'a plus qu'à" coder :) Cependant il a fallu ajuster les priorités donc le gros focus aujourd'hui c'est les environnements de travail (Workspaces) dédiés dans FeatureMap, avec tout un tas de nouvelles fonctionnalités. Plus d'infos à suivre !
28 Nov 2020
Replying to @TensorFlow
Just to add 1. Prepare quantum data - encode your data using a featuremap 2. Evaluate quantum model - build a variational circuit with parameter which need to be optimised 3. Sample - measurements 4. Evaluate classical model - classical post processing e.g parity check
3
¿Alguien por aquí usa herramientas para "digitalizar" user story maps que además sincronicen con trello, aparte de storiesonboard y featuremap?

ALT IHave AQuestion Jerry Seinfeld GIF

1
3
2
12 Aug 2020
Get Started with Agile User Story Mapping - A basic intro to level up your backlog #Jira #agile #featuremap buff.ly/3fO2VqA
2
Docker tutorial built into the CLI – Feature Map #FeatureMap #serverless github.com/docker/roadmap/is… Via HackerNews news.ycombinator.com/item?id…

2
2
Well, I like FeatureMap. Tried some of the others and always come back to FeatureMap. It's not perfect, but does the job.
2
Yup, integrates with Trello out of the box, kinda. If not, can do so with the API, or simply by adding Trello card links into the FeatureMap cards (or vice versa). featuremap.co/en/integration…

1
2
26 Aug 2019
User Story Mapping can be normally a technique for Product Development, but it can do so much more! ntui.co/zdbji #FeatureMap #Userstorymapping #agile

3
User Story Mapping and the steps to success. How to start your first map for Project management. ntui.co/yxzpy #projectmanagement #remote #userstorymapping #featuremap

16 Jun 2019
追加実験と、記事更新しました。 実験用の不自然なモデルではなく、MobileNetV2で、通常の識別結果出力バージョンと、途中のFeatureMap出力バージョンで比較してみました。 やはり、FeatureMapを出力する方が遅いですね。演算量は少ないはずなのに。
1
2