<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:media="http://search.yahoo.com/mrss/">
  <channel>
    <title>Freshness · 仁才德</title>
    <link>https://jared.lynskey.co.nz/zh-cn/tags/freshness/</link>
    <description>关于软件工程与研发团队领导力的短文——绩效评估、招聘与团队扩张、CI/CD、DevOps 监控、智能体 AI。写于首尔。</description>
    <generator>Hugo</generator>
    <language>zh-CN</language>
    <copyright>© 2026 仁才德</copyright>
    <lastBuildDate>Wed, 28 Oct 2026 00:00:00 +1300</lastBuildDate>
    <atom:link href="https://jared.lynskey.co.nz/zh-cn/tags/freshness/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>信息流排序算法如何决定什么时候埋掉旧帖子</title>
      <link>https://jared.lynskey.co.nz/zh-cn/posts/2023/2023-09-27-simulating-views/</link>
      <guid isPermaLink="true">https://jared.lynskey.co.nz/zh-cn/posts/2023/2023-09-27-simulating-views/</guid>
      <pubDate>Wed, 27 Sep 2023 00:30:03 +0000</pubDate>
      <dc:creator>Jared Lynskey</dc:creator>
      <category>Content Ranking</category>
      <category>Decay</category>
      <category>Freshness</category>
      <category>Engagement</category>
      <description>信息流排序算法如何用衰减函数在新鲜度和互动之间做取舍——来自一个以做内容信息流为业的人。</description>
      <content:encoded><![CDATA[<p>我在一家内容平台工作，所以有一个用户永远看不到的问题，我想得比大多数人都久：信息流应该在什么时候停止展示一条内容？</p>
<p>内容会过时。人们打开应用是想看看有什么新东西，信息流必须给出答案。但上个月一篇很棒的帖子，不该仅仅因为不再新鲜就消失。衰减函数就是对这种取舍建模的标准做法，而且比名字听起来简单得多。</p>

<h4 class="relative group">新鲜度重要，但不是处处重要
    <div id="新鲜度重要但不是处处重要" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e6%96%b0%e9%b2%9c%e5%ba%a6%e9%87%8d%e8%a6%81%e4%bd%86%e4%b8%8d%e6%98%af%e5%a4%84%e5%a4%84%e9%87%8d%e8%a6%81" aria-label="锚点">#</a>
    </span>
    
</h4>
<p>打开新闻网站或社交信息流，你想看的通常是最新的东西。在新闻、金融行情这类变化飞快的领域，上周的内容就是累赘，所以那里的排名严重偏向时效。</p>
<p>不过并非所有领域都这样。学术文章和长篇报道的价值随时间保持稳定，有时甚至会上涨。内容的&quot;年龄&quot;在大多数排名系统里都有分量，但该给多大权重，完全取决于你在排什么。</p>

<h4 class="relative group">用指数衰减给&quot;过气&quot;建模
    <div id="用指数衰减给过气建模" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e7%94%a8%e6%8c%87%e6%95%b0%e8%a1%b0%e5%87%8f%e7%bb%99%e8%bf%87%e6%b0%94%e5%bb%ba%e6%a8%a1" aria-label="锚点">#</a>
    </span>
    
</h4>
<p>给逐渐消退的相关性建模，惯用的手段是指数衰减：内容越老，它的感知价值掉得越快。最简单的形式是：</p>
<p><code>relevance = e^(-decay_rate × age)</code></p>
<p>其中 relevance 是内容当前的价值，decay_rate（衰减率）控制它贬值的速度，age 通常按发布以来的天数计。</p>
<p>我喜欢这个模型的原因是它只有一个旋钮。调一调衰减率，就能决定内容的保鲜期是几小时、几天还是几周。整个配置面就这么大。</p>

<h4 class="relative group">互动让好内容活下去
    <div id="互动让好内容活下去" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e4%ba%92%e5%8a%a8%e8%ae%a9%e5%a5%bd%e5%86%85%e5%ae%b9%e6%b4%bb%e4%b8%8b%e5%8e%bb" aria-label="锚点">#</a>
    </span>
    
</h4>
<p>年龄只是一半。浏览、点赞、评论告诉你人们是否真的在乎，无视这些信号的排名，会把好内容和烂内容一起埋掉。修法也简单，把两者乘起来：</p>
<p><code>score = engagement × e^(-decay_rate × age)</code></p>
<p>这样一来，互动强劲的旧帖仍然可以压过平庸的新帖。只是随着底下的衰减项不断缩小，它需要越来越多的互动才能保住位置。</p>
<p>实际的生命周期是这样的：新帖拿到新鲜度加成，获得一次被看见的公平机会。有人看、有人赞、有人评论，分数往上爬。日子一天天过去，衰减开始蚕食分数，只有互动持续的帖子还能留在前排。新内容有机会露脸，真正的好内容靠自己站稳。</p>
<p>说穿了，全部窍门就这些：一个指数函数，一个互动项，一个可以拧的旋钮。难的是给自己的内容定出合适的衰减率——那一步，纯靠判断。</p>
]]></content:encoded>
      <media:content url="https://jared.lynskey.co.nz/en/posts/2023/2023-09-27-simulating-views/featured.jpeg" medium="image" type="image/jpeg" />
    </item>
  </channel>
</rss>
