背景技术
用户可通过选择所谓的“种子”电视节目很容易地创建个人频道。系统将接下来搜索相似的电视节目,这些电视节目被自动添加到新创建的个人频道。此外,个人频道配备一推荐器系统,其随着时间的推移,通过分析显式或隐式的用户反馈来学习用户在该特定个人频道中欣赏什么样的电视节目。以这种方式,例如,用户能够容易地创建他的个人电影频道、他的个人综艺频道、他的个人卡通频道,等等。
近日,从例如YouTube观看在线视频已经成为看电视的热门替代。然而,这需要用户更加积极的态度,因为他通常必须输入文本查询以在这些视频库上搜索感兴趣的视频。可替代地,通过类别或最流行视频列表进行浏览可能不需要文本输入,但相应地不提供个性化的结果。
整合倚靠式电视观看体验和通过因特网视频进行浏览通常被看作是一个重要的挑战,而本发明有关实现这一挑战。
实现在其中用户可以同时享受电视节目和因特网视频的集成环境中的第一个重要步骤是通过在个人频道中提供与电视节目有关的因特网视频来实现的。为此,本发明人开发了一种方法,试图通过生成多个查询来找出与给定的电视节目有关的因特网视频。这些查询取决于电视节目的类型。例如,如果电视节目是电影,那么查询的目的是找出宣传片、对导演的采访、对主演的采访、删除的场景,等等。对于纪录片,查询的目的是找出关于同一主题的相关视频。使用在电视节目的元数据描述中可得的信息,如标题、类型、演员表等来生成这些查询。接下来将这些查询发送到在线视频库。接着,为不同的查询返回的结果被合并到结果的单一列表中,其中人们希望与给定的电视节目最相关的视频出现在该列表顶部。
为了确定因特网视频和电视节目之间的相关性,假定它们的描述将使用相似的字词。指定相关性的直接方法是测量所使用的字词的重叠程度,其中可以通过使用所谓的tf*idf方法[Salton&Buckley,1987年]来对字词进行加权。直接的方法是通过向量来表示每个电视节目p和因特网视频v,其中所述向量中的每个条目对应于可能出现在相应项目的描述中的字词并且其中所述条目的值由tf*idf权重给出。然后,p和v之间的相关性可通过这些向量之间的余弦进行量化。用于量化相关性的更高级的方法也是可能的,例如,使用潜在语义分析[Deerwester等人,1990年]。
在提出实际发明的细节之前,首先介绍一些符号。对于给定的参考(或种子)项目(例如电视节目p)和给定的进一步的项目(例如因特网视频v),令rel(v,p)∈[0,1]表示v和p之间的相关性。此外,对于给定的参考项目,例如电视节目p,令Q(p)={q
1,q
2,...,q
n}表示用于找出相关的进一步的项目(例如因特网视频)的一组查询。对于查询q
i=∈Q(p),令
表示由项目库(因特网视频库)在查询q
i上返回的一组结果。
现在,人们可以简单地通过Rtotal=R(q1)∪R(q2)∪...∪R(qn)结合给出的所有结果,并通过减小与节目p的相关性来将其排序为最终结果的列表:f1,f2,...,fN,其中
rel(fi,p)≥rel(fi+1,p) 对于i=1,...,N-1
发明内容
本发明的目的是提供改进的对排序列表的自动生成,其中项目顺序应当将最相关的或最感兴趣的项目放置在列表中第一的位置。
这个目的是通过用于自动生成与种子项目有关的项目的排序列表的电子设备来实现的。该电子设备包括相关性确定器,被配置为将所述种子项目与多个其它的项目进行比较,并由此相对于所述种子项目确定每个其它项目的相关性值。该电子设备还包括聚类引擎,被配置为通过确定其它项目之间的相对相关性来对其它项目进行聚类。因此,每个其它项目被分配给一个聚类。该设备还包括列表生成器,被配置为通过根据它们的相关性值和它们对于聚类的从属(或成员关系)两者对其它项目排序(分类)得到聚类来生成排序的结果列表,由于一旦选择了一个项目被添加和进一步添加到排序列表,取决于在该聚类中的其它项目的排名的相关性值至少是瞬时(至少对于一些其它选择周期)降低的,以便促进添加其它聚类的项目,从而实现取决于排序列表的顶部的排名的更高的瞬时相关性值。
因此由该设备按以下两个步骤进行要被添加到排序列表中的项目的选择:首先,选择具有最高排名(在本说明书中稍后被称为“积分”(credit))的聚类,并且在所选聚类中选择具有最高排名的项目。聚类具有基于在该聚类中仍然可选的元素的相关性函数的排名(由其积分反映)。因此,聚类的瞬时最高排名(积分)管理接下来要选择哪个聚类,但在所选聚类内,选择具有最高相关性的项目,因为在特定聚类内的项目的排名是由特定项目的相关性值与该聚类中其它项目的相关性值进行比较而确定的。
优选地,所述列表生成器被进一步配置为仅将属于包含超过预定或用户可调的相关性值阈值的项目的聚类的项目添加到排序列表中。
这种在选择来自一个聚类的项目之后降低该聚类的排名将自动引起添加来自其它聚类的项目,因为其它聚类因此获得了相对较高的排名。这促进了添加其它聚类的项目到排序列表以获得多样性,因为在所选聚类内具有最高排名(相关性值)的项目可能比只具有较低排名的聚类中的项目拥有更低的相关性值。后者的效果优选地通过提供列表生成器来实现,其包括聚类积分器,被配置成为聚类分配积分和降低被添加到所述列表的所选项目所出自的聚类的积分。然后基于项目所属的聚类的积分进行对项目的选择。因此,相对地降低聚类的积分导致聚类中项目的相对较低的排名。应注意,降低积分应该总是通过相对于其它积分而对积分的相对降低,因此包括其它聚类的积分增加而所述一个聚类的积分只是维持的情况。
聚类积分器优选地进一步配置为初始地分配初始积分给聚类。初始积分可以取决于在所述聚类的每一个中具有最高相关性值的项目的相关性值,或者可以是预定值,例如零。在后一种情况下,然后通过添加附加的积分到所述聚类来更新初始积分,其中,所述附加的积分取决于关于其它聚类中具有最高相关性值的项目的相关性值的在所述聚类的相应一个中的具有最高相关性值的项目的相关性值。响应于对于要被添加到排序列表中的项目的选择,例如通过添加附加的积分到聚类来迭代地更新未选择的聚类的积分,其中,所述附加的积分取决于关于其它聚类中具有最高相关性值的项目的相关性值的在所述聚类的相应一个中的具有最高相关性值的项目的相关性值。未选择的聚类是除了提供添加到排序列表中的最后一个项目的聚类之外的所有聚类。
列表生成器优选地还包括项目选择器,被配置为在具有最高积分的聚类中选择要被添加到列表中的具有最高相关性值的项目,并且将所选择的项目添加到排序列表并从该所选项目所属聚类中删除该所选项目。
通过维持这样的积分或者——更一般地——通过逐一选择项目,并在每次选择后修改未选择项目的排名,可以实现搜索结果的相关性和多样性的自动平衡。
用于自动生成项目的排序列表的电子设备是根据与种子项目的相关性自动对项目排序的排序设备。优选地,所述排序设备包括基于相关性的排序部件、多样性促进部件和连接到所述设备的输入端的调节部件,所述调节部件被配置为根据用户输入的多样性因子促进从结果列表的严格相关性确定顺序所分离出的结果列表的多样性。根据进一步的优选实施例,多样性因子由用于选拔项目的聚类的阈值所定义,所述聚类有资格用于选出被添加到项目的排序列表的项目。换句话说:所述阈值确定可从其中添加项目到排序列表的聚类的资格。该阈值不影响先前的聚类。
本发明的目的还由一种通过创建排序列表来对项目排序的方法来解决,其中所述方法包括以下步骤:
提供一个种子项目(参考项目);
将多个其它项目与所述参考项目(种子项目)进行比较,并确定每个其它项目的相关性值,所述相关性值反映了来自所述多个项目的所述其它项目与参考项目的相似性程度;
通过将所述其它项目互相进行比较以确定所述其它项目之间的互相相似性程度,并将所述其它项目分组到聚类中以使得每个项目属于包含在它们之间相较于其它聚类中的项目具有相对高的相似性程度的项目的一个聚类,来将所述其它项目聚类成多个聚类
通过根据它们的相关性值和它们与某一聚类的成员关系以迭代的方式调度所述其它项目来从所述其它项目生成排序列表,其中项目被逐一添加到所述列表,并且初始地
a)初始积分被分配给所述聚类,其中,所述初始积分可以是诸如零的预定值或可以取决于在所述聚类的每一个中具有最高相关性值的项目的相关性值
并且在每个迭代步骤中,
b)通过添加附加的积分到所述聚类来更新积分,所述附加的积分可以取决于关于其它聚类中具有最高相关性值的项目的相关性值的在所述聚类的相应一个中的具有最高相关性值的项目的相关性值,或者所述附加的积分可以是预定值。
c)选择在具有最高积分的聚类中具有最高相关性值的项目作为要被添加到所述列表中的项目
d)所选项目被添加到所述列表中并从所述聚类中删除
e)降低从其中删除所添加的项目的聚类的积分
重复步骤b)至e),直到所有或预定数量的所述其它项目被添加到所述列表中。
应注意,添加积分到聚类仅修改该聚类相较于其它聚类的相对排名,而该聚类中项目的相关性值保持未修改,因此通过改变聚类的积分并不改变项目本身的相对排名。
优选地,该方法步骤b)“更新积分”只对这样的聚类进行,其包括具有比任何聚类中的所有其它项目的最高相关性值的预定比例更高的相关性值的项目。因此,引入用于选拔有资格用于进一步选择的聚类的阈值。该阈值的值可优选为用户可调节的,以便影响自动列表生成。高阈值产生这样的列表,其中项目顺序主要是由它们与参考或种子项目的相关性确定的,而低阈值促进列表顶部的多样性。
相应地,电子设备优选地包括用于调节阈值的用户界面。
具体地,电子设备优选为其中所述聚类积分器被配置为只为这样的聚类更新积分,所述聚类包含具有超出尚未被添加到列表且从聚类中删除的所有项目的最高相关性值的预定比例的相关性值的至少一个项目。
在这样的实施例中,阈值调节用户界面可以允许输入确定所述比例的阈值的值。
更一般地讲,本发明的目的还通过用于根据与种子(参考)项目的相关性来自动对项目进行排序的排序设备来实现,其中,所述排序设备包括基于相关性的排序部件、多样性促进部件和连接到所述设备的输入端的调节部件,其中,所述调节部件被配置为根据用户输入的多样性因子促进从结果列表的严格相关性确定顺序所分离出的结果列表的顶部的多样性。多样性因子优选地由用于选拔项目的聚类的阈值所定义,所述聚类有资格用于选择被添加到项目的排序列表的项目。
聚类优选地通过以下执行
-以N个聚类开始,其中每个聚类包含唯一的单一项目
-合并两个最相似的聚类,其中两个聚类之间的相似性可以通过其项目之间的最小或平均相似性来定义,以及
-重复聚类的合并,直到获得预定数量的聚类。
本发明包括这样的认识,通过相关性对项目或搜索结果进行排列或排序的唯一缺点是最相关其它项目(例如视频)可以全部是非常相似的。例如,在参考或种子项目(电视节目)p是电影的情况下,最相关其它项目(视频)可能都是这部电影的宣传片。在这种情况下,结果列表的顶部将只包含宣传片。对于用户,在结果列表的顶部具有更多样化的结果将是更感兴趣的,即在结果列表的顶部不仅有宣传片,还有对主演的采访、带有该电影主题曲的视频、删除的场景,等等,即使这些视频会具有较低的相关性。
因此,问题是如何增加列表顶部的多样性,同时仍给予具有高相关性的视频以优选权,并仍然避免具有非常低的相关性的项目(例如搜索结果)处于顶部。
根据本发明,提供了一种解决方案以平衡相关性和多样性。在此解决方案中,用户将能够指示他喜欢多少多样性。
潜在于本发明的优选实施例的基本思想是同时考虑相关性和多样性地对Rtotal中的项目(例如搜索结果或查询结果),即由各种查询返回的所有项目的集合进行排序。该方法是基于组合以下两个组成部分:
1.由将其它项目Rtotal(例如视频)聚类为一组聚类C1,C2,...,Ck使得每个聚类包含相似的项目(例如视频)的聚类引擎执行的聚类步骤。为方便起见,我们假设聚类中的项目都被给出为通过降低相关性排序的项目的列表。换句话说,聚类中具有最高相关性值的项目具有最高的排名。
2.接着,由选择器执行的基于积分的调度步骤被用来重复选择聚类之一中的第一项目——即具有最高相关性值的项目,以将其从聚类中删除,并把它添加到最终结果列表。重复这个过程,直到所有的项目都被添加到最终结果列表并且所有聚类是空的。
可替代地,如果有足够数量的项目被加入到最终结果列表中,则可以停止该过程。
基于积分的调度以可能在顶端得到较少高度相关的结果的代价来优选使用确定允许多少多样性的相对阈值。
具体实施方式
在图1中,描绘了暂时或永久地连接到项目库12的电子排序设备10。电子排序设备10具有用户界面14,该用户界面具有相关性/多样性调节器16。也可以提供用于输入或选择种子项目的其它用户界面。
电子排序设备10具有用于输出项目的排序列表18(在本说明书中也称为最终项目列表或最终结果列表)的输出端口。
可以在电子排序设备10和项目库12之间提供查询生成器,用于生成要被发送到项目库的查询。这些查询优选地基于例如存储在电子排序装置10的参考项目存储器22中的种子项目。因此,查询生成器优选地连接到参考项目存储器22。查询生成器被进一步配置成从所述查询接收结果,所述结果表示在某种程度上与种子项目相关并且要被排序的其它项目。
电子排序装置10的成员是连接到参考项目存储器22的相关性确定器20。在参考项目存储器22中,存储了属性、字词或表征参考项目的数据。这样定义的参考项目充当种子项目,用于生成在项目库12中找到的相关项目的列表。
当使用时,相关性确定器20还连接到该聚类引擎24根据它们与存储器22中定义的种子或参考项目的相关性,将在项目库中找到的项目聚类。因此,聚类引擎24生成与种子项目相关的其它项目的聚类。
聚类引擎24的输出被转发到可以由列表生成器28访问的聚类项目存储器26,列表生成器28可以充当用于调度排序项目列表中的项目的项目调度器。
列表生成器28包括聚类积分器30和项目选择器32。
聚类积分器30被配置为分配和更新积分到存储在聚类项目存储器26中的项目的聚类。
项目选择器被配置为在具有最高积分的聚类中选择具有最高相关性值的项目。然后,这样选择的项目被添加到列表18和从聚类项目存储器26中的聚类中删除。
此外,如在下文中进一步详细所公开,例如,将从其中删除项目的聚类的积分降低1。
项目选择器对项目的选择包括选拔出有资格用于选择项目的聚类。这种对聚类的选拔是基于每个聚类中排名最高的项目的相关性值。项目选择器适配于仅选拔这样的聚类,其中排名最高的项目具有对应于所有项目和所有聚类的最高相关性值的预定比例的相关性值。因此,该比例定义了可以通过用户界面14的相关性/多样性调节器16进行调节的阈值。
因此,电子排序设备定义了一种用于根据项目与种子项目的相关性来对其自动排序的机器。排序设备包括相关性排序部件、多样性促进部件和调节部件,所述调节部件用于调节阈值,使得取决于如何调节阈值使该阈值或者促进结果列表的多样性或者促进更加由相关性确定的顺序。
现在更详细地并通过示例的方式公开电子排序设备10的操作和对项目进行排序的方法。
聚类引擎和聚类步骤
对于聚类,考虑两种可能的实施例。第一实施例可以简单地采用从已使用的不同查询所产生的聚类。换句话说,如果使用n个查询q1,q2,...,qn并且由R(q1),R(q2),...,R(qn)给出相应的项目集合,那么我们假设n个聚类C1,C2,...,Cn,其中Ci由R(qi)给定,并因此表示来自一个查询的结果(项目)。本实施例中的假设是,每个查询给出一组结果(项目),它们彼此相似,但与作为其它查询的结果的项目不相似。
通过首先将所有查询的所有结果合并到单一的项目集合,然后基于相互的相似性对这些项目聚类来获得替代实施例。为了测量两个项目rik和rjl的相互的相似性,我们可以再次使用相应字词向量的余弦相似性。基于该相似性,我们可以使用众多知名聚类方法之一。其中的一个方法是以N个聚类开始,其中每个聚类包含唯一的单一项目。接着,重复合并两个最相似的聚类,其中两个聚类之间的相似性可以通过其元素(即,分别是结果或项目)之间的最小或平均相似性来定义。可以重复对聚类的合并,直到获得合理数量的聚类。
注意,在这个最后的实施例中的聚类期间,确定项目之间的相似性。此外,这可以用于删除一些与其它项目非常相似、但具有与p较低或相等的相似性的项目。
通过聚类积分器的基于积分的调度和项目选择器中的项目选择
对其它项目的基于积分的调度按照如下工作。我们假定一个给定的聚类集合,其中对于每个聚类,该聚类中的项目给定为项目列表,或者按照与p的降低的相关性(并且因此,降低的排名)进行排序。接下来,在每次迭代中,选中一个聚类以将其当前顶部项目贡献到项目的最终列表,并将该项目从其列表中删除。这个选择过程如下工作。我们首先提出一个不使用阈值的简化版本。
不使用阈值的基于积分的调度
对于每个聚类Ci,保持积分ci。最初,所有聚类的积分为零。然后,在每次迭代开始时,在聚类之间共享总量等于一的积分,并且对于每个聚类,其份额被添加到其当前的积分。更新积分之后,选择具有最高积分的聚类以将其当前顶部项目贡献到项目的最终列表,即,这个顶部的项目被从它的项目列表中删除,并添加到最终项目列表。并且,最后,将该聚类的积分降低一。因此,在每次迭代中,在聚类之间共享总量等于一的积分,并且从具有最高积分的聚类中再次减去总量等于一的积分。因此,所有聚类的积分总和在每次迭代后仍为零。
该聚类由C1,C2,...,Ck表示。对于聚类Ci,令r(i,t)表示迭代t开始时仍在Ci中的最高度相关的结果的相关性。因此,假定我们为每个聚类Ci保留项目的排序列表,我们只需要确定在该列表中第一位的项目的相关性以确定r(i,t)。然后在每次迭代t开始时,我们添加份额
r(i,t)/Σj r(j,t)
到聚类Ci的积分。换句话说,对于每个聚类Ci,在迭代t开始时,
ci:=ci+r(i,t)/Σj r(j,t)。
令i
max(t)为增加积分之后在迭代t具有最高积分的聚类的索引。换句话说,
然后,聚类的排序项目列表的第一个项目被从这个列表中删除,并添加到最终项目列表。将
的积分降低一,即
如果存在具有最大积分值的多个聚类,则可以选择这些聚类中的任意一个。
最初,所有聚类的积分为零。很清楚,在每次迭代中,所添加的积分份额的总和加起来共享一个单位,并且该聚类之一的积分再次降低一个单位。因此,所有积分的总和将再次在每次迭代后加起来为零。这种方法将导致交叉不同聚类的项目,同时还对高度相关的项目给予优选权(preference)。
使用阈值的基于积分的调度
上面讨论的基于积分的方法不避免具有很低的相关性的项目最后处于最终项目清单中相对高处。为了避免这种情况,引入相对阈值α以使得只有如果
rel(rj,p)≥α·relmax(t),
则结果rj才有资格添加到最终项目列表中,
其中relmax(t)=maxi r(i,t)表示尚未添加到最终项目列表中的项目的最大相关性。因此,如果给定聚类中项目的最高相关性等于0.2,并且如果阈值α被设定为0.5,则只有在仍待被分配到最终项目列表的项目的最大相关性已经下降到0.4时,该聚类的第一个项目才变得有资格添加到最终项目列表中。
因此,上述基于积分的调度调整如下。现在,在每次迭代t开始时,首先,确定全局最高度相关项目的相关性relmax(t),即,
relmax(t)=maxi r(i,t),
其中该最大值可简单地通过采用每个聚类的第一项目的最大值来确定(假设它们仍具有没有被添加到最终项目列表中的项目)来确定。然后,确定有资格在迭代t期间添加项目到最终项目列表的聚类的集合E(t)。接着,只有有资格的聚类的积分会如上文所述增加,由此,现在,归一化仅基于有资格的聚类,并且具有最高积分的有资格的聚类将其第一个项目添加到最终项目列表。
示例
现在,通过小示例的方式说明上述基于积分的调度方法。假设阈值α设定为0.5。对于每次迭代步骤所得到的阈值被记载到每个表中的下一行并确定聚类的资格;参见每个表中的列3。请注意,在各迭代步骤中仅更新有资格的聚类的积分;参见每个表中的列4。更新积分之后,选择具有最高积分的聚类,然后选择在此积分中具有最高的相关性值的项目以被添加到排序列表;参见每个表中的列5。此后,这个特定聚类的积分减1;参加每个表中的列6.
下表中,用于确定积分值的计算步骤以斜体字印刷。
迭代1:
资格的阈值:0.9*0.5=0.45
迭代1之后排序最终项目列表中项目的相关性:0.9
迭代2:
资格的阈值:0.6*0.5=0.3
迭代2之后排序最终项目列表中项目的相关性:0.9,0.6
迭代3:
资格的阈值:0.6*0.5=0.3
迭代3之后排序最终项目列表中项目的相关性:0.9,0.6,0.4。请注意,现在从聚类1中取出了前两个项目(由它们的相关性值表示),同时该列表中第三个项目取自聚类2,因此导致该列表顶部项目的多样性。
迭代4:
资格的阈值:0.6*0.5=0.3
迭代4之后排序最终项目列表中项目的相关性:0.9,0.6,0.4,0.6
迭代5:
资格的阈值:0.4*0.5=0.2
迭代5之后排序最终项目列表中项目的相关性:0.9,0.6,0.4,0.6,0.4
迭代6:
资格的阈值:0.3*0.5=0.15
迭代6之后排序最终项目列表中项目的相关性:0.9,0.6,0.4,0.6,0.4,0.2
迭代7:
资格的阈值:0.3*0.5=0.15
迭代7之后排序最终项目列表中项目的相关性:0.9,0.6,0.4,0.6,0.4,0.2,0.3
因此,排序最终项目列表给出下列按相关性的排序:0.9,0.6,0.4,0.6,0.4,0.2,0.3,0.1和0.1。
注意,通过改变阈值α,可以调整对相关性或多样性的侧重。如果一个人选择α等于1,那么最终项目列表将完全按照相关性排序。可替代地,如果一个人选择α等于0,那么所有聚类都有资格,而无论它们的第一个项目的相关性,并且人们得到更多样化的最终项目列表。然而,同样在这种情况下,高度相关的项目仍是优选的,因为它们将获得更高的份额。
该阈值可以由用户设定,这样他就可以指示他希望在结果列表的顶部具有更多样化的项目到何种程度,可能以在顶部遇到不太相关的项目为代价。
诸如循环法(round-robin)的可替代的基于积分的调度方法也是可以的。
附加实施例考虑这样一种情形,其中多个供应商(即,因特网视频库)被用于向其发送查询。在这种情况下,假设不同供应商的结果是相等地相关的,人们也希望交叉代表不同的供应商的结果的项目,使得最终项目列表具有来自不同的供应商的结果的很好的组合。这可以通过分级的基于积分的调度方法来实现。人们可以在对项目进行聚类之前,首先简单地合并来自不同供应商的结果(项目)。然后在聚类之后,人们可以为每个聚类首先通过如上所述的基于积分的方法在聚类内对项目排序。在这种情况下,该聚类首先被细分成子聚类,其中每个子聚类对应于一个特定的供应商。在此之后,可以通过再次使用如上所讨论的基于积分的方法合并不同聚类的排序项目列表来获得最终项目列表。
优选地,设定阈值将是用户界面的一部分。
本文描述的设备和方法可以具体地应用于在其中可以使用推荐的例如书籍、歌曲、视频租赁,等等的任何情景中,其中必须向最终用户以多样性和相关性必须加以平衡地呈现结果。更具体地,它可以在个人频道的情景中被使用。它提供了一种可能的方法来实现看电视和浏览因特网视频之间的倚靠型整合。