我在游戏行业工作了一段时间,持续跟踪社区的实际反馈一直是我周围的噪音。超过几百个评论后,你不再阅读它们了,你正在采样。并且,你的采样是糟糕的,因为你记住的都是那些刺痛你的话。显而易见的解决方案是将所有评论粘贴到LLM中,并问人们在抱怨什么。我试过了。结果是自信、可读且不可靠:它估计了数字,可能对引用的语句进行了润色,无法确定哪个是哪个。要想告诉制片人“312名玩家遇到了这个问题”,你需要能够为312提供辩护。因此,我建立了一个管道,计数是机械的,仅在真正需要判断时才使用模型:

  • 从公共Steam API中拉取评论,将它们嵌入本地,根据相似性进行分组。聚类选择自己的组数(你事先不知道游戏有多少个不同的抱怨)并允许将不相关的评论标记为噪声而不是强制将它们放在一起。
  • 只有在模型读取每组约12个代表性评论并写入一张卡片形状的总结后,才会发生这种情况。它永远不会看到整个语料库,也不会被要求计算任何东西。
  • 第二次过滤决定哪些组是相同的问题。它返回分组;代码汇总大小。
  • 每个引用都检查它是否是真实评论的字面子字符串。如果失败,会被丢弃。

我测试的例子

我将其应用于ARC Raiders,因为它足够大,以至于可以核实我的说法。5,000个评论→3,146个评论(经过过滤)→162个主题→34个不同的发现。以下是三个,其中一个展示了范围:最大的一个,一个具有清晰趋势的,一个只有当你计算时才存在的。它们在报告中排名第一、第四和第七,报告根据提及的次数加权和可行性来排序。

  • 327个评论。 欺诈和物品重复,反欺诈系统无法捕捉到它。与上一次补丁相比,基本保持不变。报告中最大的发现,也是每个人都知道的那个。
  • 118个评论。 提取营地和背刺。两种窗口之间下降了32%(38→26)。
  • 33个评论。 有数百个小时的玩家因永久封禁而无法提出申诉。最后一个是为此而做所有这一切的理由。每个人都知道ARC有欺诈问题,所以这个发现是准确的,但无用。没有人聚合假封禁投诉,因为每个投诉看起来都是一个无辜的人在说。他有数百个小时的游戏时间,有33个投诉是支持流程问题。它是不可见的,除非你计算。

(报告的实际第3项是Denuvo更新锁定Linux和Steam Deck玩家。53个投诉,阻塞。它不在我的三项中,因为你不需要聚合才能找到它。Linux玩家会在论坛中在一天内告诉你。)

六种它自信地错误的方法

这是我真正想读的部分。每一个都在我发现它之前就已经发货了。

1. 过度分割。 在另一款游戏中,“DLC太贵”被归类为十二个单独的群组。报告将同一个抱怨列出十二次,每次都有小的计数,每次都没有列出真正的总和,实际上是语料库中最响亮的声音。

2. 我的采样倾向于老评论。 我选择了每个样本的一部分“最有帮助的投票”。然而,帮助投票随着时间的推移而积累。2022年的评论已经收集了几年的投票,而周二的评论只收集了两天。因此,按原始投票排序大致是按时间排序的。因此,引用的最多的是每组中最老的材料。

在一份报告中,其整个前提是“玩家对你刚刚发货的版本的想法”。解决方案:按每天的投票排名。

3. 评论限制会无声地膨胀每个趋势。 API拉取会停止在N个评论,最新的排在前面。在繁忙的游戏中,这可能只会回溯几天,所以你的基线窗口会部分外部化。 “之前”的计数会低估与 “之后”的计数相比,所有问题都会读作“上升X%”。这是我要警告最严重的,因为没有人会注意到截断在两端。

got 5,000会打印出相同的内容,无论游戏有5,000个评论还是500,000个评论,所以拉取看起来是成功的,趋势看起来是新闻。

4. 引用检查是骗人的。 它使用小写并将空白折叠之前匹配,然后在显示模型的版本而不是来自评论的文本时将其显示为引用的文本。因此,大小写不同的引用会通过,而在报告中承诺它是verbatim的。折叠空白也允许将两个非相邻的句子拼接成一个引语。在ARC的运行中,修复它后丢弃了73个引语,包括那些下一个句子是“…但上一次补丁已经解决了”,而这会引用一个快乐的玩家作为一个愤怒的玩家。

5. 我在语料库中删除了中国评论后测量了一个中国专属内容投诉。 我的嵌入模型仅限于英语,因此非英语评论形成了垃圾群。然后我“修复”了它,通过过滤掉看起来不是英语的任何东西:这是我的模型选择的局限性,未经我注意就升级为关于哪些玩家计算的规则。然后报告表明“全球玩家无法进入PvE内容,这在中国是活跃的”,并且计算了没有中国语言评论的语料库。更糟糕的是,当我换成了多语言模型并删除了过滤器后,它仍然发生着。噪声地板会丢弃小于40个字符的任何东西,而36个汉字是完整的段落。一个原始的字符计数是一个穿着不同面具的语言过滤器。引语长度检查也有相同的错误,它会允许非英语主题通过整个管道,只有到了引语为空时,它们才会看起来像“没有引语值得引用”而不是“我拒绝了证据”。

6. 丢弃重复评论会删除投诉轰炸的证据。 相同的文本意味着有人复制了模板,所以我丢弃了副本,这意味着一个协调的200个模板投诉在报告中只会被列为一个投诉。要计算它们也是错误的:一个模板会设置你的后台排队。现在它们会折叠到一个入口中,携带计数,因为“200个相同的文本”和“200个每个都自己输入的玩家”是不同的事实,而报告没有权利在背后选择一个。

教训

没有一个会抛出错误。这就是整个问题。失败模式不是崩溃,而是自信的错误数字,它不会被质疑,因为它与你已经半信半疑的东西相符。注意,5和6来自哪里:我在修复前四个错误时发现它们。最有可能被发货的错误是隐藏在修复最后一个错误中的。要建立类似的东西:不要让模型计算,机械地检查每个引语以确保它来自真实评论,更加怀疑你的趋势算术而不是聚类,检查任何字符阈值是否真正是关于玩家可能抱怨的语言规则。ARC数字的一个注解。它们是该版本的输出,带有英语过滤器和所有。错误5和6已经被修复,但我还没有重新运行它,所以这些是实际产生的数字,而不是我今天会产生的数字。期望真正的数字会更高,特别是对于区域投诉。我宁愿提供我可以指向的数字,而不是那些我必须手-wave的数字。很高兴更深入地讨论任何内容。如果你正在运营一个实时服务游戏并想让我指向它,我会使用修复版本并发送你得到的内容。我的主要兴趣是它仍然是错误的,纠正错误比获得赞誉更值得我。